본문 바로가기
Learning-log/Spring & JPA

(스프링 핵심 원리 - 기본편) 2-주문과 할인 도메인 (6) 설계 , (7) 개발, (8)실행과 테스트

by why제곱 2023. 3. 27.

- 주문과 할인 도메인 설계

 

  • 주문과 할인 정책을 다시 떠올려보자.
    • 회원 : 상품 주문 가능
    • 회원 등급에 따라 할인 정책 적용 가능
    • 할인 정책 : 모든 vip는 1000원 할인하는 고정 금액 할인 적용(변경 가능)
    • 할인 정책 변경 가능성이 높음

 

출처 : 인프런 김영한 스프링 핵심원 기본편 강의

  • 클라이언트는 주문 생성 가능/주문 서비스는 주문 생성의 역할을 함
  • 회원저장소에서 회원 조회
  • 회원등급을 가지고 할인 정책 역할에 할인 적용할 수 있는지 물어보고 그 결과를 주문서비스가 받음(주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임)
  • 주문서비스는 최종적으로 할인까지 적용된 주문결과를 클라이언트에게 반환
  •  

출처 : 인프런 김영한 스프링 핵심원 기본편 강의

  • 위처럼 역할과 구현을 분리 => 자유롭게 구현 객체 조립 가능. 회원저장소와 할인정책 모두 유연하계 변경 가능
  • 정액 할인 정책에서 정률 할인 정책으로 변경되거나, 메모리 회원 저장소에서 DB저장소로 바뀌더라도 할인 정책 역할이나 회원 저장소 역할은 변경될 필요가 없.다 !  ( 협력관계 그대로 유지)

 

* Impl : 인터페이스에 대한 구현체가 딱 하나만 있으면 보통 Impl을 붙임

 

 

- 주문과 할인 도메인 개발

 

 

- 주문과 할인 도메인 실행 및 테스트

 

단위테스트가 정말 중요. 

단위테스트 : 스프링이나 컨테이너 도움 없이 순수하게 java 코드로만 테스트하는 것.

 

 

=> 정리 . 

클라이언트가 주분 서비스에 주문생성하고 주문 서비스는 그 결과를 클라이언트에게 반환하는 기능을 구현해봤다 !