일반적으로 의존성에 대한 제어권은 자기 자신(아래에서는 MemberController)이 갖는 반면
class MemberController {
private MemberRepository repository = new MemberRepository();
}
아래와 같이 MemberController 밖에서 생성될 때 MemberRepository의 의존성을 만드는 것
class MemberController {
private MemberRepository repo;
public MemberController(MemberRepository repo) {
this.repo = repo;
}
}
이러한 이유로 DI도 일종의 IoC이다.
모든 작업을 사용하는 쪽에서 제어하기 때문에 해당 동작을 IoC 컨테이너에서 수행