인프런 커뮤니티 질문&답변

백린이님의 프로필 이미지
백린이

작성한 질문수

Microservice 내부 아키텍처 와 EventStorming 설계

마이크로서비스 설계에서의 도메인 주도 설계 의의

애그리거트의 크기

작성

·

444

0

애그리거트를 어느정도의 크기로 만들어야 하는지에 대해 궁금증이 생겨서 질문들입니다.

 

애그리거트내에 여러 엔티티와 여러 값 객체로 이루어질 수 있으나, 애그리거트는 작은 단위로 만드는게 좋아서,하나의 애그리거트에 여러 엔티티보다 하나의 엔티티로 만드는 것을 추천하시나요? 애그리거트의 크기를 정할 때 강사님의 기준이 있다면 공유해주실 수 있나요?

 

답변 2

0

han jeong heon님의 프로필 이미지
han jeong heon
지식공유자

네 음 도메인 및 요건에 따라 다른데 이런 것을 고려해야 된다고 생각합니다

  1. 일관성 경계: 애그리거트는 일관성 경계를 가지며, 해당 경계 내에서 일관성이 유지되어야 합니다. 따라서 도메인의 일부 엔티티나 값 객체가 서로 강하게 연관되어야 할 때 큰 애그리거트를 고려할 수 있습니다.

  2. 트랜잭션 범위: 애그리거트는 트랜잭션의 단위로 사용될 수 있으며, 트랜잭션 범위 내에서 작동해야 합니다. 따라서 특정 상황에 따라 작은 애그리거트를 선택하여 관리가 용이한 경우가 있습니다.

  3. 응집도: 관련된 데이터와 동작은 한 애그리거트 내에 모으는 것이 유용합니다. 따라서 애그리거트의 응집도를 고려하여 엔티티와 값 객체를 그룹화할 수 있습니다.

ㅎ 이런적으로 좀 말씀드렸고 전 위의 기준을 가지고 진행하다보면 대부분 엔티티가 1개 이고 커야 두 개를 넘지 않더라고요 😅

0

안녕하세요, 인프런 AI 인턴이에요.

애그리거트의 크기는 매우 중요한 결정 사항입니다. 애그리거트는 관련된 엔티티와 값 객체를 묶어서 일관성 있는 단위로 다루는 개념이기 때문에, 크기를 적절하게 설정하는 것이 중요합니다.

일반적으로 애그리거트의 크기를 정할 때는 도메인의 경계와 의미론적 상관관계를 고려해야 합니다. 애그리거트는 도메인 모델의 핵심 개념이기 때문에, 도메인의 비즈니스 로직과 일치하는 추상화 단위로 만들어야 합니다. 또한, 애그리거트 내의 엔티티와 값 객체가 논리적으로 상호 의존하는 경우에 함께 묶어야 합니다.

애그리거트의 크기에 대해 구체적인 기준은 없지만, 두 가지 주요 원칙을 참고하면 도움이 될 수 있습니다. 첫째, 애그리거트는 도메인의 트랜잭션 경계를 나타내기 때문에, 하나의 트랜잭션 범위 내에서 일관성을 유지하기 위해 관련된 객체들을 함께 포함해야 합니다. 둘째, 애그리거트는 한 번에 로드되어야 할 데이터의 최소 단위이며, 조회나 수정 등의 핵심 기능이 함께 일어나는 단위로 구성되어야 합니다.

애그리거트의 크기를 정하는 것은 경험과 도메인 지식을 필요로 하는 작업이기 때문에, 상황에 따라 다를 수 있습니다. 따라서, 해당 도메인의 전문가나 경험이 있는 개발자와 의논하여 최적의 크기를 결정하는 것이 바람직합니다.

더 자세한 내용이 필요하다면, 도메인 주도 설계에 관련된 책이나 강의를 참고하시는 것도 좋은 방법일 것 같아요.

피드백이나 추가로 궁금한 사항이 있으면 언제든지 물어보세요!

han jeong heon님의 프로필 이미지
han jeong heon
지식공유자

오 👌🏾 ai 최고

백린이님의 프로필 이미지
백린이

작성한 질문수

질문하기