출처
loC (Inversion of Control) : 제어의 역전
: 기존 프로그램은 구현 객체가 스스로 서버 구현 객체를 생성하고 연결, 실행까지 하며
모든 제어 흐름을 스스로 조종했다.
그러나 AppConfig가 등장하고 난 이후로는
AppConfig가 프로그램의 제어 흐름을 조종한다.
따라서 구현 객체(OrderServiceImpl)는 인터페이스들을 호출은 하지만
어떤 구현 객체들이 실행되고 있는지를 모른다.
DI (Dependency Injection) : 의존관계 주입
>> 실행시점에 외부에서 실제 구현 객체를 생성하고
클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것
(1) 정적인 클래스 의존관계
: 애플리케이션을 실행하지 않아도 분석할 수 있다.
코드만 보고 의존관계를 쉽게 판단할 수 있다.
(2) 동적인 클래스 의존관계
: 실행 시점에 실제 생성된 객체 인스턴스의 참조가 연결된 의존관계이다.
loC 컨테이너, DI 컨테이너
: AppConfig처럼 객체를 생성하고 관리하면서 의존 관계를 연결해주는 것
의존관계 주입에 초점을 맞춰서 최근에는 주로 DI 컨테이너라 부른다.
'여니의 프로그래밍 study > Spring & Spring Boot' 카테고리의 다른 글
[스프링부트] 스프링 컨테이너와 스프링 빈 (1) | 2022.01.16 |
---|---|
[스프링부트] 스프링 컨테이너와 스프링 빈 (1) | 2022.01.16 |
[스프링 핵심 원리 이해2] - AppConfig, DI (0) | 2022.01.10 |
[IntelliJ] 단축키 모음 (0) | 2022.01.10 |
UML 다이어그램 (0) | 2022.01.09 |