Ioc (Inversion of Control) 컨테이너 , DI (Dependency Injection) 컨테이너의 정의
두 단어의 의미는 비슷하지만 Ioc 가 여러곳에서 광범위하게 쓰이고
DI 컨테이너는 의존관계 주입에 초점을 맞춰 최근에는 주로 DI컨테이너라고 부른다.
애플리케이션에서 객체(정속성)의 생성 및 구성을 관리하면서 의존관계를 연결 해주는 것이다.
DI컨테이너는 개체 종속성을 자동으로 함께 연결하여 개체 종속성을 수동으로 관리하는 문제를 해결해준다.
Spring의 DI 컨테이너는 객체 인스턴스 (Bean)를 생성 및 관리한다.
상위 수준 모듈(Class)이 구체적인 구현이 아닌 추상화에 의존하는 종속성 역전의 원칙을 따른다.
이 원칙은 클래스간의 느슨한 결합을 허용하여 코드를 유연하고 유지 관리하기 쉽게 만든다.
--> 쉽게 말하면 구현코드에게 의존하는 것이 아닌 interface에 의존한다.
왜나하면 유지 보수할때 구현코드를 변경하는 것이 아닌 DI컨테이너 안에 있는 연결시켜 주는 부분의 코드만 변경하며 되기때문이다.
더 쉽게 말하면 구현코드에게 의존한다면 변경사항이 생겼을 때마다 구현코드 전부 수정해야 하지만,
interface에 의존하게 된다면

이러한 형태로 간단한 수정을 통해서 기능 변경을 할 수 있다 .
유지보수에 탁월한 이점이 있다.
이렇게 객체 인스턴스를 생성하고 종속성을 주입하는 역활을 하는 곳이 DI 컨테이너이다 .
알고 보면 쉬운 ,, 그냥 코드들 연결시켜주는 곳 ,,
종속성 주입 방법
Bean이 생성되면 DI컨테이너는 각 빈에 필요한 종속성을 주입한다.
생성자 주입 , 세터 주입 , 필드 주입 총 3개지 방법을 활용하여 종속성을 주입한다.
2023.07.06 - [Spring] - [Spring]의존성 주입 DI(Dependency Injection) 개념과 Annotation
'Spring' 카테고리의 다른 글
[Spring] @ComponentScan 정의 (1) | 2023.07.09 |
---|---|
[Spring] SOLID 5원칙 정의, 장점 (0) | 2023.07.08 |
[Spring]의존성 주입 DI(Dependency Injection) 개념과 Annotation (0) | 2023.07.06 |
[Spring] 테스트 방식 JUnit 단위테스트 (0) | 2023.07.05 |
[Spring] 웹 브라우저 동작환경 (0) | 2023.07.04 |