본문 바로가기
Web Programming/Spring

Spring/IoC Container/Inversion Of Control Container

by hyeon-H 2021. 5. 15.
728x90
반응형

스프링이 가지고 있는 가장 기본적인 능력은?
객체를 생성해주고 객체를 조립해주는 능력이라고 할 수 있습니다.

DI(Dependency Injection)와 IoC Container가 있습니다.

IoC Container

제일 작은 부품을 먼저 만들고 보다 큰 부품을 만들어 결합시킨다 그리고 더 큰 부품을 만들고 결합해준다.
그래서 제어의 역전 제어의 반전이라고도 한다.
객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다.

컨테이너란?
일단 주문서를 작성했으면 부품을 구입해서 박스에 담는다,
스프링도 주문서에 입력되어 있는데로 객체를 생성해서 그것을 담을 그릇이 필요하다. 그것을 컨테이너라고한다.
그 컨테이너에 무엇이 담기냐에 따라서 무슨컨테이너라고 부르게된다.

부품을 생성해서 담는다고 하면 부품컨테이너 혹은 Dependency Container라고 부르는게 맞는거같다.
하지만 그것을 IoC컨테이너라고 한다. 

IoC컨테이너는 부품을 생성해주고 컨테이너에 담아준다. 조립해 달라고 하면 조립도 해준다.
심지어 더 큰 부품에 조립도 해준다. 이것을 IoC(Inversion Of Control) 컨테이너라고 하는데
제어의 역전,역순, 반전 이라는 이유는 IoC컨테이너에서 생성 조립하는 과정을 살피면
가장 작은 부품 제일 먼저 생성하고 보다 큰 부품을 생성해 결합한다.|
이러한 순서로 제어의 역전이라고 한다.

Dependency를 담고 있는 그릇인데, 이 그릇은 Dependency를 조립까지 해준다. 그 조립의 순서가 역순인 그릇
Dependency를 역순으로 조립하는 Container이다.

 

 

 

728x90
반응형