Claude Code 토큰, 어디서 새는지 알아야 아낀다

2026. 4. 19. 18:04·IT

Claude Code를 본격적으로 쓰면 병목은 코딩 능력이 아니다. 토큰이다.

Max 플랜 $200/월을 내도, 세션 두세 번이면 리밋에 걸린다. PR 하나 리뷰하는데 프롬프트 서너 개 보내면 60%가 차있다. 뭐가 문제인지 모르겠다.

이유는 간단하다. Claude Code는 메시지를 보낼 때마다 전체 대화 히스토리를 처음부터 다시 처리한다. 이전 프롬프트, Claude의 응답, 도구 실행 결과 전부. 매번.

git diff를 한 번 실행하면 2,000 토큰이 컨텍스트에 들어간다. 그 이후 10턴 동안, 매 턴마다 그 2,000 토큰이 컨텍스트의 일부로 전송된다.

Anthropic의 프롬프트 캐싱이 있어서 비용은 캐시 히트 시 90% 절감된다. 하지만 컨텍스트 윈도우 공간은 그대로 차지한다. 캐싱은 돈을 아껴주지만, 200K 토큰 윈도우의 공간을 돌려주지는 않는다.

이걸 알면, 토큰을 아끼는 방법이 보인다.

먼저: 토큰이 어디서 소비되는지

토큰이 새는 곳은 크게 네 가지다.

1. 도구 실행 결과. Claude가 파일을 읽거나, 검색하거나, 명령어를 실행하면 그 결과 전체가 컨텍스트에 추가된다. 500줄짜리 파일을 cat하면 그대로 들어간다. grep으로 대규모 코드베이스를 검색하면 수천 토큰이 쌓인다.

2. 대화 히스토리. 모든 메시지가 컨텍스트에 남는다. Claude의 긴 설명, 내 프롬프트, 중간에 한 잡담까지. "고마워"라는 한 마디도 이후 모든 턴에서 토큰으로 재처리된다.

3. CLAUDE.md와 시스템 프롬프트. Claude Code의 시스템 프롬프트는 약 14,000 토큰이다. CLAUDE.md까지 합치면 시작부터 상당한 공간을 차지한다. 프롬프트 캐싱으로 비용은 절감되지만, 컨텍스트 윈도우의 공간은 그대로 점유한다. 이전 글에서 "200줄, 25KB 이하로 유지하라"고 한 이유가 이거다.

4. 장황한 응답. Claude는 기본적으로 친절하고 상세하다. "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..." 이 문장만으로 토큰이 낭비된다. 출력 토큰은 입력 토큰의 5배 비싸다. Sonnet 4.6 기준 입력 $3/출력 $15, Opus 4.6 기준 입력 $5/출력 $25.

도구 없이 할 수 있는 것들

서드파티 도구를 설치하기 전에, Claude Code 자체 기능으로 할 수 있는 최적화가 있다. 이게 더 중요하다.

모델 전환

모든 작업에 Opus를 쓸 필요 없다. 파일 읽기, 간단한 리팩토링, 문법 질문은 Sonnet이면 충분하다. Opus는 복잡한 아키텍처 결정이나 까다로운 디버깅에만 쓴다.

/model sonnet    # 일상 작업
/model opus      # 복잡한 작업에만

Anthropic 공식 문서에서도 "작업 복잡도에 따라 모델을 전환하라"고 권장한다.

/clear와 /compact

작업이 바뀌면 /clear로 세션을 리셋한다. 기능 A 작업 중에 쌓인 컨텍스트가 버그 B 작업에서 불필요한 토큰으로 재처리되는 걸 방지한다.

세션이 길어졌지만 맥락을 유지하고 싶으면 /compact를 쓴다. 전체 대화를 구조화된 요약으로 압축하고, 그 요약으로 새 세션처럼 이어간다.

CLAUDE.md에 컴팩트 지시사항을 넣으면 더 좋다.

## 컴팩트 지시사항
컴팩트 시 수정 파일 목록과 현재 작업 맥락을 보존한다.

/context로 모니터링

/context를 실행하면 현재 컨텍스트 윈도우에 뭐가 들어있는지 항목별 토큰 수와 함께 보여준다. 불필요하게 로드된 파일, 비대해진 대화 히스토리를 확인할 수 있다.

최적화할 수 없는 건 측정할 수 없다.

서브에이전트 활용

하나의 세션에서 모든 걸 하면 컨텍스트가 비대해진다. 독립적인 작업은 서브에이전트로 분리한다. 각 서브에이전트는 자체 컨텍스트 윈도우를 가진다.

Sonnet으로 서브에이전트를 돌리면 토큰도 절약되고, 메인 세션의 컨텍스트도 깨끗하게 유지된다.

.claudeignore

.gitignore처럼 Claude가 무시할 파일과 디렉토리를 지정한다. node_modules, dist, 빌드 산출물, 대용량 데이터 파일을 제외하면 Claude가 불필요한 파일을 스캔하는 일이 줄어든다.

도구를 쓴다면

위의 기본 최적화를 먼저 하고, 그래도 부족하면 서드파티 도구를 고려한다. LinkedIn이나 Reddit에서 떠도는 토큰 절약 도구가 많은데, 직접 검토해보니 실제로 쓸만한 건 몇 개 안 된다.

RTK (Rust Token Killer) — 터미널 출력 압축

GitHub stars 기준 가장 인기 있고, 실제 효과도 가장 명확한 도구다.

AI 코딩 에이전트가 명령어를 실행하면, 그 출력이 그대로 컨텍스트에 들어간다. cargo test의 장황한 출력, git status의 장식적 표시, npm install의 진행 바. 전부 토큰이다.

RTK는 이 CLI 출력을 에이전트에게 전달하기 전에 필터링한다. ANSI 코드 제거, 반복 패턴 중복 제거, 성공 메시지 축약, 에러와 경고만 보존.

공식 수치로 2,900개 이상의 실제 명령어에서 평균 89% 토큰 절감을 보고한다. git status 2,000 토큰이 200 토큰으로 줄어드는 식이다.

# 설치
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/master/install.sh | bash

# Claude Code에 연결
rtk init -g

설치하면 Claude Code의 PreToolUse 훅으로 동작한다. git status를 실행하면 자동으로 rtk git status로 변환되어, 필터링된 출력만 컨텍스트에 들어간다. Claude는 RTK의 존재를 모른다.

주의할 점. RTK는 셸 명령어를 가로채는 훅이다. 보안에 민감한 영역이다. 설치 시 생성되는 훅 파일을 반드시 확인해야 한다. ~/.claude/settings.json을 수정하는지, 어떤 명령어를 가로채는지 검토한다. 프로젝트가 빠르게 성장 중이지만 아직 초기 단계라는 점을 인지해야 한다.

가벼운 대안으로 rtk-lite-cc가 있다. RTK의 필터만 가져온 포크로, 데이터베이스 없음, 네트워크 호출 없음, 텔레메트리 없음. 바이너리 하나짜리. 걱정이 되면 이쪽이 낫다.

또 다른 대안으로 snip이 있다. RTK와 같은 개념인데 Go로 작성됐고, 필터를 YAML로 선언적으로 정의한다. 커스텀 필터를 코드 없이 추가할 수 있어서, 특수한 CLI 도구를 쓰는 프로젝트에서 유연하다.

  • RTK: https://github.com/rtk-ai/rtk
  • rtk-lite-cc: https://lib.rs/crates/rtk-lite-cc
  • snip: https://github.com/edouard-claude/snip

Caveman — 출력 토큰 압축

2026년 4월 GitHub 트렌딩 1위를 찍었다. The Primeagen이 유튜브에서 다뤘고, 스타가 빠르게 늘고 있다.

원리는 단순하다. Claude에게 "원시인처럼 말해"라고 지시한다. 관사, 필러, 인사말, 헷지를 전부 제거한 간결한 응답을 하게 한다.

일반 응답:

"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object."

Caveman 응답:

"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."

벤치마크에서 11개 실제 개발 작업 기준, 응답당 평균 1,214 토큰이 294 토큰으로 줄었다. 출력 토큰 약 75% 감소.

# Claude Code 설치
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman

솔직한 효과 분석. 출력 토큰이 75% 줄어드는 건 맞다. 하지만 일반적인 10만 토큰 세션에서 Claude의 산문 응답이 차지하는 비중은 약 6,000 토큰이다. 75%를 절약하면 약 4,000 토큰. 전체 세션의 약 4~5%다.

다만 출력 토큰이 입력 토큰의 5배 비싸다는 점을 고려하면, 비용 기준으로는 4% 이상의 효과가 있다. 무료고, 1분이면 설치된다. 손해 볼 건 없다.

그리고 2026년 3월 arXiv 논문에서 간결한 응답을 강제하면 특정 벤치마크에서 정확도가 오히려 26%p 향상된다는 결과가 있다. 토큰 절약 외의 부수 효과다.

6단계 강도 설정이 있다. lite, full(기본), ultra, 그리고 文言文(고전 한문) 모드 3단계. 보안 경고, 돌이킬 수 없는 작업 확인 같은 중요한 상황에서는 자동으로 일반 모드로 전환된다.

  • GitHub: https://github.com/JuliusBrussee/caveman

CLAUDE.md 최적화

이전 글에서 "CLAUDE.md는 200줄, 25KB 이하로 유지하라"고 했다. 이유를 토큰 관점에서 다시 보면, 5,000 토큰짜리 CLAUDE.md는 매 턴마다 5,000 토큰이 재처리된다. 20턴 세션이면 총 10만 토큰이 CLAUDE.md에만 쓰이는 셈이다.

Caveman의 /caveman:compress 기능으로 CLAUDE.md를 압축할 수 있다. 원본은 .original.md로 백업되고, 압축된 버전이 원래 경로에 저장된다. 헤딩, 코드 블록, URL, 파일 경로는 보존된다.

이것보다 먼저 할 건, 불필요한 내용을 지우는 것이다. Claude가 이미 코드에서 추론하는 규칙, ESLint가 잡는 스타일 규칙은 CLAUDE.md에서 제거한다. 이전 글에서 HumanLayer가 말한 "린터가 할 일을 LLM에게 시키지 말라"와 같은 맥락이다.

원문에서 언급된 나머지 도구들

LinkedIn에서 돌았던 원문에는 10개 도구가 나열되어 있었다. 위에서 다룬 RTK, Caveman 외에 나머지 8개를 간단히 검토한다.

Context Mode — Playwright, GitHub, 로그 등의 출력을 SQLite에 샌드박싱해서 요약만 컨텍스트에 넣는 Claude Code 플러그인. 개념은 좋지만 GitHub stars가 적고, 유지보수 상태를 확인해야 한다.

code-review-graph — Tree-sitter로 코드베이스를 지식 그래프로 매핑하는 MCP 서버. 큰 코드베이스에서 필요한 부분만 읽게 하는 접근. 흥미롭지만 설정이 복잡하다.

Token Savior — 심볼 단위로 코드를 탐색하는 MCP 서버. 파일 전체 대신 함수나 클래스 단위로 컨텍스트를 로드한다.

claude-token-efficient — CLAUDE.md에 간결한 응답을 지시하는 설정을 넣는 것. Caveman의 단순 버전이라고 보면 된다.

token-optimizer-mcp, claude-token-optimizer, token-optimizer — 캐싱, 압축, 고스트 토큰 탐지 등. 각각 접근 방식이 다르지만, 대부분 초기 단계이고 스타 수가 적다.

claude-context by Zilliz — BM25 + 벡터 하이브리드 검색으로 코드베이스를 검색하는 MCP. 코드베이스 전체를 컨텍스트에 넣는 대신, 관련 부분만 찾아서 넣는 것이 목적이다.

솔직히, 이 중 대부분은 RTK와 Caveman 조합이면 커버된다. RTK가 입력 토큰(CLI 출력)을, Caveman이 출력 토큰(Claude 응답)을 줄인다. 두 가지가 토큰 소비의 양쪽을 커버한다.

실제로 효과적인 조합

우선순위대로 정리한다.

 

1순위: 습관 (무료, 도구 불필요)

  • 작업 전환 시 /clear
  • 세션이 길어지면 /compact
  • 작업 복잡도에 따라 모델 전환 (/model sonnet ↔ /model opus)
  • /context로 주기적 모니터링
  • .claudeignore로 불필요한 파일 제외
  • CLAUDE.md 200줄 이하로 유지

2순위: Caveman (무료, 1분 설치)

  • 출력 토큰 65~75% 감소
  • 전체 세션 기준 4~5% 절약이지만, 출력 토큰 단가가 4배 비싸므로 비용 효과는 더 큼
  • 응답 속도도 빨라짐 (생성할 토큰이 적으니까)

3순위: RTK 또는 대안 (무료, 5분 설치)

  • CLI 출력 토큰 60~90% 감소
  • 터미널 명령어를 많이 실행하는 워크플로우에서 효과 큼
  • 보안 검토 필요

4순위: 서브에이전트 분리

  • 독립적인 작업을 별도 컨텍스트 윈도우로 분리
  • 메인 세션의 컨텍스트를 깨끗하게 유지

이전 글들에서 다뤘던 내용과 연결하면, Harness Engineering의 "센서" 개념이 여기도 적용된다. RTK는 입력 측의 센서(CLI 출력 필터)이고, Caveman은 출력 측의 가이드(응답 간결화)다. /context는 모니터링 센서다. 전부 하네스의 구성 요소다.

갑자기 토큰이 폭발했다면

2026년 3월, Anthropic의 프롬프트 캐싱에 버그가 있었다. 설정을 바꾸지 않았는데 토큰 소비가 10~20배 급증하는 현상이 보고됐다 (GitHub issue #40524). 사용자들이 Claude Code 바이너리를 리버스 엔지니어링해서 원인을 찾아야 했다.

캐시가 깨지는 상황이 있다. 세션 중간에 모델을 변경하거나, 메시지 사이에 긴 공백(캐시 TTL 초과)이 생기거나, 대화 구조가 재편되는 경우다. 이때 캐시 미스가 발생하면서 전체 대화가 캐시 생성 비용(1.25배)으로 재전송된다.

갑자기 토큰 사용량이 급증하면 버그 가능성도 염두에 둬야 한다. /cost로 현재 세션의 토큰 사용량을 확인하고, Pro/Max 구독자라면 claude.ai → Settings → Usage에서 잔여 쿼터와 리셋 시간을 확인할 수 있다.

정리

Claude Code 토큰 최적화의 핵심은 도구가 아니라 이해다.

메시지를 보낼 때마다 전체 히스토리가 재처리된다. 이걸 알면 모든 최적화가 자연스럽다. 대화를 짧게 유지하고, 불필요한 컨텍스트를 제거하고, CLI 출력을 압축하고, 응답을 간결하게 만든다.

도구 10개를 다 설치할 필요 없다. 습관을 먼저 바꾸고, 그래도 부족하면 Caveman + RTK를 추가한다.

가장 비싼 토큰은 필요 없는데 들어간 토큰이다.

 

참고:

  • Anthropic 공식 비용 관리 문서: https://code.claude.com/docs/en/costs
  • RTK: https://github.com/rtk-ai/rtk
  • Caveman: https://github.com/JuliusBrussee/caveman
  • RTK 보안 리뷰: https://radar.firstaimovers.com/rtk-claude-code-install-guide-2026
  • Caveman 효과 분석: https://www.mayhemcode.com/2026/04/caveman-claude-code-how-to-save-tokens.html

'IT' 카테고리의 다른 글

Claude Design이 나왔고, Figma 주가가 7% 빠졌다  (1) 2026.04.19
CLAUDE.md 제대로 쓰는 법 -AI 에이전트를 위한 온보딩 문서  (0) 2026.04.14
Playwright MCP - AI 에이전트에게 브라우저를 줬다  (0) 2026.04.14
Claude Mythos Preview System Card - Anthropic이 자사 최강 모델을 공개하지 않기로 한 이유  (3) 2026.04.14
Harness Engineering - 모델을 바꾸지 않고 코딩 에이전트 성능을 52%에서 66%로 올렸다  (0) 2026.04.14
'IT' 카테고리의 다른 글
  • Claude Design이 나왔고, Figma 주가가 7% 빠졌다
  • CLAUDE.md 제대로 쓰는 법 -AI 에이전트를 위한 온보딩 문서
  • Playwright MCP - AI 에이전트에게 브라우저를 줬다
  • Claude Mythos Preview System Card - Anthropic이 자사 최강 모델을 공개하지 않기로 한 이유
qkrdkwl9090
qkrdkwl9090
6년차 프론트엔드 개발자 Tony(박동현)입니다.
  • qkrdkwl9090
    Tony - Blog
    qkrdkwl9090
  • 전체
    오늘
    어제
    • 분류 전체보기 (59)
      • Frontend (24)
        • React (2)
        • Three.js (1)
        • Javascript (4)
        • R&D (7)
        • 번역글 (9)
      • IT (18)
      • 일상 (6)
        • 장소 (1)
        • 맛집 (3)
      • 경제 (11)
  • 링크

    • Github
    • Linkedin
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
qkrdkwl9090
Claude Code 토큰, 어디서 새는지 알아야 아낀다
상단으로

티스토리툴바