-
도메인 주도 설계 핵심DESIGN PATTERN & ARCHITECTURE 2024. 3. 31. 14:19
도메인 주도 설계 핵심 책을 읽고 간단하게 정리해보았다.
https://www.yes24.com/Product/Goods/48577718
바운디드 컨텍스트와 보편 언어
- 바운디드 컨텍스트
- 동일한 컨텍스트의 범위 표현
- 바운디드 컨텍스트 내에 존재하는 컴포넌트들은 컨텍스트에 특화
- 단일 팀에만 할당되어야 하며 독립적인 소스 코드 레파지토리가 있어야 함
- 데이터 스키마도 명확히 분리
- DDD는 서로 다른 개념들을 각기 다른 바운디드 컨텍스트 안으로 분리하여 개념 간 차이를 더욱 중시
- 도메인 모델 이상의 다양한 요소들로 구성됨
- 보편 언어
- 바운디드 컨텍스트 안의 팀 구성원이 사용하는 언어
도메인 전문가
- 다양한 비즈니스 영역마다 존재
- 개발자는 소프트 웨어 개발에 중점
- 개발자는 기술 중심의 주장을 하지 않도록 조심해야 함
- 개발자는 근거 없는 간결성은 피하고 해당 팀의 바운디드 컨텍스트 안에 팀이 점진적으로 개발하는 보편 언어를 수용할 수 있어야 함
- 비즈니스에 중점을 두는 사람
행위 주도 개발
- 사례를 통한 명세
- 공유된 이해를 기반으로 보편언어와 모델을 협업을 통해 개발 및 정제하고 모델이 명세서를 준수하고 있는지를 확인하는 것
- 인수테스트는 직접적으로 바운디드 컨텍스트와 연관되고, 소스 코드 리파지토리에 유지됨
서브도메인
- 전체 비즈니스 도메인의 하위 부분
- 서브도메인 영역
- 핵심 도메인
- 기업 프로젝트에서 높은 우선순위
- 지원 서브도메인
- 지원 서브 도메인 없이 핵심 도메인을 성공시킬 수 없음
- 일반 서브도메인
- 일반 서브 도메인을 핵심 도메인으로 오해하지 않도록 주의
- 핵심 도메인
추상화 주의 사항
- 소프트 웨어 모델의 언어가 도메인 전문가의 멘탈 모델과 일치해야 함
- 추상화 레벨이 너무 높아 개별적인 형태의 세부 사항을 모델링하면 어려워짐
- 잘못된 추상화 수준은 사용자 인터페이스까지 영향을 미쳐 혼란을 야기함
이벤트 소싱
- 애그리게잇 인스턴스에 대해 변경된 것에 대한 기록
- 발생했던 모든 도메인 이벤트를 저장
- 도메인 이벤트를 발생한 순서대로 이벤트 스트림에 구성
- 이벤트 스트림은 애그리게잇에 가장 처음 발생했던 도메인 이벤트로 시작해서 마지막 도메인 이벤트까지 지속
- 애그리게잇 인스턴스에 새로운 도메인 이벤트가 발생하면 이벤트 스트림의 마지막에 추가
- 애그리게인에 이벤트 스트림을 재적용하면 저장된 정보가 메모리로 환원됨
- => 메모리에서 삭제되었던 애그리게잇들을 이벤트 스트림을 통해 온전히 환원이 가능
'DESIGN PATTERN & ARCHITECTURE' 카테고리의 다른 글
도메인 주도 개발 시작하기 CH.8 ~ CH.9 (1) 2024.07.03 도메인 주도 개발 시작하기 CH.6 ~ CH.7 (0) 2024.06.26 도메인 주도 개발 시작하기 CH.4 ~ CH.5 (0) 2024.06.19 도메인 주도 개발 시작하기 CH.1 ~ CH.3 (0) 2024.06.10 EDA ( Event - Driven -Architecture) (1) 2022.09.29 - 바운디드 컨텍스트