DDDQ 2장 유비쿼터스 언어
DDDQ(Domain Driven Design Quickly) - 도메인 주도 설계란 무엇인가? 라는 책의 간단 요약 정리
공통 언어의 필요성
공통 언어가 없다면?
- 각 전문 분야 용어와 서로 다른 언어에 따른 의사소통이 어려움
- 번역 비용
- 예를 들어 개발자는 A 라는 용어를 쓰는데 도메인 전문가는 이해가 안되므로 도메인 전문가에게 설명을 위한 다른 용어로 표현
- 번역 자체 비용 뿐만 아니라 용어의 혼재까지 발생해서 복잡도가 상승함
- 자신만의 방언
솔루션
- 도메인 모델 기반 언어 : 모델을 표현할 때 사용하는 용어
- 다이어그램에 적혀진 언어를 프로젝트 의사소통 시에도 소리내어 사용
- 이 언어를 유비쿼터스 언어(보편 언어) 라 부른다.
만약 해당 언어나 모델을 도메인 전문가가 잘 이해하지 못하면 그 부분은 잘못되어 있을 가능성이 매우 높다.
유비쿼터스 언어 만들기
항공기 관제 예제의 용어와 핵심개념
- 비행기, 출발지, 목적지
- 비행기, 항로
- 비행기, 항로, 고정지점, 위도, 고도
- 비행기, 항로, 고정지점, 위도, 고도, 비행계획, 속도
- 비행, 비행계획, 항로, 고정지점, 2차원 좌표
결론 : 개발자, 도메인 전무가로 구성된 설계팀은 자신들의 행동을 통합하고, 모델 작성과 작성된 모델의 코드화를 도와줄 언어가 필요하다