도메인 패턴을 중점으로 설계하는 패턴 입니다. (도메인 간의 관계가설계의 중심)
복잡한 도메인 모델을 잘 이해하고 소프트웨어의 복잡성을 최소화하여 소통이 원활하게 이루어지고 비지니스의 요구사항을 효과적으로 쉡게 반영할수 있게 합니다.
비즈니스를 도메인 별로 나누어 설계를 하여 확장성을 고려하고 모듈간의 의존성은 최소화하고 응집성은 최대화 합니다.
DDD는 Spring Data JDBC라는 기술과 밀접한 연관이 있어 Spring Data JDBC를 사용하기 위해서는 DDD에 대한 개념을 이해하고 있어야 합니다.
애플리케이션 개발에서 '도메인'이라는 용어는 특정 비즈니스 영역이나 업무 관련 사항과 연관되어 있습니다.
도메인을 쉽게 이해하기 위해 음식 주문 배달 애플리케이션을 만든다고 해보겠습니다.
음식 주문 배달 애플리케이션은
이렇게 구성되어 있습니다.
이들을 각각의 도메인이라 부를 수 있습니다.
즉, 도메인은 현실에서 접하는 업무의 한 영역들을 말합니다.

위 이미지는 음식 주문 배달 애플리케이션에서 필요한 도메인을 대략적으로 추출한 것입니다
위 도메인을 조금 더 세분화하면 하위 도메인들을 표현할 수 있습니다.
SQL-Driven-Design이란, 데이터베이스의 구조와 데이터의 흐름을 중심에 놓고 설계하는 패턴 입니다.
