CQRS 패턴

toutbon·2022년 11월 17일
0

CQRS 패턴이란 ?

CQRS 는 Command and Query Responsibility Segregation의 약어로 명령과 조회의 책임 분리를 위한 패턴이다.

간단히 조회(Read) 모델과 변경(Create, Update, Delete) 모델을 분리하는 패턴이다.

문제

조회와 변경을 분리하지 않으면 어떤 문제가 있을까?
하나의 어플리케이션이 하나의 DB만 참조하는 간단한 구조라면 조회와 변경을 한 모델로 써도 무리 없을 것 이다.

하지만, 요즘 웹은 그렇지 않다.
다수의 시스템에서 다양한 정보를 표시해줘야 하는 경우가 늘어나고 있다. 이를 도메인 속성으로 추가하다 보면 변경 입장에서는 불필요한 속성으로 인해 복잡도가 증가하게 된다.

예를 들어, 쇼핑몰의 마이페이지를 수정한다고 가정해보자.

소셜 로그인 정보를 다른 시스템에서 읽어오고 있다면 현재 화면에 표시되는 정보는 (내 시스템에서 가져온 정보 + 타 시스템에서 가져온 정보) 가 될 것이다. 이 경우에 DTO의 모양이 달라져 객체 매핑이 복잡해진다.

또, 마이페이지 수정을 위한 서비스 로직이 점점 복잡해지는데 하나의 모델을 쓴다면 조회 시 불필요한 로직을 타야할 수 있다.

CQRS 패턴으로 이러한 복잡성을 낮출수 있다.
전통적인 구조(조회와 변경을 하나의 모델로 처리하는)에서 CQRS 패턴을 구현하기 위해 다양한 방법이 있다.

DDD

그 중 하나로 DDD 가 있다.
DDD는 Domain Driven Design의 약어이다.

참고 자료

profile
뚜봉

0개의 댓글