
[SpringBoot] AbstractAggregateRoot로 DomainEvent 발행하기
·
Java,Kotlin,SpringBoot
DDD에서 AggregateRoot와 Domain Event란?도메인 주도 개발(Domain-Driven Design)에는 애그리거트(Aggregate)라는 단위로 도메인을 관리한다.애그리거트는 복잡한 도메인을 관리하기 쉬운 단위로 분리한 것인데 이커머스를 예로 들면 상품이 하나의 애그리거트, 리뷰가 하나의 애그리거트가 될 수 있다.애그리거트는 다른 애그리거트에 관여하지 않고, 생성되고 변경되는 이유가 각자 다르다.AggregateRoot애그리거트는 여러 개의 모델로 이루어져 있을 수 있다. 이 때, 여러개의 모델을 한 번에 관리하는 주체를 AggregateRoot라고 한다.애그리거트의 내부를 변경하기 위해서는 오직 애그리거트 루트만 가능하며, 한 트랜잭션에서는 한 개의 애그리거트만 수정해야 한다.Dom..