TIL - 3/25

헨도·2025년 3월 25일
1

TIL

목록 보기
19/21
post-thumbnail

3/25 16:00
2번째 프로젝트가 끝났다.
상품 주문 배송 프로젝트인데 허브 개념까지 포함해서 조금 고민이 많이 되는 프로젝트였다.

그것도 첫 MSA 프로젝트..ㅎㅎ

이번 프로젝트를 진행하면서 처음 접하거나 좀 신경썼던 부분을 적어보려한다.

애그리게이트 루트 중심 설계

  • MSA 구조로 DB 테이블 설계를 처음 해보았는데 이전 DDD 관련 짧은 특강에서 애그리게이트 중심으로 테이블을 설계하면 도메인과 도메인 간 강한 결합을 끊어내면 독립적으로 운영할 수 있다는 부분을 반영했다.
    즉, DDD 패턴을 도입하여 프로젝트의 핵심 도메인 모델을 명확히 정의하고, 각 서비스의 경계를 명확히 구분했다.

  • Order - OrderDetail 외 도메인은 productId 처럼 id 값만 저장한다.

  • 애그리게이트 루트는 도메인 모델의 일관성을 유지하고, 데이터 변경 시 비즈니스 규칙을 적용하는 역할을 한다.

  • 각 서비스의 핵심 엔티티를 애그리게이트 루트로 정의하고, 애그리게이트 내부의 객체들을 통해 데이터 접근 및 변경을 제어함으로써, 도메인 모델의 복잡성을 관리하고 일관성을 유지할 수 있었다.

애그리게이트 루트 중심 설계의 장점

1. 도메인 모델의 명확성

  • 애그리케이트 루트를 통해 도메일 모델의 핵심 엔티티와 비즈니스 로직을 명확히 정의할 수 있다.

2. 서비스 간의 독립성

  • 각 서비스는 애그리게이트 루트를 통해 독립적으로 개발 및 배포될 수 있다.

3. 데이터 일관성 유지

  • 애그리게이트 루트를 통해 데이터 변경 시 비즈니스 로직을 적용하여 데이터 일관성을 유지할 수 있다.

4. 유지보수 용이성

  • 도메인 모델의 변경이 필요한 경우, 해당 애그리게이트 루트에만 집중하여 수정할 수 있다.
profile
Junior Backend Developer

0개의 댓글