캐시 재작성으로 Fable 사용량의 30%를 날렸습니다. 피해야 할 실수들을 공유합니다.
Cache rewrites costed me 30% of my Fable consumption, here are the mistakes to avoid.
핵심 요약
Claude 세션에서 캐시가 무효화되어 발생하는 불필요한 비용을 줄이는 방법과 주의사항을 정리했습니다.
- 캐시 경제학 — 세션 중 캐시가 만료되거나 무효화되면 전체 대화 기록을 다시 작성해야 하므로 비용이 급증함.
- 캐시 무효화 원인 — 1시간 이상 유휴 상태 유지, 세션 도중 도구/MCP 서버 추가, 모델 변경 등이 캐시를 날려버림.
- 비용 절감 팁 — 세션 도중 모델이나 설정 변경을 자제하고, 유휴 세션은 핑을 보내 캐시 만료를 방지함.
- 세션 관리 전략 — 중요한 상태는 별도 파일로 저장하고, 컨텍스트가 너무 커지기 전에 세션을 정리하는 것이 효율적임.
claude code 기록을 싹 다 뒤져서 Fable 사용량을 어디서 낭비하고 있는지 찾아봤는데, 중간에 쉬엄쉬엄 하는 긴 세션들이 돈을 아주 그냥 살살 녹이고 있었음. 혹시 도움 될까 싶어서 내용 공유함.
캐시 경제학
세션에서 턴이 한 번 돌아갈 때마다 모델은 전체 대화 기록을 다시 읽음. 이걸 감당 가능하게 해주는 게 바로 프롬프트 캐싱임. 기록을 서버에 저장해두고, 다음 턴부터는 일반 입력 가격의 10%만 내고 읽어오는 방식이지. 캐시 유지 시간은 1시간인데, 이게 만료되거나 무효화되면 다음 턴에서 전체 기록을 다시 써야 해서 돈이 왕창 깨짐.
Fable 5 기준 가격 (다른 Claude 모델도 메커니즘은 똑같음):
- 입력 가격: 100만 토큰당 $10
- 캐시 읽기: 100만 토큰당 $1 (입력가의 10%)
- 캐시 쓰기: 5분 윈도우 기준 100만 토큰당 $12.50, 1시간 캐시 윈도우 기준 100만 토큰당 $20
400k 토큰 정도 되는 컨텍스트를 들고 있는 무거운 세션에서 이게 무슨 의미냐면:
- 평소처럼 턴을 돌리면 캐시를 읽어오니까 약 $0.40 정도 나감.
- 근데 1시간 넘게 쉬다가 다시 세션으로 돌아오면, 모델이 캐시를 다시 써야 함. 400k 컨텍스트가 쌓인 상태라면 API 비용으로 $8가 그냥 날아가는 거임.
캐시 한 번 만료되면 일반 턴 20번 돌릴 돈이 그냥 증발하는 셈.
캐시를 조용히 박살 내고 돈을 뜯어가는 주범들:
- 캐시 유지 시간(1시간) 넘게 세션 방치하기: 캐시 만료되면 쉬고 나서 첫 메시지 보낼 때 전체 내용을 다시 써야 함. 나처럼 세션 10개 넘게 띄워놓고 쉬는 사람은 모든 세션에서 돈이 줄줄 새는 거임.
- 세션 중간에 툴이나 MCP 서버 불러오기: 새로운 툴 스키마가 들어오면 대화 앞부분(prefix)이 바뀌어서 캐시가 통째로 무효화됨. 툴은 처음 시작할 때 다 불러오는 게 나음.
- 대화 중간에 모델 바꾸기: 같은 세션에서 Fable 쓰다가 Sonnet으로 바꿨다가 다시 Fable로 돌아오면, 캐시 다시 쓰느라 아낀 돈보다 더 큰 돈이 나감. 캐시는 모델별로 따로 저장되거든.
- 세션 중간에 노력 수준(effort level)이나 fast mode 바꾸기: 이게 내 제일 나쁜 습관이었음. 사용량 아끼려고 수시로 바꿨는데, 알고 보니 이게 주범이었음. 세션 안에서 high, xhigh, max, ultracode를 너무 자주 왔다 갔다 했거든.
- claude code 업데이트: 작업 중간에 claude 업데이트하면, 나중에 다시 이어갈 모든 세션의 캐시를 다시 써야 함.
그래서 지금은 200k 토큰 넘는 세션이 55분째 놀고 있으면 4시간 동안 핑을 날려서 캐시를 유지하게 만드는 스크립트를 짰음. 핑 한 번 날려서 캐시 읽는 게 다시 쓰는 것보다 훨씬 싸게 먹히니까.

