2.6.1 주문 / 할인 도메인 설계
앞선 섹션 2.2의 비즈니스 요구사항을 바탕으로 주문 / 할인 도메인을 설계해보자.
주문 / 할 도메인 요구사항은 다음과 같다,
주문 / 할인 도메인 정책
1) 회원은 상품을 주문할 수 있다.
2) 회원 등급에 따라 할인 정책이 다르게 적용된다.
3) 모든 VIP 는 1000원을 할인해주는 고정 금액 할인이 적용된다. (나중에 변경 가능)
4) 할인 정책은 변경 가능하다. 최악의 경우 할인을 적용하지 않을 수 있다. (미확정)
주문 / 할인 도메인 요구사항을 설계해보면 다음과 같다.
클라이언트
: 클라이언트는 주문을 생성할 수 있다.
(간단한 예제를 위해 상품 객체가 아닌 상품자체 데이터를 넘기도록 하였다.)
주문 서비스 역할
: 할인을 위해서는 회원 등급이 필요하므로, 회원 저장소에 회원 조회를 요청한다.
(주문 데이터를 생성하여 데이터베이스에 저장해야 하지만, 간단히 하기 위해 db에 저장하는 과정은 생략하였다.)
회원 저장소 역할
: 주문 서비스가 요청한 회원을 조회한다.
할인 정책 역할
: 회원 등급에 따른 할인 여부를 확인한다.
앞선 주문 도메인 협력 관계를 클래스 다이어그램으로 나타내면 다음과 같다.
인터페이스와 구현체를 이용하여 자유룝게 구현 객체를 조립할 수 있도록 하였다.
따라서, 회원 저장소와 할인 정책을 이후에도 유연하게 변경할 수 있다.
즉, 회원을 메모리에서 조회한 후, 정액 할인 정책을 지원하거나
회원을 DB 에서 조회하고, 정률 할인 정책을 지원하더라고
협력 관계를 그대로 재사용할 수 있는 것이다.
김영한 '스프링 핵심 원리 - 기본편' 강의를 기반으로 작성하였습니다.
'SPRING 핵심 원리 [ 기본편 ]' 카테고리의 다른 글
[스프링 핵심 원리] 섹션 2.8 예제만들기 (주문과 할인 도메인 실행과 테스트) (0) | 2023.01.24 |
---|---|
[스프링 핵심 원리] 섹션 2.7 예제만들기 (주문과 할인 도메인 개발) (0) | 2023.01.24 |
[스프링 핵심 원리] 섹션 2.5 예제만들기 (회원 도메인 실행과 테스트) (0) | 2023.01.24 |
[스프링 핵심 원리] 섹션 2.4 예제만들기 (회원 도메인 개발) (0) | 2023.01.24 |
[스프링 핵심 원리] 섹션 2.3 예제만들기 (회원 도메인 설계) (0) | 2023.01.24 |