도메인 주도 설계 첫걸음 - 마무리
독서평
비즈니스 도메인을 설정하여 나누는 방법과 나눈 뒤 일을 하는 방법 등에 대한 기술과 저변에 대해 저술되어 있다. 개발자의 시선으로 DDD를 적용하기 위한 핵심 기술을 중심으로 이야기하고 있다. 하지만, 나는 그 기술들의 저변으로 비즈니스와 사람과의 합의(협력))의 중요성 등에 대한 이야기가 더 인상 깊었다. 많은 개발자들이 개발에만 몰입되어 이런 부분들에 대해 깊게 생각하지 않은 경우도 많을 듯 하다. 이러한 개발자들의 시선을 코드에서 벗어나 조직 그 자체와 조직에서 개발자 외의 함께 같은 목표를 향해 달려가는 사람들과의 협력으로 조금을 옮겨볼 수 있는 계기를 제공한다. 이 책에서 이야기 하는 DDD는 조직 구조에서 부터 생각을 해 봐야 하는 부분이 많아 당장 개발자로서 이 책을 읽고 할 수 있는 게 없다고 느낄 수도 있다. 하지만, 그럼에도 불구하고 많은 많은 생각을 할 수 있고, 적용할 수 있는 부분이 많다. 기술적인 부분보다도 멘탈적인 부분에 더 충격을 준다. DDD를 이 한 권의 책으로 이해하기는 어렵다. 관심이 있다면 반드시 다른 책을 추가로 읽어보도록 하자. 어느 정도 경험이 있는 미드레벨 혹은, 그 이상 경력의 개발자에게 추천한다.
핵심 키워드
- 합의
- “우리가 해결하고자 하는 문제가 무엇인지 합의하기 전에 해결책을 얘기하는 것은 의미가 없다. 또한 해결책에 대해 합의하기 전에 어떻게 구현하는지 얘기하는 것도 의미가 없다.”
- 에프랏 골드랫-아쉬라그
- “우리가 해결하고자 하는 문제가 무엇인지 합의하기 전에 해결책을 얘기하는 것은 의미가 없다. 또한 해결책에 대해 합의하기 전에 어떻게 구현하는지 얘기하는 것도 의미가 없다.”
- 비즈니스 도메인(business domain)
- 회사가 고객에게 제공하는 서비스
- 기업의 주요 활동 영역
- 도메인 전문가(domain expert)
- 비즈니스를 대표하는 사람
- 비즈니스의 주제 전문가
- 회사의 비즈니스 도메인 또는 하나 이상의 하위 도메인에 대한 심층적인 지식을 가지고 있으며 프로젝트 성공에 매우 중요한 역할을 한다.
- 유비쿼터스 언어(ubiquitous language)
- 비즈니스 도메인을 설명하기 위한 단일화된 언어 체계
- 경계
- 바운디드 컨텍스트(bounded context)
- 제한된 문맥, 경제지어진 문맥, 모델의 경계, 유비쿼터스 언어의 범위
- 시맨틱 도메인(semantic domain)
- 주어진 컨텍스트 내에서 의미 집합을 공유하는 특정 장소 또는 그 의미를 유지하는 언어
- 이벤트 스토밍(event storming)
- 협업을 통해 비즈니스 프로세스를 모델링하는 워크숍
- 전략적 설계(strategic design)
- 전술적 설계(tactical design)