도메인 모델 패턴을 기반으로 자바를 기반으로 한 응용 어플리케이션(사용자가 요청한 기능을 실행하는 레이어)

도메인: 내가 구현해야할 대상을 도메인이라고 보면 됨
클래스는 데이터를 담는다 = 도메인임, 클래스를 상속에 의해서 그룹핑= 도메인임, 도메인 규칙에 의해서 구현하는 것을 도메인 모델링

도메인 정의를 만들 땐 항상 주어가 있어야함
카탈로그
(정의)고객에게 구매할 수 있는 상품 목록을 제공
주문 도메인
(정의)고객의 주문을 처리한다
(주문의 하위 도메인)혜택 도메인
(정의)쿠폰이나 특별할인 서비스를 제공한다.
배송 도메인
고객에게 구매한 상품을 전달하는 여러가지 과정을 처리한다.
한 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공하는
회원
고객에 물건을 구매하면 주문을 통해서 결제, 배송이 이뤄지면, 혜택이 주어짐
각각의 도메인이 연결해서 기능이 chain되어서 제공이 되어짐

요구자가 진짜로 원하는 것이 무엇인지 대화를 통해서 찾을 수 있는 개발자
사용자가 원하지 않는 기능을 만들지 않는 개발자는 쓸모가 없다.
도메인모델을 보고 도메인을 이해하고 지식을 공유할 수 있습니다.
flowchart, 상태 다이어그램 등 표현방식은 무엇이든 괜찮음
모델의 구성요소는 특정 도메인으로 한정될 때, 비로소 의미가 완전해지기 때문에 하위 도메인마다 별도로 모델을 만들 수 있다. 즉, 상위 도메인의 스콥이 명확해야 하위 도메인을 뺄 수 있다. 즉 정확하게 구성요소를 한정시켜아한다.
스콥을 정해서 저장영역은 멤버고 기능에 대한 부분을 정해주는 작업.
단계별로 실체화되는 관계들을 경험해보는것이 인상적이었다.
주문
한 상품을 한 개 이상 주문할 수 있다.
각 상품의 구매 가격 합은 상품 가격에 구매 개수를 곱한 값이다.
(상품명, 상품의 가격, 구매개수, 항목별 구매가격)
-출고 상태로 변경하기
-배송지 정보 변경(입력)하기
-상품의 가격 총합 구하기
-주문취소하기
-결제완료하기