CourseProgress(user-course 매핑 엔티티)를 같은 방식으로 분리 시도.CourseComplexReader 안에 있는 searchMyCourse()와 신규 기능 로직이 거의 동일.CourseComplexReader)에 합치기는 애매하다.Course와 CourseTag처럼 연관은 있지만, 도메인별로 엔티티와 서비스는 나눠야 한다는 게 기본 전제.CourseComplexReader는 사실상 도메인 서비스라기보다는 QueryService에 가까움.Manager: 순수 도메인 CRUD 관리
QueryService(공통 조회/DTO 전용 서비스)
로 나누는 게 더 맞아 보임.
Comment | Reader/Writer를 CQRS로 보면? (#124)
CourseComplexReader를 QueryService 성격으로 인정하고, 신규 기능도 여기에 구현해서 중복을 줄인다성현님도 동일하게 CQRS를 생각하고 말씀 드렸겠지만 저는 CQRS 관점에서 아래처럼 생각하고 있긴 합니다.
Writer = CommandService (CUD) (=Manager)
Reader = QueryService (R)
ComplexReader = QureyDSL… DTO 전용 QueryService 어쩌구… Reader에 너무 많은 코드가 길어지는 것을 방지하기 위함으로 유추
혹시 제가 질문 자체를 잘못 이해했다면
어떤 부분이 좀 잘못된 설계라 생각되셨는지 코드나
아니면 변경되면 이렇게 된다라는 예시 코드 있을까요?
질문 자체를 잘못 이해했을 수도 있으니 문제 있다면 말씀주세요