169
4
장
데이터 관리 패턴
모두 저하시킬 수 있습니다. 모든 쓰기 작업에 대해서 모든 색인이 변경되어야 하며, 데이터베
이스가 여러 번의 쓰기를 수행해야 하기 때문입니다. 읽기의 경우 데이터 스토어가 모든 색인
을 읽어서 메모리에 가지고 있을 수 없습니다. 따라서 질의를 처리할 때 여러 번의 읽기 작업이
수반되며, 데이터를 가져오는 데 더 많은 시간이 소요됩니다.
읽기 모델을 간단하게 만드는 데는 데이터 비정규화
denormalization
가 좋습니다. 데이터 비정규화
는 조인 연산을 제거해서 읽기 성능을 비약적으로 향상시킵니다. 특히 쓰기 작업에는 정규화된
데이터 스토어를 써서 높은 일관성을 유지하면서 읽기 작업은 비정규화된 데이터 스토어를 통
해 효율적으로 처리할 수 있다는 점에서 데이터 비정규화는
CQRS
패턴과 함께 사용하면 좋습
니다.
이런 간단한 기법들 외에도 데이터를 처리하는 곳 가까이에 저장하거나, 또는 처리 코드를 데
이터와 가까운 곳에서 실행하거나, 전송하는 데이터 양을 줄이거나 향후 사용할 데이터를 미리
전처리
preprocess
하는 등 성능을 향상시키는 방법은 얼마든지 있습니다. 이 절에서는 이런 성능
향상 패턴에 대해서 자세히 알아봅니다.
4.7.14.7.1
구체화된 뷰 패턴 구체화된 뷰 패턴
구체화된 뷰 패턴
materialized
view
pattern
은 데이터를 처리하는 곳 가까운 곳에 미리 구체화된 뷰로
저장해 둠으로써 질의에 대한 데이터 조회를 효과적으로 처리하는 방법입니다. 이 패턴에서는
서비스와 관련된