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

1번째 줄: 1번째 줄:
==개요==
==개요==
;Command Query Responsibility Segregation; CQRS
;Command Query Responsibility Segregation (CQRS)
;커맨드 쿼리 책임 분리
;커맨드 쿼리 책임 분리
* 명령과 쿼리의 역할구분
* 명령과 쿼리의 역할구분
8번째 줄: 8번째 줄:
* 그에 따라 UI측 서비스 인터페이스도 분리됨
* 그에 따라 UI측 서비스 인터페이스도 분리됨


https://martinfowler.com/bliki/images/cqrs/cqrs.png


https://i-msdn.sec.s-msft.com/dynimg/IC702503.png
[[파일:Martinfowler-cqrs.png]]


https://i-msdn.sec.s-msft.com/dynimg/IC702504.png
[[파일:dynimg-IC702503.png]]
 
[[파일:dynimg-IC702504.png]]


==장단점==
==장단점==

2020년 8월 20일 (목) 23:50 판

1 개요

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 }}