inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Microservice 설계(with EventStorming,DDD)

애그리거트 도출

애그리거트 질문있습니다!

21

이북자

작성한 질문수 24

0

강의 잘듣고 있습니다!

도출된 애그리거트와 의문이 생겨 질문드립니다.

제가 알고 있는 Aggregate는 "여러 객체를 하나의 일관된 단위로 묶은 클러스터" 이고, Aggregate Root가 존재하며 외부에서는 Root를 통해서만 접근해야 한다고 이해하고 있습니다.

 

근데 노란 포스트잇으로 도출된 애그리거트 들은 객체를 하나의 일관된 단위로 묶은 클러스터의 개념은 아닌거 같아서요

세번째 강의의 코드만 대략 보고왔는데 이벤트 스토밍으로 도출된 애그리거트와는 조금 다른거 같아 질문드립니다ㅜ_ㅜ

아키텍처 msa ddd

답변 2

0

han jeong heon

안녕하세요 강의자입니다. 정리하면 다음과 같습니다. (AI를 통해 정리했습니다.^ ^)


핵심부터

👉둘은 같은 Aggregate인데, 목적이 다르다


1⃣ DDD에서 Aggregate (설계 관점)

  • 객체들을 하나로 묶은 일관성 단위

  • 규칙을 지키는 경계

  • 반드시 Root를 통해서만 접근

👉 질문 기준
“어디까지를 한 덩어리로 묶어야 안전한가?”


2⃣ 이벤트 스토밍에서 Aggregate (흐름 관점)

  • Command를 받아서

  • 검증하고

  • Event를 만드는 책임 주체

👉 질문 기준
“이 이벤트를 누가 발생시키는가?”


3⃣ 차이를 한 번에 보면

이벤트 스토밍

  • 주문하기 → Order → 주문됨
    👉 Order = 명령 처리 주체

DDD 설계

  • Order 안에 OrderLine 있음

  • 총액 계산, 취소 조건 있음
    👉 Order = 데이터 + 규칙 묶음


5⃣ 핵심 정리

👉 이벤트 스토밍의 Aggregate는
“이 일을 누가 책임지냐”

👉 DDD의 Aggregate는
“그 책임을 어떻게 구조로 묶냐”


6⃣ 전체적으로 정리하면

👉이벤트 스토밍은 Aggregate 후보를 찾는 단계,
DDD는 그걸 정확히 설계하는 단계라고 생각하시면 됩니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이북자님, 질문 주셔서 감사합니다.

애그리거트(Aggregate)는 도메인 주도 설계(DDD)에서 매우 중요한 개념으로, 여러 객체를 일관된 단위로 묶어 하나의 경계로 삼는 것을 의미합니다. 애그리거트는 일관성을 유지해야 하며, 외부에서 접근할 때 항상 애그리거트의 루트(Root)를 통해서만 접근해야 한다는 규칙이 있습니다. 이를 통해 시스템 내에서 일관성을 확립하고 데이터 무결성을 보호할 수 있습니다.

질문해주신 내용에서, 노란 포스트잇으로 표시된 애그리거트가 코드에서 본 것과 다르게 느껴지셨던 이유는, 이벤트 스토밍 과정과 실제 코드 구현 간의 간극 때문일 수 있습니다.

이벤트 스토밍에서는 도메인 이벤트를 중심으로 도메인의 실체를 시각적으로 표현하게 됩니다. 이 과정에서 애그리거트를 식별하고, 도메인의 자연스러운 흐름을 파악할 수 있습니다. 그러나 실제 코드로 구현하게 되면, 기술적 고려사항과 최적화를 거치면서 이벤트 스토밍에서의 결과와 다르게 보일 수 있습니다.

추가 참고 자료:

애그리거트 구성의 본질은 도메인 로직의 일관성을 유지하면서도 유연하게 대응할 수 있는 구조를 만드는 것입니다. 강의 내용을 반영하면서 실제 비즈니스 로직에 따른 적절한 구현 방법을 찾는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

도메인 질문있습니다

0

45

2

MSA 질문이 있습니다

0

60

1

현재에도 강의와 동일한 방식을 사용하고 계실지 궁금합니다.

0

63

2

다른 BC 또는 마이크로서비스 담당 정보를 어떻게 이용하나요?

0

130

3

VO 관련 궁금한점

0

404

1

VO에 대해서 질문있습니다.

0

400

1

도메인, 바운디드 컨텍스트 관련해서 궁금합니다.

0

786

1

앱에서 DDD를 적용하는 것이 맞는걸까요?

1

744

1

도메인 영역에 대한 질문

0

311

1

클린 아키텍처와 헥사고날 아키텍처 질문

0

485

2

전략적 설계와 전술적 설계

0

313

1

DDD 현실적 적용

1

652

3

애그리거트의 크기

0

582

2

엔티티와 값객체와의 차이

0

559

1

확장성 관점에서 Value Object, Entity, Aggregate

0

401

1

도메인 서비스와 응용서비스의 구분

0

1508

1

Aggreagte 에 두개 이상의 Entity로 구성할 수 있나요?

0

630

1

VO, Entity 궁금한 부분이 있습니다.

1

433

1

안녕하세요. PPT 자료 공유 부탁 드려요.

0

507

1

usecase 작성 단계가 궁금합니다.

0

598

1

대여 도메인 장 관련 문의드립니다.

1

428

1

애그리거트 추출 질문드립니다.

0

589

1

도메인 이벤트 추출관련해서 여쭤보고 싶습니다!

0

463

1

컨트롤러 관련해서 질문이 있습니다!!

0

398

1