DDD

민선규·2023년 4월 5일

기타

목록 보기
2/16

DDD(도메인 주도 설계)

요즘 취준을 하면서 DDD라는 말을 여러 접하게 되었는데 이번 기회에 DDD에 대해 정리를 해보았다. DDD란 Domain Driven Design의 약자로 도메인 주도 설계라고 부른다. 이름만 보았을 때 해석할 수 있듯이 도메인이 주도하는 즉 도메인을 중심으로 소프트웨어를 설계하는 방법이다. 여기서 하나 하나 키워드를 정리해 보겠다.

도메인

도메인 주도, 도메인 중심 그렇다면 도메인은 정확히 무엇을 의미하는 걸까? 도메인이란 어느 하나의 기능의 집약체, 업무의 영역으로 나는 생각을 정리했다.
도메인을 나누는 기준은 절대적이지 않고 개개인마다 다르게 생각할 수 있으니 추상적인 의미로 이해하면 될 것이다.

도메인 예시

온라인 쇼핑 - 상품 도메인, 주문 도메인, 회원 도메인 등
배달 - 가게 도메인, 결제 도메인, 회원 도메인 등

애그리거트

도메인에 대해서 개념과 예시에 대해서 정리를 해보았다 그렇다면 앞서 예시를 들었던 주문 도메인에 대해서 디테일하게 풀어보겠다.
주문 도메인은 하위 도메인들을 가지게 된다. 예를 들어 주문하는 상품 도메인, 주문 정보 도메인, 주문하는 회원 도메인 등 이 있다. 이렇게 비슷한 범주의 연관된 도메인들을 하나로
그룹화 한 것을 애그리거트라 부른다.

애그리거트 루트

위에 정한 애그리거트에는 하나 이상의 도메인이 존재하는데 그 중 하나의 애그리거트를 대표하는 도메인을 애그리거트 루트라고 부른다.
위 예시에서는 주문 정보 도메인이 애그리거트 루트라 볼 수 있다.

애그리거트 루트 선정

  • 애그리거트 내의 도메인들 중에서 다른 모든 도메인들과 직간접적으로 연관이 되어 있는 도메인들을 발견할 수 있다.
  • 특정 도메인이 다른 모든 도메인들과 연관이 있다면 애그리거트 루트로 선정할 수 있다.

DDD를 공부하면서 정말 깊이있고 난이도 있는 개념인 것을 점차 깨닫게 되었다. 이번 글에는 간단한 개념 위주로 설명을 하였고 후에 디테일하게 다시 정리를 해 볼 예정이다.

참고 문서 및 링크

0개의 댓글