Web

    Spring 핵심 원리 #4- AppConfig 리팩토링/총정리

    # 기존의 AppConfig 코드 - 기존 코드를 살펴보면 MemoryMemberRepository 객체의 중복 생성이 존재하며, 각 클래스의 역할이 잘 안보인다. : 생성자가 인터페이스에 의존하므로 각 구현체 정보만 확인할 수 있기 때문이다. #AppConfig 리팩토링 =>AppConfig의 중복이 제거되었고, 구현체들의 역할이 훨씬 잘 보인다. # AppConfig의 역할 총정리 : AppConfig가 등장함으로써 애플리케이션이 크게 사용 영역과 객체를 생성하고 구현체를 할당하여 구성하는 구성(Configuration) 영역으로 나뉘었다. -> 만약 할인 정책을 RateDiscountPolicy로 변경해도 사용영역은 전혀 영향을 받지 않고 구성 영역만 바뀌게 된다. : 구성 영역은 당연히 변경되는 ..

    Spring 핵심 원리 #3- 새로운 할인 정책/AppConfig 적용

    #새로운 할인 정책의 개발 : 기획자가 이전의 고정 할인 정책에서 정률 할인 정책으로 바꾸고 싶다고 한다. -> 우리는 이전에 유연한 설계가 가능하도록 객체지향 설계 원칙을 준수하여 개발을 진행하였다. : 인터페이스를 만들어 구현체 클래스에 각각의 역할을 따로 맡기고, 이후에 원하는대로 객체를 조합하여 사용할 수 있다. Q) 실제로 이전의 설계가 객체지향 설계 원칙을 잘 준수했는가? 확인해보자 - 주문한 금액의 %를 할인해주는 새로운 정률 할인 정책을 추가하자. -> DiscountPolicy를 상속받는 RateDiscountPolicy를 만들어 원하는 대로의 할인 정책을 실행할 수 있다. #새로운 할인 정책 적용과 문제점 -> 그렇지만 이전의 코드는 객체지향원칙을 완벽히 준수하고 있지는 않다. - 문제..

    Spring 핵심 원리 #2- 주문/할인 도메인 개발

    # 주문과 할인 정책 - 회원은 상품을 주문 할 수 있다. - 회원 등급에 따라서 할인 정책을 적용할 수 있다. - 우선은 VIP는 1000원을 할인해주는 고정 할인금액 정책을 적용한다. (추후에 변경될수도 있다) - 아직 회사의 할인정책이 미정이다. 오픈 직전까지 고민을 미루고싶다. -> 할인 정책을 언제든 유연하게 바꿀 수 있도록 하는 것이 중요해 보인다. # 주문 도메인 다이어그램 1. 주문 생성 : 고객은 주문 서비스에 주문 생성을 요청한다. 2. 회원 조회: 할인을 위해서는 회원 조회가 필요하다. 주문 서비스는 회원 저장소에서 회원을 조회한다. 3. 할인 적용 : 주문 서비스는 회원 등급에 따른 할인 적용을 할인 정책에 위임한다. 4. 주문 결과 반환 : 주문 서비스는 할인 결과를 포함한 주문 ..