제어의 역전(Inversion of Control)
- AppConfig와 같이 기획자가 프로그램에 대한 제어 흐름 권한을 가져가는 것을 제어의 역전이라고 한다.
* 프레임워크 vs 라이브러리 *
- 내가 작성한 코드를 제어하고 대신 실행까지 하면 프레임워크다.
(JUnit -> @Test 안의 내용만 개발자가 작성. 알아서 테스트 시켜줌.)
- 내가 작성한 코드가 직접 제어의 흐름을 담당한다면 라이브러리다.
의존관계 주입(Dependency Injection)
- 정적인 클래스의 의존 관계, 실행 시점에 결정되는 동적인 객체(인스턴스)의 의존 관계
- 정적인 클래스의 의존 관계: import 코드로 파악 가능. 클래스 다이어그램.
- 동적인 객체(인스턴스)의 의존 관계: 실제 생성된 객체 인스턴스의 참조가 연결된 의존 관계. 객체 다이어그램.
- 애플리케이션 실행시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존 관계가 연결되는 것을 의존관계 주입이라고 함.
* AppConfig와 같은 역할을 하는 것을 DI 컨테이너라고 함.
-> 객체를 생성하고 관리하면서 의존 관계를 연결해주는 것.
'Spring > 이론' 카테고리의 다른 글
웹 애플리케이션 이해 (0) | 2022.07.14 |
---|---|
빈 스코프(Bean Scope)란? (0) | 2022.07.04 |
컴포넌트 스캔 (0) | 2022.07.04 |
싱글톤 컨테이너(Spring) (0) | 2022.07.04 |
SOLID(좋은 객체 지향 설계의 5가지 원칙) (0) | 2022.06.29 |