QUESTION #0265
프론트엔드

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

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

분야: 프론트엔드


stale-while-revalidateCache-Control 헤더의 디렉티브입니다. 이는 캐싱 유지 기간이 끝난 오래된 컨텐츠를 어떻게 처리할 것인지에 대한 지시를 표현합니다.

stale-while-revalidate의 핵심 아이디어는 오래된 캐싱 데이터를 먼저 보여주고, 그 후 새로운 데이터를 백그라운드에서 받아와 갱신하는 것입니다. 이를 통해 네트워크 통신으로 인한 지연을 숨기면서도 데이터를 적절한 시점에 갱신할 수 있도록 합니다.

예를 들면 다음과 같이 사용할 수 있습니다.

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

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

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

stale-while-revalidate이 적합하지 않은 상황에 대해 설명해주세요. 🤔

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

📚 추가 학습 자료를 공유합니다.