Ref.
[DDD] 도메인 주도 설계 애그리거트(Aggregate) 알아보기
애그리거트란 관련된 객체들을 모아 하나의 단위로 취급하는 개념으로, 객체지향 프로그래밍에서, 애그리거트는 객체 간의 관계를 정의하는 방법 중 하나로, 논리적으로 관련된 객체들을 그룹화하여 하나의 묶음으로 다룬다.
쉽게 말해 여러 개의 객체를 묶어 하나의 큰 객체로 다루는 것이다.
애그리거트는 일반적으로 Entity, Value로 구성되고, 애그리거트는 엔티티와 밸류의 관계를 나타내는 루트 root 엔티티를 포함하며 루트 엔티티는 애그리거트에 속한 다른 객체들과 관계를 정의한다. 애그리거트는 불변성을 유지하며, 내부 구현을 캡슐화한다.
이때 주문 애그리거트의 루트(Root)는 주문 객체로 주문과 관련된 모든 정보를 가진다.
주문 애그리거트 내에서만 주문의 상태를 변경하고 관리할 수 있으며, 주문과 관련된 상품이나 배송 정보와의 일관성이 유지된다.
애그리거트를 사용하면 도메인 모델이 명확해지고 유지보수가 용이해지며, 도메인 주도 설계의 핵심 원칙을 준수할 수 있다.