CQRS

*Command Query Responsibility Segregation : *
명령과 쿼리의 역할을 구분한다는 의미

Command란? CURD(Create-Insert-Update, Delete)를 나타낸다.
Query란 ? Select(데이터 조회)의 책임을 분리한다는것이다.
버란트 마이어의 CQS가 CQRS의 출발이고, CQRS를 처음 소개 한 분은 Greg Young이다.

탄생
전통적인 CURD 아키텍처 기반에서 Application을 개발 및 운영 하다 보면 자연스럽게 Domain Model의 복잡도가 증가된다.
이때 유지보수에 대한 Cost는 증가되고, Domain Model은 점점 설계시 의도한 방향과는다르게 변질된다. Application Business 정책이나 제약은 거의 대 부분 데이터 변경작업에서 처리되고 Read는 단순 조회가 대부분이기 때문에, 이 두 업무를 동일한 도메인 모델로 처리하게 되면 도메인의 속성들의 복잡도가 증가하고, 설계와는 다르게 다른 방향으로 변질이 된다.

그래서 나온것이 '명령을 처리하는 책임!', '조회를 처리하는 책임!' 을 분리 구현하자! 라는 개념이 CQRS의 핵심이다.

참고 : 나만 모르고 있던 CQRS & EventSourcing
추가 자료 최신-기술-cqrs-처음-도입하기

'BackEnd > ETC' 카테고리의 다른 글

[gradle] CreateProcess error=206  (0) 2020.04.25
Git remote: Permission to  (0) 2020.03.08
http 상태 코드  (0) 2020.01.19
STORM 정리  (0) 2017.12.18

+ Recent posts