DDDQ 2장 유비쿼터스 언어

DDDQ(Domain Driven Design Quickly) - 도메인 주도 설계란 무엇인가? 라는 책의 간단 요약 정리

공통 언어의 필요성

공통 언어가 없다면?

  • 각 전문 분야 용어와 서로 다른 언어에 따른 의사소통이 어려움
  • 번역 비용
    • 예를 들어 개발자는 A 라는 용어를 쓰는데 도메인 전문가는 이해가 안되므로 도메인 전문가에게 설명을 위한 다른 용어로 표현
    • 번역 자체 비용 뿐만 아니라 용어의 혼재까지 발생해서 복잡도가 상승함
  • 자신만의 방언

솔루션

  • 도메인 모델 기반 언어 : 모델을 표현할 때 사용하는 용어
  • 다이어그램에 적혀진 언어를 프로젝트 의사소통 시에도 소리내어 사용
  • 이 언어를 유비쿼터스 언어(보편 언어) 라 부른다.

만약 해당 언어나 모델을 도메인 전문가가 잘 이해하지 못하면 그 부분은 잘못되어 있을 가능성이 매우 높다.

유비쿼터스 언어 만들기

항공기 관제 예제의 용어와 핵심개념

  1. 비행기, 출발지, 목적지
  2. 비행기, 항로
  3. 비행기, 항로, 고정지점, 위도, 고도
  4. 비행기, 항로, 고정지점, 위도, 고도, 비행계획, 속도
  5. 비행, 비행계획, 항로, 고정지점, 2차원 좌표

결론 : 개발자, 도메인 전무가로 구성된 설계팀은 자신들의 행동을 통합하고, 모델 작성과 작성된 모델의 코드화를 도와줄 언어가 필요하다

MJ

MJ
Backend 개발자 사람입니다. 어플리케이션의 복잡성을 다루는 DDD에 관심이 많습니다. 어제보다 더 나은 개발자가 되려고 항상 노력합니다.

spring boot 2.4.x 에서 openfeign + hystrix 통합하기

spring-boot 2.4.x spring-cloud 2020.x 의존성 상황에서 feign.hystrix.enabled=true가 안됨`feign.circuitbreaker.enabled=true` 로 바꿔보지만 openfeign과 hystr...… Continue reading

IDDD 14장. 애플리케이션

Published on June 19, 2018