작은 쇼핑몰 설계
실전 예제에서 만든 도메인 모델 정리
메인 화면

회원 기능
상품 기능
주문 기능
기타 요구사항
상품의 종류는 도서, 음반, 영화가 있다.
상품을 카테고리로 분류할 수 있다.
상품 주문 시 배송 정보를 입력할 수 있다. ## 2. 도메인 모델 설계 UML

회원, 주문, 상품의 관계 : 회원은 여러 상품을 주문할 수 있다. 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다 관계다.
하지만 다대다 관계는 RDB는 물론이고 엔티티에서도 거의 사용하지 않아 주문상품이라는 엔티티를 추가해서 다대다 관계를 일대다, 다대일 관계로 풀어냈다.
상품 분류 : 상품은 도서, 음반, 영화도 구분되는데 상품이라는 공통 속성을 사용하므로 상속 구조로 표현했다.
UML 상세정보

회원(Member) : 이름, 임베디드 타입인 Address와 주문한 상품들을 가진다.
주문(Order) : 한 번 주문 시 여러 상품을 주문할 수 있어 주문과 주문상품은 일대다 관계다.
주문은 상품을 주문한 회원과 상품목록, 배송 정보, 주문 날짜, 주문 상태를 가지고 있다.
주문 상태는 열거형 사용(ORDER, CANCEL)
주문 상품(OrderItem) : 주문한 상품 정보와 주문 금액, 주문 수량 정보를 가지고 있다.
상품(Item) : 이름, 가격, 재고수량을 가지고 있다.
상품을 주문하면 재고수량이 줄어든다.
상품의 종류는 도서, 음반, 영화가 있는데 각각 사용하는 속성이 조금씩 다르다.
배송(Delivery) : 주문 시 하나의 배송 정보를 생성한다. 주문과 배송은 일대일 관계
카테고리(Category) : 상품과 다대다 관계를 맺는다.