1. Aggregate, Domain, Entity의 관계


어그리게이트, 도메인 객체, JPA 엔티티는 도메인 주도 설계(DDD)와 헥사고날 아키텍처에서 각각 중요한 역할을 하며 서로 다른 책임과 기능을 가지고 있습니다. 각 개념의 관계를 설명하겠습니다.

어그리게이트(Aggregate)

도메인 객체(Domain Object)

JPA 엔티티(JPA Entity)

어그리게이트, 도메인 객체, JPA 엔티티의 관계

  1. 어그리게이트는 도메인 모델의 일부: 어그리게이트는 여러 도메인 객체와 엔티티를 포함하여 비즈니스 로직을 처리하는 단위로 작동합니다. 어그리게이트 루트를 통해 상태를 관리하고 일관성을 유지합니다【313†source】.
  2. 도메인 객체와 엔티티의 구분: 도메인 객체는 비즈니스 로직을 캡슐화하고, 엔티티는 데이터의 영속성을 관리합니다. 이는 비즈니스 로직과 데이터 저장 로직을 명확히 분리하여 시스템의 유지보수성과 확장성을 높입니다【311†source】【310†source】.
  3. JPA 엔티티의 역할: 어그리게이트의 상태는 JPA 엔티티로 변환되어 데이터베이스에 저장됩니다. 어그리게이트 루트의 ID는 JPA 엔티티의 식별자로 사용되며, 이를 통해 저장소에서 어그리게이트를 식별하고 관리할 수 있습니다【309†source】【313†source】.