TechAtlas

TECH NOTES

캐시 무효화

· 4분 읽기

캐시 무효화가 어려운 이유는 알고리즘이 아니라 소유권이다. 누가 "이제 낡았다"를 아는지부터 정해야 한다.

캐시 무효화가 어려운 이유는 자료구조가 아니다. "이제 낡았다"를 누가 아는지가 정해지지 않았기 때문이다.

무효화는 소유권 문제다

데이터를 바꾼 쪽이 캐시의 존재를 모르면 무효화는 영원히 늦는다. 반대로 캐시가 원본의 변경을 추측하려 들면 정확도는 추측만큼만 나온다.

그래서 설계의 첫 질문은 "어떻게 지울까"가 아니라 "누가 지울 책임을 지는가"다.

세 가지 선택지

  • TTL — 낡음을 허용할 시간을 숫자로 말할 수 있을 때
  • 쓰기 시 무효화 — 변경 지점이 한 곳으로 모일 때
  • 버전 키 — 원본이 바뀌면 키가 바뀌어 무효화 자체가 필요 없을 때

셋 중 무엇을 고르든 낡은 데이터를 얼마나 오래 보여줘도 되는지를 먼저 합의해야 한다. 그 합의가 없으면 어떤 방식도 사후에 틀린 선택이 된다.

자주 묻는 질문

TTL만으로 충분한 경우는?

낡은 데이터를 보여줘도 되는 시간이 명확할 때다. 그 시간을 말할 수 없다면 TTL은 무효화가 아니라 미루기다.

작성자

TechAtlas

AI와 기술을 발견하고, 이해하고, 기록합니다.