1 minute read

1.7

7. 의존관계 주입(Dependency Injection)

  • 의존관계
    • 두 모듈이 의존관계일 때 방향성이 있음(A→B, A가 B에 의존, B가 변하면 A가 영향을 받음)
  • A 클래스가 B 인터페이스에 의존하고있고 B인터페이스를 구현한 C 클래스가 있을 때 C 클래스에서 변경이 생겨도 A 클래스에 큰 영향을 주지 않음 즉, A 클래스와 C 클래스 사이에 느슨한 관계 성립
  • 의존관계 주입
    • 클래스 모델이나 코드에 런타임 시점의 의존관계가 드러나지 않음. 이를 위해서는 인터페이스에만 의존해야함
    • 런타임 시점의 의존관계는 컨테이너나 팩토리 같은 제3의 존재가 결정
    • 의존관계는 사용할 오브젝트에 대한 레퍼런스를 외부에서 제공(주입)해줌으로써 만들어짐
  • 의존관계 검색
    • 자신이 필요로하는 의존 오브젝트를 능동적으로 찾음
    • 런타임 시 의존관계를 맺을 오브젝트를 결정하는 것과 오브젝트의 생성 작업은 외부 컨테이너 에게 IoC로 맡기지만 이를 가져올 때는 메서드나 생성자를 통한 주입 대신 스스로 컨테이너에게 요청하는 방법을 사용

Leave a comment