530
2
부
구현
보자. 이 요청에서는 데이터베이스 수준에서 비용이 많이 드는 조인 쿼리가 포함될 수 있다. 이
쿼리의 결과를 캐싱할 수 있으므로 캐싱된 데이터가 무효할 때만 결과를 다시 생성하면 된다.
13.4.213.4.2
확장성을 위해 확장성을 위해
읽기를 캐시로 전환할 수 있다면 시스템 일부분에서 발생하는 경합을 피해 더 나은 확장성을
확보할 수 있다. 이 장에서 이미 다룬 데이터베이스 읽기 복제본을 사용하는 것이 그 예다. 읽
기 트래픽은 읽기 복제본에 의해 제공되므로 주 데이터베이스 노드의 부하가 줄어들어 읽기를
효과적으로 확장할 수 있다. 복제본에서 지난 데이터 읽기를 수행할 수 있다. 읽기 복제본은 결
국 주 노드에서 복제본 노드로의 복제를 통해 업데이트되며, 이러한 형태의 캐시 무효화는 데
이터베이스 기술에 의해 자동으로 처리된다.
더 넓게 보면, 확장성을 위한 캐싱은 원본이 경합 지점이 되는 모든 상황에서 유용하다. 클라이
언트와 원본 사이에 캐시를 배치하면 원본의 부하를 줄여 확장성을 높일 수 있다.
13.4.313.4.3
견고성을 위해 견고성을 위해
로컬 캐시에 전체 데이터 집합이 들어 있다면 원본이 가용하지 않을 경우에도 작동할 수 있으
므로 시스템의 견고성이 향상될 수 있다. 견고성을 위해 캐싱을 사용할 때 주의할 사항이 몇 가
지 있다. 가장 중요한 것은 오래된 데이터를 자동으로 제거하지 않도록 캐시 무효화 메커니즘
을 구성하고 업데이트할 수 있을 때까지 데이터를 캐시에 보관해야 한다는 것이다. 그렇지 않
으면 데이터가 ...