CS/Design Pattern

CQRS 패턴

이수밈 2024. 11. 19. 21:26

 

이번 프로젝트에서 CQRS 패턴을 적용하여 서버단 코드를 구현하고 있다.

 

낯선 개념이지만 이해하니까 어렵게 다가오지 않았다.

 




1. CQRS란?

 

: Command and Query Responsibility Segregation 의 약어로 Command와 Query의 책임을 분리하는 디자인 패턴이다. 

  • Command는 CRUD 중 Create, Update, Delete와 같은 쓰기
  • Query는 CRUD 중 Read와 같은 데이터 조회 기능

 

2.  Query Service Layer

  • 데이터값 조회만을 위해 사용하는 서비스단
  • 더티체킹이 필요없기 때문에 readOnly transaction을 사용한다
  • 플러시를 하지 않기 때문에 더티 체킹과 같은 작업을 수행하지 않아도 되어 성능이 비교적 향상된다.

 

 

3.  Command Service Layer 

  • 응답 값이 존재하지 않는 요청들을 관리하는 서비스단
  • @Transactional 어노테이션에 추가 옵션을 붙이지 않은 채로 사용가능

 


 

 

CQRS 패턴을 적용하며 개발하니 코드 리뷰 후 리팩토링이 훨씬 편해질 것 같다.

 

추후에 코드가 어느정도 짜이면 예시 코드도 넣어보겠슴다 :-)