개발지식/Backend Engineering

CQRS란 무엇이고 어떻게 사용하는가?!

우루쾅 2024. 3. 1. 18:25
728x90
반응형
SMALL

CQRS 란!

Command and Query Responsibility Segregation 의 약자로, 데이터 저장소로부터의 읽기와 업데이트 작업을 분리하는 패턴을 말합니다. CQRS 패턴을 통해 만들어진 시스탬의 유연성을 바탕으로, 시간이 지나면서 지속적으로 시스템을 발전시켜 나갈 수 있고 여러 요청으로부터 들어온 복수의 업데이트 명령들에 대한 충돌도 방지할 수 있습니다.

(우리가 보통 이야기하는 CRUD(Create, Read, Update, Delete)에서CUD(Command)와 R(Query)을 구분하자는 이야기)

 

왜 구분하나요?

구분하는 이유는, Database로부터 데이터를 읽어오고 처리를 하게 되면 이미 그 사이에 데이터가 변경되어있을 가능성이 있습니다. CQRS는 이런 변경 가능성을 인정하고 어짜피 Read와 CUD 사이에는 Delay가 존재할 수 있음을 인정하는 것입니다. 이를 통해서 R과 CUD를 구분함으로써 얻는 이점을 설명하는 것이 CQRS 패턴입니다.

 

Event Sourcing CQRS Flow

① Admin 으로부터 Command 요청이 들어온다.

② 요청은 Application 을 통하여 Command Store 에 Command가 발생한다.

③ Command Store 에 이벤트가 처리된 후 Event Bus로 결과가 전달된다.

 

 

 

 

출처

 

HaeGyu Hwang - https://techblog.pet-friends.co.kr/msa%EB%A5%BC-%EA%B0%80%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%B2%AB%EA%B1%B8%EC%9D%8C-cqrs-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EB%8F%84%EC%9E%85%EA%B8%B0-510206768a22

bluayer:티스토리 - https://bluayer.com/37

임민석의 블로그 - https://mslim8803.tistory.com/73

728x90
반응형
LIST