Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 오픈패스
- baekjoon
- 내일배움캠프
- 국비지원교육
- 백엔드개발자
- 국비지원
- 티스토리챌린지
- 백준
- 백엔드
- UXUI챌린지
- 객체지향
- Spring
- 오블완
- Java
- 부트캠프
- KDT
- 디자인강의
- 오픈챌린지
- 디자인챌린지
- 백엔드 부트캠프
- 내일배움카드
- 패스트캠퍼스
- UXUIPrimary
- UXUI기초정복
- 환급챌린지
- mysql
- Be
- OPENPATH
- 국비지원취업
- 디자인교육
Archives
- Today
- Total
군만두의 IT 공부 일지
[스터디5] 06. 쇼핑몰 서비스 - 도메인 모델, 유스케이스, 책임-주도 설계 본문
목차
이번에는 책 198쪽에 있는 쇼핑몰 서비스에 대해서 도메인 모델 및 유스케이스에 대해 책임-주도 설계를 진행했다. 각자 같은 주제에 대해서 그려보고, 스터디원끼리 피드백을 하기로 했다.
06. 객체 지도
- 책임-주도 설계:
- 시스템의 기능을 역할과 책임을 수행하는 객체들의 협력 관계로 바라보게 함으로써 두 가지 기본 재료인 유스케이스와 도메인 모델을 통합한다.
- 사용자의 관점에서 시스템의 기능을 명시하고, 사용자와 설계자가 공유하는 안정적인 구조를 기반으로 기능을 책임으로 변환하는 체계적인 절차를 따라야 한다.
쇼핑몰 서비스 설계
전체 시나리오에 대해서 고민하니 너무 복잡해서 '고객의 주문'을 중심으로 생각했다.
유스케이스
- 유스케이스:
- 사용자와 시스템 간의 상호작용을 보여주는 텍스트
- 하나의 시나리오가 아니라 여러 시나리오들의 집합
- 단순한 피처(feature) 목록과 다르다.
- 사용자 인터페이스와 관련된 세부 정보를 포함하지 말아야 한다.
- 내부 설계와 관련된 정보를 포함하지 않는다.
유스케이스명: 주문 생성
액터: 고객
사전 조건:
- 고객은 로그인 상태여야 한다.
- 장바구니에 하나 이상의 상품이 담겨 있어야 한다.
주요 성공 시나리오:
1. 고객이 장바구니에 상품을 담는다.
2. 고객이 주문을 요청한다.
3. 장바구니는 총 금액을 계산한다.
4. 장바구니는 결제를 요청한다.
5. 결제시스템은 결제를 완료한다.
6. 결제 완료 시 주문이 생성된다.
7. 주문은 배송정보를 생성한다.
확장 시나리오:
3a. 고객이 배송지를 선택한다.
- 시스템은 기본 배송지를 불러오며, 고객은 이를 변경할 수 있다.
사후 조건:
- 주문이 시스템에 생성된다.
- 결제가 성공적으로 처리된다.
- 배송 정보가 생성된다.
- 주문 상태가 '결제 완료'로 설정된다.
이 유스케이스는 책 193쪽에 있는 '간단한 이자액 계산 유스케이스'를 기반으로 작성했다.
협력 흐름
- 객체들의 책임
- 고객(Customer)의 책임
- 자신의 개인 정보 제공하기
- 장바구니 소유 및 관리하기
- 주문 생성 요청하기
- 장바구니(Cart)의 책임
- 장바구니 항목들을 보관하기
- 장바구니 총액 계산하기
- 주문으로 변환하기
- 주문(Order)의 책임
- 주문 정보 유지하기
- 주문 상태 관리하기
- 결제 요청하기
- 배송 요청하기
- 상품(Item)의 책임
- 상품 정보 제공하기
- 재고 상태 확인하기
- 배송정보(DeliveryInfo)의 책임
- 배송지 정보 유지하기
- 배송 상태 추적하기
- 결제시스템(PaymentSystem)의 책임
- 결제 요청 처리하기
- 결제 결과 반환하기
- 고객(Customer)의 책임
도메인 모델
- 도메인 모델:
- 사용자가 프로그램을 사용하는 대상 영역에 관한 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태
- 소프트웨어가 목적하는 영역 내의 개념과 개념 간의 관계, 다양한 규칙이나 제약 등을 주의 깊게 추상화한 것
클래스 다이어그램
유스케이스 다이어그램
이번 활동을 통해 책임-주도 설계(RDD)에 대한 단순한 이론이 아니라, 실제 도메인 모델이 어떻게 연결되는지 체감할 수 있었다. 아직 익숙하지는 않지만, 직접 그려보는 과정에서 객체의 책임과 협력의 구성에 대한 관점이 확실히 달라진 것 같다.
이 글은 『객체지향의 사실과 오해』 책을 학습한 내용을 정리한 것입니다.
'프로그래밍 > 객체지향' 카테고리의 다른 글
[스터디6] 06. 스프링이 사랑한 디자인 패턴 - 쇼핑몰 서비스 (0) | 2025.04.05 |
---|---|
[스터디6] 05. 객체 지향 설계 5원칙 - SOLID (0) | 2025.03.29 |
[스터디6] 04. 자바가 확장한 객체 지향 (0) | 2025.03.22 |
[스터디6] 03. 자바와 객체지향 (0) | 2025.03.15 |
[스터디6] 02. 자바와 절차적/구조적 프로그래밍 (1) | 2025.03.07 |
Comments