DDD와 애그리거트(Aggregate) 그리고 결론 2026-07-08
·
Java
애그리거트(Aggregate)애그리거트의 단순한 의미로서는 '모으다', '합계하다'라는 뜻으로,여러 개별 요소나 데이터를 한데 모아 '총합' 또는 '집합체'를 만드는 것을 의미합니다. 이렇듯, 무언가를 하나로 묶는 단위로써 작동합니다.이 단어가 개발쪽으로 넘어오면, 연관 객체들을 하나로 묶는 단위로 작동합니다. 하나 예시를 들어보자면, 상품(Product)를 예시로 들겠습니다. 애그리거트 루트(Aggregatge Root) : 상품(Product)상품의 고유 ID, 이름, 설명, 가격, 등하위 객체(Entities/Value Objects)재고상품의 여러 객체 (크기, 사이즈, 색상 등)public void updateProductDetails(Long productId, int newQuantity, ..
DDD 4계층과 계층형 아키텍처 그리고 DIP 2026-07-06
·
Java
이번에 알게 된 도메인 주도 설계(DDD)에서 사용하는 계층형 아키텍처에 대해서 다시 한 번 공부해보면서 알아보겠습니다. 이전에 공부했던 계층형 아키텍처에 DDD가 붙으면서 조금더 세분화되고 네이밍을 다르게 한 것이 이번에 설명드릴 계층형 아키텍쳐(New!) 라고 할 수 있을 것 같습니다. Service 라는 하나의 계층에 묶여 있던 Application과 Domain 으로 쪼개어 4계층이 됩니다. 기존 구조를 조금더 정교하게 다듬은 버전이 되겠네요. DDD에서의 핵심 개념 몇가지와 약간의 내용1. 의존성 역전 원칙 (Dependency Inversion Principle), 이하 DIP2. 밸류 오브젝트 (Value Object), 이하 VO3. 애그리게이트 (Aggregate)4계층 설명컨트롤러(C..