← 질문 목록
#57깊이 0
읽기와 쓰기 모델을 나누면 무엇을 얻고 잃는가?
읽기를 화면 모양대로 미리 만들어 두는 것을 얻는다. 대신 갱신을 비동기로 하면 두 모델이 잠시 어긋난다.
| 기준 | 한 모델 | 읽기 분리 |
|---|---|---|
| 조회 | 매번 조인한다 | 미리 만든 것을 읽는다 |
| 일관성 | 즉시 | 잠깐 어긋난다 |
| 복잡도 | 낮다 | 동기화가 늘어난다 |
쓰기는 바꾸기 좋은 모양으로 받고 읽기는 화면이 필요한 모양으로 따로 둔다. 저장소까지 나눌지는 선택이다. 조회가 조인 없이 끝나므로 읽기가 많은 서비스에서 효과가 크다.
대가는 그 사이의 틈이다. 글을 쓰고 목록으로 돌아왔는데 아직 안 보이는 순간이 생긴다. 그 틈을 화면이 설명하거나 감춰야 한다.
읽기와 쓰기 비율이 비슷하거나 즉시 일관성이 필요하면 CQRS가 복잡도만 늘린다. 읽기와 쓰기 비율이 비슷하거나 즉시 일관성이 필요한 자리에서는 복잡도만 늘어난다.
추천 꼬리질문
관련 질문
- 이벤트 소싱을 도입할 때의 트레이드오프는 무엇인가?아키텍처 · 분산시스템이벤트를 재생하는 쓰기 모델과 조회용 읽기 모델의 분리 — 이벤트 소싱이 CQRS와 함께 가는 이유가 양쪽의 본문이다.
- 분산 시스템에서 CAP 중 무엇을 포기하게 되는가?아키텍처 · 분산시스템읽기/쓰기 모델 분리(CQRS)는 CAP 정리에서 일관성(Consistency)과 가용성(Availability) 사이의 트레이드오프를 선택하는 구체적인 전략 중 하나이다.
- 인덱스 생성 시 읽기 성능과 쓰기 성능의 트레이드오프는 무엇인가?데이터베이스읽기 성능 향상과 쓰기 성능 저하라는 트레이드오프 관계를 공유한다.
- 인덱스 생성 시 조회 성능과 쓰기 성능의 트레이드오프는 무엇인가?데이터베이스인덱스 생성을 통한 조회(읽기)와 쓰기 성능 사이의 상충 관계를 다룬다.
- 쓰기와 읽기 모델을 분리하는 기준은 무엇인가?아키텍처 · 분산시스템