lty's Blog

웹 캐시 무효화 본문

Backend

웹 캐시 무효화

LIMTAEYANG 2026. 2. 12. 00:22
1. 웹 캐시 무효화 (Web Cache Invalidation)

 

브라우저나 중간 캐시 서버에 저장된 오래된 데이터를 최신 상태로 갱신하도록 관리하는 방법

 

캐시를 사용하는 이유 

  • 브라우저/프록시 서버가 요청한 리소스를 캐시에 저장해서 다음 요청 시 빠르게 전달 (캐시로 브라우저 랜더링 최적화)

캐시 무효화가 필요한 이유 

  • 리소스가 업데이트 되어도 브라우저가 오래된 캐시를 사용하면 최신 데이터가 나오지 않을 수 있음(CSS 파일을 변경해도 브라우저에서 예전 CSS 사용으로 레이아웃이 깨질 수 있음)
2. 캐시 무효화 전략

 

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");

 

Cache-Control 헤더 사용 : HTTP/1.1 기준, 캐시 동작을 브라우저에 직접 지시

  • no-cache : 브라우저에 저장해도 되지만, 사용하기 전에 반드시 서버에 확인해야 한다.
    • 서버가 E-tag를 기준으로 새 데이터를 줄지 기존 데이터를 사용할지 판별 
      • ETag 같음 → 304 Not Modified
        → 브라우저는 기존 캐시 사용, 데이터 재전송 없음
      • ETag 다름 → 200 OK + 새 데이터 전송
        → 브라우저는 캐시 갱신
  • no-store : 캐시를 아예 사용하지 않음 (필요할 때마다 서버에서 항상 새 데이터를 전달받아야 한다. - 민감데이터 적용 시 필요)
  • must-revaildate : 만료된 캐시는 반드시 서버에서 확인 후 사용해야 한다. (캐시 만료 시에만 서버 검증하여 사용한다.)
    • 유효기간 (MAX-AGE) 설정과 같이 사용하며 만료기간이 0 이면 no-cache와 별 다를 게 없다.
Comments