CQRS란?
하나의 모델로 쓰기·읽기를 다 처리하는 대신 두 모델을 분리하는 패턴이다.
언제 쓰나
- 쓰기 패턴과 읽기 패턴이 크게 다를 때 (예: 쓰기는 정합성, 읽기는 속도)
- 복잡한 도메인 (DDD와 자주 결합)
- Event Sourcing과 결합해 read model을 이벤트로 구축
주의
대부분의 앱엔 오버엔지니어링. 단일 모델로 해결되는 규모에선 복잡도만 증가한다. "나중에 필요해지면 적용"이 안전한 판단.
쓰기(Command)와 읽기(Query)를 서로 다른 모델·DB로 분리하는 패턴. 복잡 도메인·고성능 조회에 유리.
하나의 모델로 쓰기·읽기를 다 처리하는 대신 두 모델을 분리하는 패턴이다.
대부분의 앱엔 오버엔지니어링. 단일 모델로 해결되는 규모에선 복잡도만 증가한다. "나중에 필요해지면 적용"이 안전한 판단.