( •̀ ω •́ )✧
[Spring] IoC(Inversion of Control) Container 본문
※ 본 내용은 강의를 수강하며 정리한 글입니다 👉 강의 링크
https://heyitzme.tistory.com/41
Spring 핵심 기능 - DI(Dependency Injection)
※ 본 내용은 강의를 수강하며 정리한 글입니다 👉 강의 링크 DI (Dependency Injection) DI는 ‘종속성 주입’, 결론부터 말하자면 ‘부품 조립’에 해당한다. Dependency = 종속성 Injection = 주입 두 단어
heyitzme.tistory.com
저번 포스팅에서 알아본 것처럼
spring의 핵심 기능 중 하나가 DI, 즉 ‘부품 조립’이다.
Spring이 부품 조립을 하기 위해서는 개발자가 사용할 부품들을 명시한 ‘주문서’를 제공해야 한다.
Spring은 주문서대로 부품을 조립하는 역할을 수행한다.
컨테이너?
Spring이 주문서에 명시된 부품을 생성해서 담을 수 있는 그릇이 필요하다.
SW 분야에서는 이러한 그릇을 주로 ‘컨테이너’라 명명한다.
그렇다면 Spring에서 사용한다는, 부품을 담는 컨테이너는 ‘부품 컨테이너’ 또는 ‘Dependency 컨테이너’라고 부르는 것이 마땅하다.
그런데 왜 IoC(Inversion of Control) 컨테이너라고 부를까?
무언가 강조하고 싶은 뜻이 내포되어 있을 것이다.
IoC(Inversion of Control)
IoC라는 용어를 이해하기 위해서는 부품을 조립하는 과정을 생각해보아야 한다.
우리는 부품을 조립할 때, 작은 부품을 조립하여 점점 큰 단위로 붙여나간다.
- 상단 그림 = 일체형 : 소비자는 A Class에 대한 객체를 만들면, A가 B를, B가 C를 , … 만든다.
- 하단 그림 = 결합형 : 이 경우는 작은 단위인 D를 먼저 만들어 C → B → A 순으로 결합한다.
결국, 결합형은 역순으로 객체를 생성한다.
IoC라는 용어로 돌아가보자.
IoC = 제어의 역전 = 역순
IoC Container = 역순으로 구성하는 컨테이너
정리
IoC Container는 단순 부품을 담고있는 컨테이너(Dependency Container)보다 넓은 의미로,
역순으로 객체를 생성하는 컨테이너, 즉 결합=조립이 되는 컨테이너라는 의미를 담고 있다.
'✏️ 노트 > spring' 카테고리의 다른 글
[Spring] DI(Dependency Injection) (1) | 2023.11.03 |
---|---|
[Redis] Redis란? (0) | 2023.06.23 |
[JPA] JPA란? (0) | 2023.06.10 |