Domain-Driven Design

sycho·2023년 12월 20일
0

cs-tips

목록 보기
7/15

Domain Driven Design이란?

  • 프로그램 디자인 방식 중 하나다.

  • business domain과 일치하게 소프트웨어를 모델링 하는 것이다. 여기서 business domain이란... 그냥 유사한 업무의 집합이다.

  • 기본적으로 loose decoupling, 그러니까 서로 다른 domain간의 의존성은 최소화하면서 high cohesion, 즉 서로 다른 domain간의 응집성은 최대화하는 것이 목표다. 즉 한 domain이 원할히 동작하기 위해 다른 하나가 필요한 것은 아니지만, 이들간의 협력이 매우 절묘하게 이루어져 application에서 다루려는 모든 domain을 온전히 수행해 나갈 수 있도록 디자인 하는 방식이다.

핵심 3목표

  • application의 domain중 가장 중요한 domain을 core domain이라고 하는데, 이 기능에 집중하는 것을 우선하기

  • domain의 모델은 복잡해도 상관 없으니 가급적 구체적으로 디자인하기.

  • 기술자는 본인이 담당하는 application의 특정 domain을 나타내는 model을, 그쪽 domain의 전문가와 긴밀히 상담하면서 발전시켜나가기.

지켜야하는 규칙들

profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글