Token 비용 엔지니어링 · 11 / 13

아키텍처 계층: KV Cache 주의사항

상용화 제품의 비용 엔지니어링에서 KV Cache는 가장 과소평가된 기술 포인트 중 하나예요. 캐시 히트와 미스의 비용 차이는 최대 90%—하지만 안에 숨은 함정이 몇 개 있어요. 누가 말해주기 전엔 모를 수 있어요.

접두사 매칭공간으로 시간을 사다tools 함정챕터 캐시
KV Cache란: 접두사 매칭

LLM의 본질은 「Token이 Token을 민다」예요: 무슨 질문인지는 신경 쓰지 않고, 앞 문맥만 봐요. 곧—두 요청의 접두사가 같으면, 모델은 사실 같은 내용을 반복 계산하는 셈이에요. KV Cache는 계산한 중간 결과를 저장했다가, 다음에 같은 접두사를 만나면 바로 재사용해요: 값싼 저장으로 비싼 실시간 연산을 사는 「공간으로 시간을 사다」.

예를 들어 「2 + 4 = ?」를 물으면 6이 나와요. 「3 + 4 = ?」는 접두사가 바뀌어 처음부터예요. 하지만 「2 + 4 + 1 = ?」—접두사 「2 + 4」는 그대로라 6에서 시작해 7을 내요. 접두사가 안 바뀌면 캐시가 히트해요. DeepSeek, Qwen, Zhipu 모두 이 능력을 지원해요(3절 요금표 다시 보기: 캐시 요금은 표준 요금의 1/5). 저자가 LLM API를 고를 때 꼭 보는 항목이에요.

인터랙티브 데모 · 어떤 Token이 캐시에 히트했나

이전 요청이 이미 전체 접두사를 캐시해 두었어요. 아래 세 가지 「이번 요청」을 눌러 히트(초록)와 재계산(빨강)을 보세요.

이전 요청 (캐시됨)
이번 요청
함정 1 · tools 파라미터를 쓰면, 도구를 동적으로 바꾸지 마세요

Token을 아끼는 것 같지만, 큰 함정이에요

어떤 제품은 극한 절약을 위해 사용자 의도에 따라 도구를 동적 마운트해요: 날씨면 WeatherTool, 잡담이면 안 걸어요. 문제는 LLM 백엔드 템플릿 로직—Qwen 3을 예로, 요청에 tools 파라미터가 있으면 서버가 System Prompt 뒤에 도구 설명 블록을 삽입해요; System Prompt를 안 쓰면 템플릿이 하나 만든 뒤 또 끼워요. 도구 상태가 바뀌면(있음→없음, A→B), Prompt 머리 접두사가 바뀌고, 캐시된 수십만 Token이 순식간에 날아가요.

tools 파라미터 전환으로 200k 캐시가 전부 무효
tools 파라미터를 바꾸는 순간: 캐시된 200k Token이 전부 미스, 구간 전체 재계산. (도: 저자 공유 원본)

권장: System Prompt를 고정 + tools 필드를 쓰지 않기; 아니면 Token을 좀 낭비하더라도 전체 도구 정의를 계속 걸어 두고 캐시 히트를 지키세요. System Prompt 안정성이 그 Token을 아끼는 것보다 중요해요.

함정 2 · 슬라이딩 윈도우를 조심하고, 귀납 형태를 쓰세요

멀티턴·장문 시나리오에서 많은 제품이 「슬라이딩 윈도우」로 긴 히스토리를 처리해요—최근 N턴만 남기고 옛것은 버림. 게으른 방법이고, 문제가 나요. 슬라이딩 윈도우의 본질은 FIFO 큐: 한 번 굴릴 때마다 접두사가 바뀌고, 캐시는 영원히 히트하지 못해요.

저자의 제품 「반셰(伴写)」(앞글로 뒷글을 생성)는 초기에 고정 800자 롤링 윈도우라서 비싸고 「기억 상실」도 잦았어요. 나중에 챕터 캐시로 바꿨어요: AI 생성 중 화제 전환(장면 전환, 새 장)을 감지하면 구분 마커를 넣고, 시스템은 무엇을 요약으로 압축하고 무엇을 통째로 남길지 판단해요—AI에게 손실 압축을 맡기기보다, 접두사를 최대한 안정시켜 캐시를 히트하는 편이 나아요.

지표구 방안 (슬라이딩 윈도우)신 방안 (챕터 캐시)
KV Cache 히트율~10% (접두사가 계속 변함)~80% (접두사 안정성)
논리 일관성나쁨 (자주 기억 상실)좋음 (요약 + 전체 챕터)
Token 비용높음 (반복 계산)낮음 (캐시 재사용)
컨텍스트 관리의 네 가지 설계 결정
질문설계 결정
어떤 정보는 「영구 보존」해야 하나?Stable 구역에 넣고 캐시 접두사로
어떤 정보는 「압축 아카이브」해도 되나?요약으로 원문을 대체해 윈도우 크기 제어
어떤 정보는 「필요 시 로드」해야 하나?챕터 / 화제별 분할 후 동적 마운트
「압축 가능 경계」를 어떻게 찾을까?구분자 메커니즘을 설계해 AI가 화제 전환점을 표시
컨텍스트 윈도우를 쓰레기통으로 쓰지 말고, 단순 거친 슬라이딩 윈도우도 쓰지 마세요. 컨텍스트 관리는 본질적으로 정보의 계층 저장과 필요 시 스케줄링—품질·비용·속도 사이에서 균형을 찾는 올바른 자세예요.
핵심 요점

접두사가 안 바뀌면 캐시 히트, 최대 90% 절약. API를 고를 때 「컨텍스트 캐싱 지원 여부」는 필수 항목이에요.

tools를 동적으로 바꾸지 마세요: 도구 상태가 바뀌면 템플릿이 System Prompt를 다시 쓰고 캐시 전체가 무효가 돼요. 차라리 전체를 걸어 두세요.

슬라이딩 윈도우는 캐시 킬러: 「Stable 접두사 + 요약 아카이브 + 챕터 마운트」로 대체하면 히트율 10% → 80%.

출처: 저자 팀 내부 공유 《AI Token 비용 엔지니어링 전략 공유》 실전편 「03|아키텍처 계층」에서 정리했어요. DeepSeek 디스크 캐시 가격은 공식 공지를 보세요; 「Token이 Token을 민다」 원리는 LLM 기초 · 베이스 모델에서 복습하세요.