스프링 핵심 원리 이해2 - 객체 지향 원리 적용
1. 새로운 할인 정책 개발
새로운 할인 정책을 확장해보자. (RateDiscountPolicy 추가)

2. 새로운 할인 정책 적용과 문제점
할인 정책을 적용해보자.
문제점 발견
왜 클라이언트 코드를 변경해야 할까?
기대한 의존관계

실제 의존관계

정책 변경

어떻게 문제를 해결할 수 있을까?
인터페이스에만 의존하도록 설계 변경

인터페이스에만 의존하도록 코드 변경
해결 방안
3. 관심사 분리
관심사를 분리하자.
AppConfig 등장
AppConfig
MemberServiceImpl - 생성자 주입
OrderServiceImpl - 생성자 주입
AppConfig 실행
사용 클래스 - MemberApp
사용 클래스 - OrderApp
테스트코드 수정
정리
4. 새로운 구조와 할인 정책 적용

5. IoC, DI, 그리고 컨테이너
제어의 역전 IoC(Inversion of Control)
의존관계 주입 DI(Dependency Injection)
정적인 클래스 의존관계

동적인 객체 인스턴스 의존 관계

IoC 컨테이너, DI 컨테이너
6. 스프링으로 전환하기
AppConfig 스프링 기반으로 변경
MemberApp 에 스프링 컨테이너 적용
OrderApp 에 스프링 컨테이너 적용
스프링 컨테이너
Last updated