DDD를 hexagonal architecture·aggregate 같은 구현 pattern의 일괄 도입으로 오해하지 않고, 해결할 business 문제를 탐색하며 팀의 공통 언어와 경계를 점진적으로 발견하는 원칙으로 되짚는다. jargon부터 꺼내는 도입과 성급한 분리, 완벽한 선행 설계를 경계한다.
핵심 포인트- Eric Evans 책의 부제 '소프트웨어의 복잡성을 다루는 지혜'에 주목해 DDD를 domain model을 구현에 잇기 위해 문제 영역을 학습하는 원칙·pattern의 모음으로 정의하고, 2003년 이후 상식이 된 원칙과 낡은 구현 조언을 구분해 읽어야 한다고 강조
- 문제 합의 전에 DDD·hexagonal 같은 낯선 이름부터 꺼내면 방어 반응만 키우고, domain 경계도 모른 채 microservice·package를 먼저 나누면 복잡성·결합만 늘며 완벽한 설계는 변하는 요구에서 불가능하므로 monolith·단일 package에서 시작해 학습에 따라 분리하기를 권함
- greenfield에선 빈약한 model이라도 먼저 동작시킨 뒤 반복 상태 변경을 객체 message·value로 옮겨 풍부한 model을 발견하고 현업과 ubiquitous language를 기록하며, brownfield에선 domain을 subdomain으로 나눠 core·supporting·generic으로 분류하고 event storming·domain storytelling으로 검증하며 bounded context와 ACL을 필요한 순간에 세움
왜 읽나DDD를 '패턴 세트'로 도입했다 실패하기 쉬운 팀에게 jargon·조기 분리·과설계를 피하고 필요한 순간에만 적용하는 실천 경로를 제시한다.