프레임워크 vs 라이브러리
- 프레임 워크 : 내가 작성한 코드를 제어하고, 대신 실행함
- 라이브러리 : 내가 작성한 코드가 직접 제어의 흐름을 담당함
의존관계는 정적인 클래스 의존 관계 와 동적인 클래스 의존 관계 를 분리해서 생각해야 한다.
각 클래스가 사용하는 import 되어지는 코드만 보고도 의존관계를 파악할 수 있다.하지만 의존 관계는 단지 인터페이스만 알뿐, 실제적으로 구현되는 객체와의 의존관계는 알 수 없다. 이는 동적 클래스 의존관계가 할 일이다.
어플리케이션 실행 시점에 실제 생성된 객체 인스턴스가 연결되어 만들어진 의존관계를 말한다.
이 때, 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달 후 클라이언트와 서버의 실제 의존 관계가 연결되는 것을 의존 관계 주입 (DI) 라고 한다.
따라서 이를 활용하여, 정적 클래스의 의존관계를 변경하지 않고 객체 인스턴스 의존관계를 바꿀 수 있다.