← 질문 목록
#388깊이 0
쓰기와 읽기 모델을 분리하는 기준은 무엇인가?
아키텍처 · 분산시스템
쓰기와 읽기의 트래픽 비율 차이가 극심하고 요구하는 데이터 형태가 다를 때 분리한다.
클라이언트→쓰기 모델
명령 (상태 변경)
쓰기 모델→데이터베이스
상태 저장
데이터베이스→읽기 모델
이벤트 동기화
클라이언트→읽기 모델
조회 (화면 최적화)
주문 시스템을 예로 들 수 있다. 주문 생성은 검증과 로직이 복잡하여 쓰기 모델이 무겁다. 반면 주문 목록 조회는 빠른 응답이 우선이다. 조회 전용 모델을 두면 복잡한 조인 없이 데이터를 바로 가져온다.
이 구조를 유지하려면 데이터 동기화 비용을 감수해야 한다. 쓰기 모델의 변경 사항을 읽기 모델에 반영하는 과정에서 시차가 생긴다. 사용자는 일시적으로 이전 데이터를 볼 수 있으므로 최종 일관성을 허용해야 한다.