개발일기
유비쿼터스 언어(보편 언어)의 중요성 본문
Account
유저 입장에서는 계정, 은행 입장에서는 계좌 다양한 의미를 내포
Reward
유저 입장에서 Reward는 item인가 Reward 보상 그 자체인가?
challenge
챌린지와 목표의 차이는 무엇? , 챌린지 이벤트 다른것?
위에처럼 한가지 단어에도 다양한 의미와 뜻이 내포되어있다. 이로 인해서, 개발자는 요구사항 or 모델링을 읽고 개발할 시에, 단어 뜻에서 있는 오류를 저지른다. 이러한 것을 해소하고자 유비쿼터스 언어(보편적 언어)를 사용한다.
유미쿼터스는 무엇인가?
Ubiquitous Language(보편 언어)는 도메인 전문가, 아키텍트, 개발자 등 프로젝트 구성원 모두에게 공유된 언어를 뜻한다.
그럼 이제 어떤 방식으로 유비쿼터스를 사용하는지 알아보자.
매장 주문
방문한 손님 수 | number of guests | 식기가 필요한 사람 수. 필수 사항은 아니며 주문은 0명으로 등록할 수 있다. |
빈 테이블 | empty table | 주문을 등록할 수 없는 주문 테이블 |
서빙 | served | 조리가 완료되어 음식이 나갈 수 있는 단계 |
완료 | completed | 고객이 모든 식사를 마치고 결제를 완료한 단계 |
접수 | accepted | 주문을 받고 음식을 조리하는 단계 |
접수 대기 | waiting | 주문이 생성되어 매장으로 전달된 단계 |
주문 | order | 매장에서 식사하는 고객 대상. 손님들이 매장에서 먹을 수 있도록 조리된 음식을 가져다준다. |
주문 상태 | order status | 주문이 생성되면 매장에서 주문을 접수하고 고객이 음식을 받기까지의 단계를 표시한다. |
주문 테이블 | order table | 매장에서 주문이 발생하는 영역 |
주문 항목 | order line item | 주문에 속하는 수량이 있는 메뉴 |
용어 사전을 정의 한다.
매장 주문 모델링
- OrderTable은 식별자와 이름, NumberOfGuests를 가진다.
- OrderTable의 추가 Order는 OrderTable에 계속 쌓이며 모든 Order가 완료되면 EmptyTable이 된다.
- EmptyTable인 경우 NumberOfGuests는 0이며 변경할 수 없다.
작성 할 때, 모델링은 사업팀도 이해할 수 있도록 작성해야 한다.
결론은 용어를 통일화해서 팀 단위로 같은 생각을 하게 하는 듯 싶다.
참고 자료:)
'DDD' 카테고리의 다른 글
레이어드 형식 패키지 -> DDD형식 패키지로 변경 (0) | 2025.03.22 |
---|---|
step3) 1편 DDD 세레나데 테스트를 통한 코드 보호 (0) | 2025.02.05 |
step2:) 요구사항 설계 작성 DDD 세레나데 (2) | 2025.02.02 |
[기획 & 설계] 이벤트 스토밍 (Event Stroming) (0) | 2025.01.11 |
[개발 & 방법론 / DDD] 바운디드 컨텍스트 (BOUNDED CONTEXT) (0) | 2025.01.10 |