해결된 질문
작성
·
842
0
안녕하세요 항상 강의 잘 듣고 있습니다!
제가 이해력이 부족하여 모든 질문을 보았음에도 이해가 가지않아 질문 합니다! ㅜ
현재 강의의 예시에는
--------
orderV3 컨트롤러 -> 읽기전용 @Transactional이 설정된 OrderQueryService -> OrderRepository
이렇게 호출이 되어 있는데요
--------
이 예시는 핵심 비즈니스 로직 없이 OrderQueryService 즉 화면이나 API에 맞춘 서비스만 있는 예시인건가요 ?
아니면 Repository 호출을 OrderService가 있다고 치고
OrderQueryService안에 OrderService(핵심비즈니스로직)이 있고 그안에 OrderRepository를 호출 했다고 치는건가요 ?
--------
(예를들면 이렇게 )
orderV3 컨트롤러 -> OrderQueryService -> OrderService(생략) -> OrderRepository
--------
결론은 OrderService와 OrderQueryService가 같이 어떻게 쓰여지는지 이해가 가질 않습니다..
답변 1
0
안녕하세요. 이진현님, 공식 서포터즈 y2gcoder입니다.
먼저 질문에 대한 답변을 드리자면
orderV3 컨트롤러 > OrderQueryService > OrderRepository
> OrderService(Command) >
위와 같이 나눌 수 있을 것 같습니다. 좀 더 나아간다면 Repository도 Command용 Query용으로 나눌 수 있을 것 같습니다.
해당 내용에 대해 간단하게 말씀드리자면 화면에 호출하기 위한 조회 로직과, 나머지 생성, 수정, 삭제, 일반적인 조회 로직들을 분리 하는 패턴으로 CQRS 패턴이라고 합니다. 이해에 도움이 되실 만한 링크도 첨부하겠습니다!
https://docs.microsoft.com/ko-kr/azure/architecture/patterns/cqrs
감사합니다.
답변 정말 감사합니다!!
정리하면 해당 강의 예시에 CQRS패턴을 적용 한다고 쳤을때
OrderQueryService, OrderService(Command) 각각 @Transactional을 설정하여
각각 영속성 컨텍스트가 생성 되는게 올바른 이해일까요 ??