해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다.
내용 및 소스 출처
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8
Ioc 제어의 역전(Inversion of Control)
기본 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결을 했다. 즉 구현 객체가 프로그램의 제어 흐름을 조종한 것이다.
하지만 AppConfig(조립, 설정자)가 있으면, 구현 객체는 자신의 로직을 실행하는 역할만 담당하며, 모든 제어 흐름을 AppConfig가 가져간다.
즉 AppConfig가 어떤 역할에 어떤 구현체를 연결할 건지 결정하는 것으로, 프로그램의 제어 흐름을 직접 제어하는 것이 아닌 외부에서 관리하는 것을 IoC 제어의 역전이라고 한다.
DI 의존 관계 주입(Dependency Injection)
구현체인 클래스(객체)는 역할(인터페이스)에 의존하며, 어떤 구현체가 사용 될 지는 모른다.
의존 관계는 정적은 클래스 의존 관계와, 실행 시점에 결정 되는 동적인 객체 의존 관계로 구분하여 생각해야한다.
정적인 클래스 의존 관계는 클래스의 import만 보고 쉽게 의존 관계가 판단이 가능하며, 애플리케이션을 실행하지 않아도 분석할 수 있다.
동저인 객체 의존 관계는 애플리케이션의 실행 시점에 실제 생성된 객체 인스턴스의 참조가 연결된 의존 관계다.
IoC 컨테이너, DI 컨테이너
AppConfig와 같이 객체를 생성하고 관리하면서 의존 관계를 연결해주는 것은 IoC 컨테이너, DI 컨테이너라고 한다.
'B.E > Spring' 카테고리의 다른 글
[Spring] 스프링 컨테이너 생성 (0) | 2022.08.22 |
---|---|
[Spring] Spring Boot 프로젝트 배포 (0) | 2022.08.21 |
[Spring] 좋은 객체 지향 설계의 5가지 원칙 (0) | 2022.08.14 |
[Spring] 객체 지향 프로그래밍이란? (0) | 2022.08.14 |
[Spring] Book Api Project (0) | 2022.05.30 |