DHistory
[Book] 도메인 주도 개발 시작하기 - 01. 도메인 모델 시작하기 본문
1. 도메인이란?
해결하고자 하는 문제 영역
(ex. 쿠팡: 로켓 배송 온라인 쇼핑)
2. 도메인 전문가와 개발자 간 지식 공유
요구사항을 전달하는 과정에서 커뮤니케이션 오류로 인해 제품이 잘못만들어질 가능성이 있다.
요구사항을 제대로 이해하고 더 나은 방안을 제시하려면 도메인 전문가와 직접 커뮤니케이션 하는 방법도 있다.
기획은 (날개로) 날아갈 수 있는 새를 만들어 달라는 거지만, (머리로) 날아갈 수 있게 개발이 되었다.
모호한 요구사항이 있다면, 반드시 이야기하여 구체적인 요구사항을 파악해야한다.
또는 더 나은 방안을 제시할 수 있다. (ex. 자동화)
3. 도메인 모델
특정 도메인을 개념적으로 표현한 것
(ex. 상품, 카테고리 등)
4. 도메인 모델 패턴
아키텍처 상의 도메인 계층을 객체 지향 기법으로 구현하는 패턴
도메인 계층은 도메인의 핵심 규칙을 구현
5. 도메인 모델 도출
도메인을 모델링할 때 기본이 되는 작업은 모델을 구성하는 핵심 구성요소, 규칙, 기능을 찾는 것
도메인(해결하고 싶은 문제)을 정의하고 요구사항(해결해야 할 세부적인 내용)이 있어야 비로소 도메인 모델을 도출할 수 있다.
6. 엔티티(Entity)와 밸류(Value)
엔티티: 식별자를 가진다.
밸류: 개념적으로 완전한 하나를 표현할 때 사용
밸류 객체의 데이터를 변경할 때는 기존 데이터를 변경하기보다는 변경한 데이터를 갖는 새로운 객체를 생성하는 방식을 선호
7. 도메인 용어와 유비쿼터스 언어
모든 이해관계자가 사용할 공통의 용어를 만들고 모든 곳에서 공통된 용어를 사용해야한다.
또한 이해하기 쉬운 언어를 공통 용어로 만들어야한다.
(ex. Type을 정의할 때 001, 002 (x) / ROCKET_DELIVERY, ROCEKT_WOW (o))
'Programming > Book' 카테고리의 다른 글
[Book] 도메인 주도 개발 시작하기 - 02. 아키텍처 개요 (0) | 2024.01.23 |
---|