WEB/spring
[Spring] 제어의 역전(IoC), 의존관계 주입(DI), 컨테이너
JJunDol2
2021. 4. 15. 21:33
제어의 역전(IoC)
- Java설정 클래스인 AppConfig가 없을 때는 클라이언트가 직접 new키워드를 사용하여 객체를 생성해서 사용함 = 클라이언트가 직접 프로그램의 플로우를 제어함
- AppConfig를 도입한 한 뒤에는, 클라이언트는 자신의 로직을 실행하지만 하고, 어떤 구현체를 사용할지, 어떤 의존관계를 가질지는 클라이언트가 아닌 외부의 AppConfig가 제어의 주도권을 가져감 = 제어의 역전
의존관계 주입(DI)
- 어플리케이션의 실행 시점에 외부에서 구현 객체를 생성하여, 클라이언트에 주입(생성자)하여 클라이언트와 서버 간의 의존관계가 형성되는 것
- 외부에서 의존관계를 주입해주면, 클라이언트의 코드 변경없이 프로그램의 변경이 가능함
컨테이너
- AppConfig 설정 클래스 처럼 제어권을 가지고, 클라이언트가 필요로 하는 구현 객체를 만들고, 의존관계를 주입해주는 것을 DI컨테이너라고 함 = Sping-Container의 역할