알버트의 개발하는 블로그

[Spring] IoC(제어의 역전)와 DI(의존성 주입)에 대해서 본문

웹개발/Spring

[Spring] IoC(제어의 역전)와 DI(의존성 주입)에 대해서

알버트 2022. 3. 31. 16:28

1. IoC(Inversion of Control)이란?

IoC란 Inversion of Control의 약자로 해석하자면 제어의 역전이다. 
기존에는 객체들의 제어권을 개발자가 직접 가지고 있었지만, 서블릿이 등장하면서 개발자가 독점적으로 가지고 있던 제어권이 서블릿을 관리하는 외부의 컨테이너로 넘어가게 되었다. 즉, 개발자가 객체를 제어하는 것이 아닌 외부의 컨테이너가 제어하는 것을 제어의 역전이라고 한다. 그리고 이 IoC를 가능하게 해주는 것이 의존성 주입인 DI이다.



2. DI(Dependency Injection)

DI란 IoC를 구현하는 방법이다. 구현하는 방법에는 DI를 번역하면 의존성 주입이라고 할수있는데
각 객체간의 의존성을 컨테이너가 자동으로 연결해주는 것으로 개발자가 빈(Bean) 설정파일에 의존관계가 필요한 정보를 추가해주면 컨테이너가 자동적으로 연결해준다.