제어의 역전(IoC)
- Java설정 클래스인 AppConfig가 없을 때는 클라이언트가 직접 new키워드를 사용하여 객체를 생성해서 사용함 = 클라이언트가 직접 프로그램의 플로우를 제어함
- AppConfig를 도입한 한 뒤에는, 클라이언트는 자신의 로직을 실행하지만 하고, 어떤 구현체를 사용할지, 어떤 의존관계를 가질지는 클라이언트가 아닌 외부의 AppConfig가 제어의 주도권을 가져감 = 제어의 역전
의존관계 주입(DI)
- 어플리케이션의 실행 시점에 외부에서 구현 객체를 생성하여, 클라이언트에 주입(생성자)하여 클라이언트와 서버 간의 의존관계가 형성되는 것
- 외부에서 의존관계를 주입해주면, 클라이언트의 코드 변경없이 프로그램의 변경이 가능함
컨테이너
- AppConfig 설정 클래스 처럼 제어권을 가지고, 클라이언트가 필요로 하는 구현 객체를 만들고, 의존관계를 주입해주는 것을 DI컨테이너라고 함 = Sping-Container의 역할
'WEB > spring' 카테고리의 다른 글
[Spring] 싱글톤 패턴, 싱글톤 컨테이너, CGLIB (0) | 2021.04.15 |
---|---|
[Spring] 스프링 컨테이너, BeanFactory , ApplicationContext, BeanDefinition (0) | 2021.04.15 |
[Spring] 어플리케이션 Java설정 클래스 (0) | 2021.04.15 |
[Spring] Java 다형성을 활용한 설계와 한계 (0) | 2021.04.15 |
[Spring] 스프링/객체 지향 프로그래밍/다형성/SOLID (0) | 2021.03.16 |