091

CQRS & EDA 본문

Computer Science

CQRS & EDA

공구일 2026. 3. 28. 02:25

1. CQRS와 EDA

- CQRS(Command Query Responsibility Segregation)는 데이터 상태를 바꾸는 명령Command)과 데이터의 상태를 변화시키지 않는 읽기(Query)를 완전히 분리하는 아키텍처 패턴입니다. 로직분리, DB 분리, 이종 DB 사용 등의 다양한 방법으로 구현할 수 있습니다.

-> 이때 이중 DB를 사용할 때, 명령을 하고 난 뒤에 읽기 전용 조회DB에는 그 데이터를 언제 어떻게 업데이트 할지가 어렵기 때문입니다. 

 

- EDA(Event-Driven Architecture)는 시스템 컴포넌트들이 이벤트를 통해 느슨하게 결합되는 패턴으로, 생산자는 이벤트를 발행만 하고 소비자는 이벤트를 구독합니다. 이 때 특징은 생산자가 소비자를 전혀 모르기 때문에 기존 코드를 수정할 필요가 없습니다. 

-> EDA는 Event Producer, Message Broker, Event Consumer으로 구성되어있습니다.

 

Q. MSA와 EDA의 차이점?

A. MSA는 서비스를 쪼개서 UserService, OrderService 등의 서비스를 독립 배포하는 것입니다. 이 때 서비스 통신이 필요해지고, 네트워크 비용이나 복잡도가 증가합니다. 이 때 이 과정을 이벤트 처리해서 서비스 간 호출없이 비동기로 연결한게 EDA입니다.