제어의 역전 IoC (Inversion of Control)

프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것.

 

프레임워크 vs 라이브러리

- 프레임워크가 내가 작성한 코드를 제어. (JUnit)

- 반면, 내가 작성한 코드가 직접 제어의 흐름을 담당하면 그것은 라이브러리.

 

의존관계 주입 DI (Dependency Injection)

- 정적인 클래스 의존 관계 / 동적인 객체 의존 관계(실행시점) 을 분리해서 생각해야 함.

- [import 부분] 애플리케이션 실행하지 않고도 정적인 클래스 의존 관계 파악할 수 있음.

- 실행 시점에 외부에서 구현 객체 생성 후 클라이언트에 전달해서 실제 의존관계가 연결되는 것이 바로 의존관계 주입이다.

- 의존관계 주입을 사용하면 정적 다이어그램 손안대고 동적인 그림을 바꿀 수 있다.

 

IoC컨테이너, DI컨테이너

- AppConfig처럼 객체 생성하고 의존관계를 연결해 주는 것.

- 또는 어셈블러, 오브젝트 팩토리 등으로 불리기도 함.

 

+ Recent posts