인프런 김영한 선생님 스프링 핵심 원리 강의를 보고 정리한 내용입니다.
의존관계는 정적인 클래스 의존관계와, 실행 시점에 결정되는 동적인 객체(인스턴스) 의존관계로 분리해서 생각해야 한다.
정적인 클래스 의존관계
- 클래스가 사용하는 import 코드만 보고 의존관계를 쉽게 판단할 수 있다.
- 정적인 의존관계는 애플리케이션을 실행하지 않아도 분석할 수 있다. by 클래스 다이어그램
- 하지만 클래스 의존관계만으로는 실제 어떤 객체가 클라이언트 코드에 주입될지 알 수 없다.
동적인 객체 인스턴스 의존관계
- 애플리케이션 실행 시점에 실제 생성된 객체 인스턴스의 참조가 연결된 의존 관계다.
- 애플리케이션 실행 시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것을 의존관계 주입이라고 한다.
- 의존관계 주입을 사용하면 클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다.
- 의존관계 주입을 사용하면 정적인 클래스 의존관계를 변경하지 않고, 동적인 객체 인스턴스 의존관계를 쉽게 변경할 수 있다.
'Dev > Spring' 카테고리의 다른 글
[Spring] 싱글톤 패턴과 싱글톤 컨테이너 (0) | 2023.09.12 |
---|---|
[Spring] 스프링 컨테이너 생성 및 조회 (0) | 2023.09.12 |
[Spring] AppConfig와 제어의 역전(IoC) (0) | 2023.09.10 |
[Spring] OCP, DIP를 위반하는 클라이언트 코드 고치기 (feat. DI) (0) | 2023.09.10 |
[Spring] 스프링이란? (0) | 2023.09.03 |