DDD(Domain-Driven Design)에 대해 설명해 주세요.
어떻게 하면 더 나은 애플리케이션을 설계할 수 있는지에 대해 고민하여 얻은 여러 결과물 중 하나가
DDD(Domain Driven Design), 도메인 주도 설계이다.DDD는 Spring Data JDBC 기술과 밀접한 연관이 있다.
DDD는 실세계에서 사건이 발생하는 집합인 Domain을 중심으로 설계하는 방법이다.
애플리케이션을 구현하기 위해 필요한 업무들을 자세히 구분하면 좋은 애플리케이션을 만들 가능성이 높아진다.
예) 옷 쇼핑몰
손님들이 주문하는 도메인, 점주들이 관리하는 도메인 등이 있을 수 있다.
이러한 도메인들이 서로 상호작용하며 설계하는 것이 도메인 주도 설계이다.
도메인 주도 설계에서 도메인은 각각 분리되어 있는데, 이러한 관점에서 MSA를 적용하면 용이한 설계를 할 수 있다.
DDD에서는 같은 객체들이 존재할 수 있는데, 예를 들어 옷 구매자 입장에서는(name, price)같은 객체 정보를 담지만, 옷 판매자 입장에서는(size, madeCountry)등 있을 수 있다.즉, 문맥에 따라 객체의 역할이 바뀔 수 있는 것이
DDD이다
DDD의 핵심 목표는 "Loosly Coupling", "High Cohesion"이다. 애플리케이션 또는 그 안의 모듈간의 의존성은 최소화하고, 응집성은 최대화 한다.
참고
Last updated