반응형

 

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

반응형

+ Recent posts