-
캐시 무효화는 빠른 값을 저장하는 문제가 아니라 낡은 값을 버리는 문제입니다AI Agent 2026. 8. 5. 09:00728x90반응형

캐시는 읽기를 빠르게 하지만, 정답이 바뀌는 순간부터 무효화 규칙이 본체가 됩니다. 느린 API 앞에 캐시를 붙이면 응답이 빨라집니다.
DB 부하도 줄고, 화면도 빨리 뜹니다.
여기까지는 쉽습니다.
진짜 문제는 원본 값이 바뀐 뒤에 시작합니다.
캐시는 빠른 값이 아니라 “언제까지 믿어도 되는 값”입니다.TTL은 정답이 아니라 타협입니다
TTL을 5분으로 두면 최대 5분 동안 낡은 값을 보여줄 수 있습니다.
5초로 줄이면 부하는 다시 늘어납니다.
그래서 TTL은 기술값이 아니라 제품 판단입니다.
가격, 권한, 결제 상태처럼 틀리면 위험한 값은 짧게 두거나 명시적으로 지워야 합니다.
추천 목록이나 인기 글 순위처럼 조금 늦어도 되는 값은 길게 둘 수 있습니다.무효화 경로가 없으면 캐시는 복사본이 됩니다
원본이 바뀔 때 관련 캐시를 지우는 경로가 있어야 합니다.
사용자 프로필이 바뀌면 프로필 캐시만 지울지, 사용자 요약 카드까지 지울지 정해야 합니다.
이 관계를 코드 안에 흩뿌리면 나중에 찾기 어렵습니다.
캐시 키 규칙과 무효화 규칙을 같이 두는 편이 유지보수에 낫습니다.낡아도 되는 시간을 문장으로 씁니다
캐시 설계에서 제가 먼저 쓰는 문장은 이겁니다.
“이 값은 최대 몇 초까지 낡아도 되는가.” 이 문장을 못 쓰면 캐시를 붙이기 이릅니다.
빠르게 만드는 일보다, 틀린 값을 얼마나 오래 보여줄지 정하는 일이 먼저입니다.마지막으로 확인할 것은 하나입니다.
이 개념을 외웠는지가 아니라, 실패했을 때 어떤 상태가 남는지 설명할 수 있는지입니다.728x90반응형'AI Agent' 카테고리의 다른 글
스키마 버전은 데이터 모양이 바뀌는 시간을 기록하는 방법입니다 (0) 2026.08.05 트랜잭션 경계는 같이 성공하거나 같이 실패해야 하는 범위입니다 (0) 2026.08.05 프롬프트는 규칙이 아니고, exit 1이 규칙이었다 (0) 2026.08.05 백프레셔는 빠른 생산자에게 천천히 보내라고 말하는 구조입니다 (0) 2026.08.04 레이스 컨디션은 코드 순서가 아니라 실행 순서가 바뀌는 버그입니다 (0) 2026.08.04