참고문헌

  • IoC 소개
  • 백기선님 강의자료를 배꼈습니다. 좋은 강의 감사합니다.

Inversion of Control : 제어가 바뀌었다?

"내가 쓸 놈은 내가 만들어 쓸께" : 일반적인 의존성에 대한 제어권

class OwnerController {
    private OwnerRepository repository = new OwnerRepository();
}

“내가 쓸 놈은 이 놈인데… 누군가 알아서 주겠지” : IoC

  • 내가 쓸 놈의 타입만 맞으면 어떤거든 상관없지 뭐.. .
  • 그래야 내 코드 테스트 하기도 편하지.
  • 일단 필요한 건 누가 넣어줄 거라 생각하고, 있다고 가정하고 쓴다.
class OwnerController {
    private OwnerRepository repo;

    public OwnerController(OwnerRepository repo) {
        this.repo = repo;
    }
// repo를 사용합니다.
}

class OwnerControllerTest {
    @Test
    public void create() {
        OwnerRepository repo = new OwnerRepository();
        OwnerController controller = new OwnerController(repo);     //필요한 걸 넣어줌
    }
}