데이터 집약적인 어플리케이션이 가지는 문제들이 있음
성능문제
여러 테이블이나 여러 데이터베이스간 걸쳐있는 복잡한 쿼리를 실행할 경우 시간도 오래 걸리게 됨
효율성과 비용
대용량 데이터 셋을 읽거나 종합 및 변환하는 복잡한 쿼리를 반복적으로 실행하면 쿼리 실행에 들어가는 리소스 낭비가 심함
이를 해결하기 위해 구체화된 뷰(Materialized View) pattern 사용
구체화된 뷰 패턴은 읽기 전용 테이블을 생성하여, 최적화하려는 쿼리의 결과값을 미리 채워넣음
구체화된 뷰 테이블이 필요로하는 추가 공간을 고려해야 함
-> 공간과 시간의 trade-off. 평범하지만 cloud 환경에서는 비용 문제를 생각해야함
구체화된 뷰를 어디에 저장하는가?
-> 원본 데이터가 있는 DB의 개별 테이블에 저장하는게 일반적
-> In-memory Cache 에 저장할 수도 있음(Redis 등)