애그리거트 2

애그리거트와 리포지토리 패턴

1. 애그리거트의 핵심 역할1-1. 비즈니스 무결성을 보장하는 경계 애그리거트(Aggregate)는 도메인 주도 설계(DDD)에서 비즈니스 규칙의 일관성을 유지하는 최소 단위로 사용된다. 즉, 하나의 트랜잭션 안에서 상태 변경이 일어날 수 있는 객체의 범위를 정의한다. 여러 엔터티와 값 객체가 구성돼 있을 수 있지만, 외부에서는 루트 엔터티를 통해서만 조작 가능하다. 예를 들어 Order는 루트이고, 그 안에 OrderLine, ShippingInfo, PaymentInfo 등의 하위 객체가 있다. 외부에서는 직접 OrderLine을 수정할 수 없고, 반드시 Order를 통해 추가/삭제해야 한다. 이러한 구조는 객체 간 무결성을 유지하며, 변경 범위를 명확히 제한해준다. 결국 애그리거트는 단순한 객체 ..

컴퓨터공학 2025.05.24

도메인 주도 설계(DDD) 핵심

1. 도메인 주도 설계란 무엇인가?1-1. 복잡한 소프트웨어를 다루는 새로운 접근법 도메인 주도 설계(Domain-Driven Design, DDD)는 단순한 설계 기법이 아니라, 복잡한 비즈니스 요구사항을 명확히 모델링하고 지속적으로 진화시켜가는 방법론이다. 전통적인 시스템 설계는 기능 중심이었지만, DDD는 "비즈니스 개념을 코드에 반영한다"는 철학을 중심으로 한다. DDD는 에릭 에반스(Eric Evans)의 저서 『Domain-Driven Design』에서 처음 정립되었으며, 복잡한 도메인 로직을 개발자와 도메인 전문가가 공통 언어(Ubiquitous Language) 로 공유하며 점진적으로 모델링하는 방식이다. 즉, 비즈니스 언어를 모델로 승화시키는 과정이다. 이 철학은 단순히 객체지향을 더..

컴퓨터공학 2025.05.23