Claude Code 세션 가치와 토큰 효율성 극대화하기

프롬프트 캐시를 통한 토큰 비용 절감

Claude Code는 반복되는 입력 토큰의 비용을 줄이기 위해 프롬프트 캐시를 사용합니다. 요청이 이전 요청과 동일한 토큰으로 시작하면 서버는 상태를 캐시에서 로드하여 재계산하지 않고, 해당 토큰의 비용을 표준 입력 가격의 0.1배로 줄입니다. 그러나 캐시에 새로운 토큰을 쓰는 것은 일반 입력 가격의 최대 2배까지 비용이 발생합니다.

캐시 미스 방지

캐시는 요청의 시작부터 순차적으로 키가 생성되므로, 요청의 접두사가 변경되면 이후 전체 캐시가 무효화됩니다. 비용이 큰 전체 컨텍스트 재프리필을 방지하기 위해 대화 중 다음 작업을 피해야 합니다:

  • 모델 전환 (/model): 각 모델은 별도의 캐시를 유지합니다.
  • 노력 수준 변경 (/effort): 노력 수준은 캐시 키의 일부이며, 변경 시 캐시가 무효화됩니다.
  • 빠른 모드 토글: 빠른 모드를 켜면 캐시 키가 변경됩니다. 세션 시작 시에만 활성화해야 합니다.
  • /compact 사용: 이 명령은 대화를 더 짧은 요약으로 대체하므로, 이전 대화 기록이 캐시와 일치하지 않게 됩니다.
  • 시간 기반 만료: 구독 사용자의 경우 캐시는 1시간 후에 만료되며, API 키 사용자는 5분 후에 만료됩니다 (단, ENABLE_PROMPT_CACHING_1H=1이 설정된 경우 제외).

비용을 최소화하기 위해 사용자는 세션 시작 시 또는 /clear 명령 직후에 모델과 노력 수준을 변경해야 합니다. 불필요한 대화를 제거할 때는 /compact보다 /rewind가 더 비용 효율적입니다. 왜냐하면 /rewind는 대화의 끝부분만 잘라내기 때문에, 앞서 캐시된 기록은 그대로 유지되기 때문입니다.

전략적 컨텍스트 관리

세션에 읽은 파일이나 명령어 출력이 추가될 때마다, 이후 모든 턴에서 해당 내용이 컨텍스트에 유지되어 요청마다 토큰 부담이 증가합니다. 컨텍스트에 들어가는 내용을 관리하는 것은 성능 유지와 비용 절감에 매우 중요합니다.

입력 및 도구 결과 최적화

  • @-멘션 사용: 파일을 언급하면 (예: @utils.test.ts) 해당 파일이 첫 번째 요청에 첨부되며, 별도의 Read 도구 호출과 그에 따른 추가 턴이 필요 없게 됩니다.
  • 조용한 명령어 플래그: 명령어 출력은 대화에 추가됩니다. 컨텍스트가 과도하게 부풀어 오르는 것을 방지하기 위해, CLAUDE.md에 자주 사용하는 명령어에 조용한 플래그를 추가해야 합니다 (예: Vitest의 경우 --reporter=dot 사용).
  • 시작 컨텍스트 제한: 새 세션에서 /context를 사용하여 불필요하게 로드된 항목을 식별하세요. 워크플로우 전용 지침은 CLAUDE.md에서 제거하고, 필요할 때만 로드되는 스킬로 이동하고, 사용하지 않는 MCP 서버는 /mcp를 통해 비활성화하세요.

세션 길이 관리

긴 세션은 여러 개의 짧은 세션보다 지수적으로 비용이 더 높습니다. 각 턴마다 이전 전체 기록을 다시 처리하기 때문입니다. 작업을 전환할 때는 /clear를 사용하고, 작업의 초기 부분이 완료되면 /compact를 사용해야 합니다. 1M 컨텍스트 모델 사용자는 /autocompact 200k를 사용하여 자동 압축 안전장치를 다시 활성화할 수 있습니다 (Claude Code v2.1.221 이상에서 가능).

노이즈가 많은 작업에 서브에이전트 활용

서브에이전트는 별도의 컨텍스트 창에서 작업을 실행할 수 있는 방법을 제공합니다. 서브에이전트는 자체 시스템 프롬프트와 도구를 가지지만, 메인 세션의 대화 기록을 상속하지 않습니다. 최종 답변만 메인 세션으로 반환되며, 중간 턴과 도구 출력은 모두 버려집니다.

서브에이전트는 대규모 로그 파일을 파싱하는 등 중간 출력이 메인 세션의 컨텍스트를 과도하게 부풀리는 '노이즈가 많은' 작업에 이상적입니다. 사용자는 명시적으로 서브에이전트를 요청할 수 있습니다 (예: "이 로그를 서브에이전트에서 처리해줘") 또는 더 저렴한 모델(예: Haiku 또는 Sonnet)을 사용하는 특정 서브에이전트 정의를 설정하여 비용을 추가로 최적화할 수 있습니다.

커뮤니티 인사이트 및 대안 워크플로우

Hacker News 사용자들은 공식 가이드를 보완할 추가 전략을 제안했습니다:

  • /handoff 워크플로우: 일부 사용자는 /handoff 기능을 사용해 이동 가능한 컨텍스트 문서를 생성하는 것을 선호합니다. 이를 통해 /continue [file]로 새 세션을 시작할 수 있어 캐시와 컨텍스트를 리셋하면서도 핵심 프로젝트 메모리는 유지할 수 있습니다.
  • 검증 루프: 고효율 사용자들은 에이전트가 테스트를 작성하고, 커버된 코드를 삭제하여 테스트가 실패함(레드 상태)을 확인한 후, 코드를 복원하여 통과함(그린 상태)을 확인하는 방식으로 성공을 보고합니다. 이는 인간 검토 전에 테스트가 의미 있는지 보장합니다.
  • 수동 최적화에 대한 우려: 일부 커뮤니티 구성원은 /clear/compact와 같은 명령어로 캐시와 컨텍스트를 수동으로 관리해야 한다는 점이 형식 언어로의 후퇴라고 주장하며, AI가 이러한 최적화를 자동으로 처리해야 한다고 지적합니다.

"/handoff/compact/clear보다 훨씬 유용합니다. 컨텍스트가 특정 세션에 묶이지 않고 이동 가능한 형태로 저장되기 때문입니다... 저는 약 20개 메시지마다 이 방식을 사용하는 것이 긴 세션을 운영하는 것보다 더 좋은 결과를 얻었습니다."

"노력 수준을 변경하면 캐시가 무효화됩니다... 노력 수준은 단지 디코딩 전용으로 작동하게 할 수 있지 않을까요? 예를 들어 <end of thought> 토큰의 확률만 바꾸는 방식으로 말이죠."

고비용 영역 요약

우선순위 영역 최적화 조치
가장 높음 세션 길이 /clear/compact 자주 사용
높음 컨텍스트 부풀어오름 @-멘션 및 조용한 명령어 플래그 사용
중간 캐시 미스 세션 시작 시 /model/effort 설정
낮음 시작 로드 /context 확인 및 사용하지 않는 MCP 서버 비활성화

Sources

관련