"커맨드 쿼리 분리"의 두 판 사이의 차이

 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;Command-query separation (CQS), Command Query Responsibility Segregation (CQRS)
;command-query separation (CQS), command-query responsibility segregation (CQRS)
;커맨드 쿼리 분리, 커맨드 쿼리 책임 분리
;커맨드 쿼리 분리, 커맨드 쿼리 책임 분리
* 명령과 쿼리의 역할구분
* 명령과 쿼리의 역할구분
27번째 줄: 27번째 줄:


==같이 보기==
==같이 보기==
{{z컬럼3|
* [[쿼리]]
* [[MVC]]
* [[MVC]]
* [[커맨드]]
* [[커맨드 패턴]]
* [[참조 투명성]]
* [[참조 투명성]]
* [[플루언트 인터페이스]]
* [[플루언트 인터페이스]]
* [[프라이머리-세컨더리 복제]]
* [[프라이머리-세컨더리 복제]]
}}


==참고==
==참고==

2022년 7월 6일 (수) 13:36 기준 최신판

1 개요[ | ]

command-query separation (CQS), command-query responsibility segregation (CQRS)
커맨드 쿼리 분리, 커맨드 쿼리 책임 분리
  • 명령과 쿼리의 역할구분
  • 전통적 MVC에서는 하나의 모델이 DB 조회·갱신을 모두 담당했으나...
  • CQRS에서는 DB조회를 담당하는 쿼리 모델, DB갱신을 담당하는 커맨드 모델로 분리한다.
  • 상태조회 쿼리(query), 상태변경 명령(command) 모델로 분리하는 패턴
  • 그에 따라 UI측 서비스 인터페이스도 분리된다.

Martinfowler-cqrs.png

Dynimg-IC702503.png

Dynimg-IC702504.png

2 장단점[ | ]

장점 단점
  • 변경과 조회 로직이 분리되어 각각의 복잡도가 낮아진다.
  • 조회 성능이 향상된다.
  • 변경과 조회를 따로 구현하므로 코드가 더 많아진다.
  • 조회 트래픽이 크지 않다면 딱히 필요없다.

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}