stale-while-revalidate

stale-while-revalidate는 Cache-Control 헤더의 디렉티브로, 캐시 유지 기간이 끝난 오래된 콘텐츠를 어떻게 처리할지 지시합니다.

동작 원리

캐시 유지 기간이 끝난 오래된 데이터를 먼저 즉시 보여주고, 그 후 새 데이터를 백그라운드에서 받아와 캐시를 갱신합니다. 이를 통해 네트워크 통신으로 인한 지연을 숨기면서도 데이터를 적절한 시점에 갱신할 수 있습니다.

Cache-Control: max-age=60, stale-while-revalidate=30

리소스를 60초 동안 캐싱해 재사용하고, 이후 30초 동안은 캐시 유지 기간이 끝났더라도 오래된 데이터를 우선 사용하면서 동시에 백그라운드에서 새 데이터를 가져와 갱신합니다.

사용 예

뉴스 목록, 유저 프로필, 상품 리스트처럼 실시간성이 비교적 중요하지 않은 데이터에 적합합니다.

주의사항

주식 시세, 실시간 재고, 예약 현황처럼 데이터의 실시간성이 매우 중요한 기능에는 적합하지 않습니다. 사용자가 정확하지 않은 데이터를 보게 되는 것이 브랜드 이미지 악화, 신뢰도 하락, 의도하지 않은 행동 등 큰 문제로 이어질 수 있기 때문입니다.

핵심 정리

stale-while-revalidate는 오래된 캐시를 먼저 보여준 뒤 백그라운드에서 갱신해 지연을 숨기는 전략이며, Cache-Control이 캐시 유효 기간을 정한다면 이 디렉티브는 유효 기간이 끝난 이후의 처리 방식을 정합니다.

→ stale-while-revalidate에 대해 설명해주세요

CSLOG에서 보기