먼저, "지금 당장 살아남기 위해 필요한 최소 기능"만 추려서 1차 오픈 스펙(MVP) 을 정의한다.
논의 결과, 다음과 같은 결론에 도달한다고 가정한다.
이렇게 과감한 선택과 집중 끝에, 다음과 같은 MVP 기능 명세서로 압축한다.
[쇼핑몰 MVP 기능 명세서]
1. 회원: 고객이 가입하고 자신의 정보를 관리할 수 있어야 한다.
2. 상품: 우리가 판매할 상품을 등록하고 관리할 수 있어야 한다.
3. 주문: 회원이 상품을 구매할 수 있어야 한다.
4. 결제: 주문에 대한 결제 정보를 기록하고 관리할 수 있어야 한다.
5. 배송: 결제가 완료된 주문의 배송 상태를 관리할 수 있어야 한다.
이 정도만 해도 온라인 쇼핑몰의 최소 기능은 충족할 수 있다. 이제 이 기능 명세를 기반으로 개념적 모델링을 시작한다.
MVP 요구 사항에서 데이터의 뼈대가 되는 엔티티를 뽑는다. 자연스럽게 다음과 같은 엔티티들이 떠오른다.
회원(Member) : 서비스를 사용하는 고객상품(Product) : 판매의 대상이 되는 물건주문(Order) : 회원의 구매 행위 결과결제(Payment) : 주문에 대한 지불 정보배송(Delivery) : 주문된 상품의 물리적 이동 정보정리하면, 핵심 엔티티는 다음 다섯 개가 된다.
회원(Member)
상품(Product)
주문(Order)
결제(Payment)
배송(Delivery)
여기서 특히 중요한 점은 주문과 배송을 분리했다는 것이다.