시스템은 크게 상태 변경과 조회 기능을 제공한다.
주문 취소, 결제 기능 -> 상태 변경
주문서 조회, 사용자 조회 -> 조회
명령 쿼리 책임 분리 패턴(Command Query Responsibility Segregation, CQRS)는 상태를 변경하기 위한 명령을 위한 모델과 상태를 제공하는 조회를 위한 모델을 분리하는 패턴을 말한다.
예를 들어, Order라는 리소스를 Order(명령용), OrderData(조회용) 2개의 모델로 나누어서 관리할 수 있다.
이때 OrderData를 이용해서 표현 계층에 데이터를 출력하는데 사용하고, 애플리케이션에서는 Order를 활용해서 변경을 수행할 수 있다.
장점1. 소프트웨어의 유지보수성을 높일 수 있다.
장점2. 모델별로 성능이나 요구사항에 맞는 데이터베이스나 데이터 접근 기술을 사용할 수 있다. (예를 들어, 명령 모델은 트랜잭션이 지원되는 RDB를 사용하고, 조회 모델을 조회 성능이 높은 NoSQL을 사용할 수 있다)
단점1. 구현 코드가 많고, 더 많은 구현기술이 필요하다.
'cs(with 매일메일)' 카테고리의 다른 글
| [260101목] 데이터베이스 정규화에 대해서 설명해주세요. (0) | 2026.01.16 |
|---|---|
| [251231수] Graceful Shutdown의 필요성에 대해서 설명해주세요. (0) | 2026.01.15 |
| [251229월] CI/CD파이프라인에 대해서 설명해주세요. (0) | 2026.01.14 |
| [251226금] 코드 커버리지에 대해서 설명해주세요. (0) | 2026.01.14 |
| [251225목] 의존성 주입이랑 무엇인가요? (0) | 2026.01.14 |