CACHE DESIGN MAP
캐시는 네 기준을 같이 정해야 안전하다
빠른 응답만 보고 저장하면 stale data가 남는다. key, TTL, 무효화, 장애 대응을 한 장에서 함께 고정한다.
읽기 속도
원본 조회를 건너뛰어 지연을 낮춘다.
원본 부하
DB와 외부 API 호출 수를 줄인다.
정합성 비용
변경 시점과 만료 정책을 관리한다.
장애 여파
캐시 장애 때 원본 보호선을 둔다.
저장 전에 결정
KEY
같은 요청은 같은 이름
user:42:profile처럼 범위와 버전을 드러낸다.
TTL
얼마나 오래 믿을지
데이터 변경 주기보다 짧게 잡는다.
빠른 응답
cache hit -> 즉시 반환
신선한 데이터
운영 중에 관리
DEL
변경 시 무효화
쓰기 성공 후 관련 key를 삭제하거나 갱신한다.
SAFE
미스와 장애 대응
원본 보호, 재시도 제한, stale 허용 범위를 둔다.
5초 판단 기준
자주 읽고 덜 바뀜
캐시 후보가 좋다. TTL 중심으로 시작한다.
자주 바뀌고 중요함
짧은 TTL 또는 이벤트 기반 무효화가 필요하다.
미스 비용이 큼
stampede 방지와 사전 갱신을 함께 둔다.
hit ratio
캐시가 실제로 쓰이는지 본다.
miss latency
원본 조회가 버틸 수 있는지 본다.
eviction
메모리 부족으로 밀려나는지 본다.
stale window
오래된 응답 허용 시간을 정한다.