본문 바로가기
IT/Knowledge

CQRS 패턴

by 성준하이 2022. 6. 29.
반응형
CQRS란?
  • Command Query Responsibility Segregation 의 약자로 단어 그대로 해석하면 명령 조회 책임 분리 라는 뜻
  • 애플리케이션들을 구성하는 아키텍처에 대한 하나의 패턴
  • 애플리케이션을 구현함에 있어 명령과 조회에 대한 책임을 분리하는 것

 

등장배경

일반적인 애플리케이션은 데이터를 연결된 데이터베이스에 레코드로써 CRUD 작업을 한다.

그리고 애플리케이션이 데이터를 레코드로 저장하는 과정에서 데이터는 특정한 모델로써 다뤄진다.

예를들어 계좌 잔액 이라는 데이터는 애플리케이션 내에서 id, date, account 등과 같은 속성을 지니는 클래스 모델로써 다뤄지고 결국 데이터베이스는 거래내역을 나타내는 레코드로써 저장되어 CRUD가 될수 있다.

 

그러나 이런 모델들은 애플리케이션이 변화하면서 점점 그 형태가 변하기 쉽상이다.

예를들어 여러 은행에 관한 계좌를 지원하기 위해 위에서 설명한 클래스에 변수나 속성이 추가될수 있다. 그리고 이런 모델은 그대로 레코드로써 데이터베이스에 저장된다. 시간이 흐름에 따라 초기에 정해진 모델이 점점 다양한 요구사항에 의해서 거대해지거나 변질될수가 있다.

 

그런데 만약 그렇게 변질된 모델을 이용해서 데이터를 표현하기 위해서는 기존 표현되던 데이터는 변질된 모델을 재가공하거나 새로운 데이터를 표현하기 위해 모델이 다양하게 변경될수 있다.

결국 모델이 변화함에 따라 실질적으로 데이터를 저장, 갱신, 삭제에 필요한 모델과 조회하여 사용하는 모델간에는 차이가 발생하게 된다.

그래서 개발자들은 하나의 데이터에 CUD 하는 부분과 Read 하는 부분을 분리해서 관리하게 된다. 이게 CQRS의 등장 배경이다.

 

구현방법

CQRS 패턴은 다양한 방법론과 기술로써 구현할 수 있다.

아래 그림을 보면 기존 아키텍쳐에서 점점 CQRS 패턴으로 변하는 모습을 이해할수 있을 것이다.

반응형

'IT > Knowledge' 카테고리의 다른 글

SAGA 패턴  (45) 2022.07.05
클라우드 vs 코로케이션 차이  (58) 2022.07.04
BPMN 설명 및 Bizagi 툴  (52) 2022.06.27
네트워크 OSI 7 계층(Layer)  (52) 2022.05.19
log4j 란?  (37) 2022.05.14

댓글