IoC가 매우 느슨하게정의돼서 폭넓게 사용되는 용어라는 점에서
스프링이 제공하는 IoC 방식을 핵심을 짚어주는
의존관계 주입Dependency Injection이라는, 의도가 명확히 드러나는 이름을 사용하기 시작했다.
먼저 의존관계란 무엇인지 생각해보자.
두 개의 클래스 또는 모듈이 의존관계에 있다고 말할 때는 항상 방향성을 부여해줘야 한다.
A -> B (A가 B에 의존하고 있다)
UML에서 말하는 의존관계란 이렇게 설계 모델의 관점에서 이야기하는 것이다.
런타임 시에 오브젝트 사이에서 만들어지는 의존관계도 있다.
프로그램이 시작되고 UserDao 오브젝트가 만들어지고 나서 런타임 시에 의존관계를 맺는 대상,
즉 실제 사용대상인 오브젝트를 의존 오브젝트dependent object라고 말한다.
런타임 시점의 의존관계를 결정하고 만들려면 제3의 존재가 필요하다고 했다.
DaoFactory가 그 역할을 담당한다고 해보자. DaoFactory는 여기서 두 오브젝트 사이의
런타임 의존관계를 설정해주는 의존관계 주입 작업을 주도하는 존재이며. 동시에 loC
방식으로 오브젝트의 생성과 초기화, 제공 등의 작업을 수행하는 컨테이너다
비슷하지만, 의존관계를 맺는 방법이 외부로부터의 주입이 아니라 스스로 검색을
이용하기 때문에 의존관계 검색dependency lookup이라고 불리는 것도 있다.
이를 가져올 때는 메소드나 생성자를 통한 주입 대신 스스로 컨테이너에게 요청하는 방법을 사용한다.
public UserDao( ) {
DaoFactory daoFactory = new DaoFactory ();
this.connectionMaker = daoFactory.connectionMaker();
}
'Spring Framework > Spring' 카테고리의 다른 글
스프링부트 버젼 - 마이너 버전 (0) | 2022.06.01 |
---|---|
WebMvcConfigurer (0) | 2022.04.18 |
[토비의스프링] 1-6 싱글톤 레지스트리와 오브젝트 스코프 (0) | 2022.03.30 |
[토비의스프링] 1-5 스프링의 IoC (0) | 2022.03.30 |
[토비의스프링] 1장 오브젝트와 의존관계 - DAO(1) (0) | 2022.03.16 |
댓글