구현은 쉽지만 변경 직후 오래된 응답이 남을 수 있습니다.
invalidation
캐시 무효화는 “언제 stale을 끝낼지”의 선택이다
TTL은 시간이 해결하고, 이벤트 삭제는 쓰기 경로가 해결합니다. 수동 삭제는 자동 전략이 실패했을 때 좁은 범위로 복구하는 장치입니다.
쓰기 성공과 동시에 관련 key를 삭제해 정합성을 높입니다.
잘못 저장된 값이나 누락된 이벤트를 운영자가 좁게 지웁니다.
| 판단 | TTL | 이벤트 삭제 | 수동 삭제 |
|---|---|---|---|
| 좋은 대상 | 공지, 목록, 외부 API처럼 약간 늦어도 되는 읽기 | 프로필, 권한, 재고처럼 변경 즉시 반영할 데이터 | 배포 후 잘못 저장된 값, 장애 대응 runbook |
| 필수 조건 | 변경 주기보다 TTL이 짧아야 함 | 쓰기 경로에서 관련 key를 추적 가능해야 함 | 전체 reset 대신 namespace 범위가 있어야 함 |
| 주의점 | stale window가 업무 허용치를 넘지 않게 한다 | 이벤트 누락과 재시도 로그를 남긴다 | 과도한 삭제로 원본 부하를 키우지 않는다 |
핵심: “얼마나 늦어도 되는가”와 “쓰기 후 어떤 key를 아는가”가 무효화 전략을 가른다.