https://youtu.be/6w7SQ_1aJ0A?si=fAUjOr_9__NadgRP
DDD에 대한 오해
- DDD는 전술적 패턴이다. => DDD에서 전략적 설계가 중요하다.
- DDD는 은탄환이다, MSA로 귀결된다, 방법론이다, 기술이나 구현 영역이다 ... 등등
DDD(Domain Driven Design)
- 패턴 사용법이나 구체적 방법론이 아닌, 오히려 추상적인 철학이나 접근법이라고 할 수 있다.
- 전략적 설계에 근간을 두고 있다!
전략적 설계
- 비즈니스 도메인 : 회사가 고객에게 제공하는 서비스 영역
- 문제 도메인 : 비즈니스 영역 중 일부(또는 전체) 영역을 소프트웨어를 통해 해결하고자 할 때, 해당 영역(문제 해결을 통한 가치 창출)
전략적 설계 과정
1. 비즈니스 도메인에서 문제 도메인 추출
2. 문제 도메인을 하위 도메인으로 나눈다.(마치 분할 정복처럼) => 도메인 지식 기반 위에서 유비쿼터스 언어를 사용하여 소통
3. 문제 공간 식별 => 핵심 하위 도메인 식별(핵심/지원/일반)
4. 문제 공간을 해결 공간으로 => Bounded-Context 간 경계를 설정하고 관계 설정
브라운 필드 전략적 설계
- 이미 구축된 소프트웨어에서 진행하는 프로젝트 <=> 맨 땅에서 시작하는 것은 그린 필드
* Big ball of mud : 특별한 구조가 없는 아키텍처 설계
전략적 설계 시 유용한 도구
- 사용 사례(use-case) 분석 => 전통적인 탑다운 방식
- 이벤트 스토밍 => 브라운 필드 상황에서 매우 유용
- 비즈니스 모델 분석
Bounded-Context
- 바운디드 컨텍스트가 다르면 유비쿼터스 언어도 달라진다.
- 콘웨이의 법칙 : 소프트웨어의 구조는 해당 소프트웨어를 개발하는 조직의 구조를 따라간다.
- 역콘웨이의 전략 : 개발하는 조직의 구조를 소프트웨어의 구조에 맞춘다.
[정리]
- DDD에서 전략적 설계가 중요하다.
- 지식 탐구와 커뮤니케이션
- 언제 어디서나 유비쿼터스 언어로 소통한다.
'공부 기록 > 영상 후기' 카테고리의 다른 글
제대로 이해하는 REST API (1) | 2023.11.28 |
---|---|
제대로 이해하는 API | 개발자필수지식 (1) | 2023.11.11 |
kafka 조금 아는 척하기 3 (개발자용)- 컨슈머 (0) | 2023.11.07 |
kafka 조금 아는 척하기 2 (개발자용) - 프로듀서 (0) | 2023.11.07 |
kafka 조금 아는 척하기 1 (개발자용) (0) | 2023.11.07 |