🌳 고급 인프라
캐시 무효화(Cache Invalidation)란?
쉽게 이해하기
집에 식료품을 사다 두면 편하지만, 유통기한이 지나면 버리고 새로 사야 하잖아요. 캐시도 마찬가지예요. 빠르게 쓰려고 저장해둔 데이터가 오래되면 삭제하고 최신 데이터로 교체해야 해요. 그게 바로 캐시 무효화예요.
핵심 정리
캐시에 저장된 오래된 데이터를 지우고 새 데이터로 갱신하는 작업이에요.
자세히 알아보기
캐시는 자주 쓰는 데이터를 빠르게 가져오려고 임시 저장하는 공간이에요. 그런데 원본 데이터가 바뀌면 캐시에 있는 건 오래된 정보가 되죠. 이때 캐시를 지우거나 갱신하는 게 캐시 무효화예요. 안 하면 사용자가 잘못된 정보를 보게 될 수 있어요.
캐시 무효화 전략은 여러 가지가 있어요. TTL(Time To Live)은 일정 시간이 지나면 자동으로 캐시를 삭제하는 방식이에요. 예를 들어 날씨 정보는 1시간마다 갱신되니까 TTL을 1시간으로 설정하면 돼요. 수동 무효화는 데이터가 바뀔 때마다 직접 캐시를 지우는 방식이에요. 상품 가격이 바뀌면 즉시 캐시를 삭제해서 새 가격을 보여줘야 하니까 이 방식을 써요.
실무에서는 CDN 캐시 무효화가 자주 문제가 돼요. 웹사이트를 업데이트했는데 CDN이 옛날 파일을 계속 보여주면 사용자는 변경사항을 못 보거든요. 그래서 배포할 때 CDN 캐시를 수동으로 지우거나, 파일명에 버전을 붙여서(예: style.v2.css) 새 파일을 가져오게 만들어요.
캐시 무효화는 '컴퓨터 과학에서 가장 어려운 두 가지 중 하나'라는 농담이 있을 정도로 까다로워요. 너무 자주 지우면 캐시의 의미가 없어지고, 안 지우면 잘못된 데이터가 돌아다니니까 균형을 잘 맞춰야 해요.