250x250
Notice
Recent Posts
Recent Comments
«   2024/09   »
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 more
Archives
Today
Total
관리 메뉴

개린이 개발노트

개발도서읽기_도메인 주도 개발 시작 하기(DDD)_최범균(P.~90) 본문

개발자도서

개발도서읽기_도메인 주도 개발 시작 하기(DDD)_최범균(P.~90)

개린이9999 2023. 11. 24. 13:26
728x90

 

개발자라면 한번쯤은 들어봤을 DDD, 막상 공부하려고 하니 막막해서 DDD(Domain Driven Design)에서 가장 유명한 저서인 최범균님의 도메인주도개발시작하기를 읽었다. 책의 모든 내용을 담을 순 없고, 90P까지의 내용 중에 인상깊은 내용을 정리해보았다.

 


도메인의 정의

도메인이란 무엇인가. 이 책에서는 도메인을 온라인서점에 비유해서 설명했다. 개발자 입장에서 온라인서점은 구현해야할

소프트웨어 대상이다. 이 때 이 온라인서점, 즉 소프트웨어로 해결하고자 하는 문제영역을 도메인이라고 정의한다.

 

도메인 모델 도출

도메인에 대한 이해없이 코딩을 시작할 수는 없다. 기획서, 유스케이스, 사용자스토리와 같은 요구사항을 통해 도메인을 이해하고 이를 바탕으로 모델 초안을 만들어야 코드를 작성할 수 있다. 

도메인을 모델링 할 때 기본작업은 핵심 구성요소, 규칙, 기능을 찾는 것이다. 이 과정은 요구사항에서 출발한다. 

 

도메인에서의 엔터티와 벨류

도메인에서의 엔티티의 가장 큰 특징은 식별자를 가진다는 것이다. 예를들어 주문 도메인 모델에서 주문에 해당하는 클래스가 Order라면 Order가엔티티가 되며 주문번호를 속성으로 갖게 된다. 엔티티의 식별자는 바뀌지 않고 고유하다.     

흔히 식별자는다음과 같은 방법으로 생성한다

특정규칙에 따라 생성 ,UUID나 Nano ID 같은고유 식별자 생성기 사용, 값을 직접 입력, 일련번호 사용(시퀀스나 DB의 자동증가 칼럼)               UUID와 Nano ID란? 

 

벨류 타입은 코드의 의미를 더 잘 이해할 수 있도록 한다. 

 

도메인 용어와 유비쿼터스 언어

 

      

 

 

 

 

 

728x90