DDD in Monolith

  • DDD는 비즈니스 또는 문제 도메인의 핷미을 이해하고 모델링하는 데 중점을 두는 접근 방식
  • 대규모 애플리케이션의 복잡성을 해결하기 위한 일련의 원칙과 패턴을 제공

이점

모듈화 및 관심사 분리

  • 코드 베이스 내에서 관심사의 모듈화 및 분리를 촉진한다.
  • 애플리케이션의 경계가 뚜렷한 컨텍스트로 구성하면 시스템의 여러 부분을 분리하여 불필요한 종속성을 피하고 전반적인 모듈성을 개선할 수 있다.

공유된 이해와 커뮤니케이션

  • 개발자와 도메인 전문가가 긴밀하게 협력하여 문제 도메인에 대한 공통된 이해를 구축할 수 있다.
  • 덕부넹 요구 사항을 명확하 하고, 숩겨진 복잡성을 발견할 수 있다.

    유비쿼터스 언어

  • 개발자는 소프트웨어 모델과 도메인 전문가의 정신적 모델 간의 격차를 해소할 수 있다.

    확장성 및 진화 가능성

  • 확장성, 진화 가능성을 향상시킬 수 있다.
  • 핵심 도메인을 중심으로 코드 베이스를 구성하면 시스템에서 가장 중요한 부분을 더 쉽게 식별할 수 있다.
  • 모듈식 특성 때문에 애플리케이션 전체에 광범위한 중단 없이 향후 변경 및 새로운 기능 추가에 용이