과제 관련 질문

과제를 진행하면서 배웠던 점 / 아쉬웠던 점

배웠던 점

아쉬운 점

CQRS로 패키지를 구성한 이유

보통 조회 API는 단일 에그리거트에서 데이터를 가져오는 것보다 여러 에그리거트를 조합해서 가져오게 됨

조회 특성상 조회 속도가 빠를수록 좋은데 도메인 간 응집도를 높히기 위해서 간접 참조를 사용한 상태 → JPA에서 지원하는 즉시 로딩을 사용할 수 없음

이는 SELECT 쿼리로 조회 화면에 필요한 데이터를 읽어올 수 없어서 성능에 큰 문제가 발생할 수 있음

따라서 커맨드와 쿼리를 분리해서 간접 참조를 사용한건 그대로 유지해서 어그리거트간의 응집도를 높히고 조회용 모델을 따로 정의하는 방법을 선택함

사실 이런 고민이 발생하는 이유는 시스템 상태를 변경할 때와 조회할 때 범위가 다름에도 불구하고 단일 도메인 모델을 사용하려고 하기 때문!

(이벤트 소싱 - CQRS 연관성 공부한 내용 참고)