DI : Dependecy Injection
번역하면 의존성주입 이다.
예시를 들어서 설명해보자
컴퓨터가 있다.
컴퓨터를 살 때, 조립식 컴퓨터가 있고 그냥 완성품 컴퓨터를 살 수 있다.
조립식 컴퓨터를 산다고 할 때, 각각의 부품을 사서 컴퓨터에 끼우는 방식이다.
여기서 각각의 부품을 D : Dependency라고 볼 수 있다.
그리고 끼우는 과정을 I : Injection이라고 할 수 있다.
현실에서 부품을 사서 조립하는 과정을 돈 주고 맡기기도 하는 것 처럼
Spring이 조립을 해준다. 이 기능을 Spring의 핵심기능 중 하나인 DI라고 볼 수 있다.
IoC : Inversion of Control
일체형 프로그램은 큰 단위로부터 작은 단위로 생성이 된다.
하지만 결합형 프로그램 (위에서 예시로 든 조립식 컴퓨터)는 작은 단위로부터 결합해서 큰 단위로 만들어진다.
생성 순서가 역순이라서 Inversion of Control이다.
IoC Container는 결합된 단위를 담고있는 Container를 의미한다.
만약 부품(Dependency)들만 담고 있다면 Depedency Container라고 할 텐데 부품들을 조립한 단위들을 담고 있어서 IoC Container라고 한다.
조립된 부품들이 있는 박스라고 볼 수 있다.
정리
DI : Dependency Injection
Dependency : 부품
Injection : 부품을 조립 (장난감에 건전지를 장착)
Spring의 핵심기능 중 DI : 자동으로 의존성 주입 (자동으로 부품을 조립해줌)
IoC : Inversion of Control
일체형프로그램과 생성 순서가 역순 => Inversion => 작은단위로 부터 큰 단위로 만들어짐
IoC Container : 작은 단위로부터 큰 단위로 만들어진 단위를 담고있는 Container
위 내용은 스스로 이해한 내용을 정리한 내용입니다. 잘못된 부분이 있을 수 있습니다.
참고
https://www.youtube.com/watch?v=QrIp5zc6Bo4
https://www.youtube.com/watch?v=WjsDN_aFfyw
'Spring' 카테고리의 다른 글
Spring html작업할 때 Livereload 쓰면 아주 편해요! (0) | 2022.12.15 |
---|---|
쓰지않는 import문 지우는 단축키 (0) | 2022.12.12 |
Junit5에서 parmeter를 이용한 Test실행하기 (0) | 2022.12.06 |
Transaction에 대해서 아시나요? (2) | 2022.12.05 |
JSON 응답에서 한글 깨질 때 해결 방법 (2) | 2022.11.30 |