Claude 토큰 계산 방식 및 코딩 세션 비용 분석
Claude 토큰은 약 3.5개의 문자로 구성되며 코드 작성 시 더 많은 비용이 발생합니다. Claude Code 사용 시 대화가 매번 재전송되어 입력 토큰이 급증하는 이유와 5분 유휴 시간 이후 발생하는 비용 구조를 상세히 설명합니다.
Claude의 토큰이란 무엇인가?
토큰은 Claude가 읽고 쓰는 텍스트의 단위이며, 단어의 파편으로 대략 3.5개의 영어 문자에 해당합니다. 이 수치는 Anthropic의 자체 용어집에서 나온 것이며, 공백과 문장 부호를 포함하면 단어당 1개 이상의 토큰이 생성되므로 1,000단어 분량의 산문은 1,300토큰을 가볍게 상회합니다. 코드는 줄당 더 많은 토큰을 소모합니다. 중괄호, 연산자, 밑줄, 들여쓰기는 영어보다 문자당 더 많은 토큰으로 분할되므로, 수백 줄의 소스 파일은 일반적으로 수천 토큰에 달합니다. 에이전트가 2,000줄짜리 파일을 읽기로 결정하면, 새로운 코드를 한 줄도 작성하기 전에 이미 5자리 수의 토큰을 구매하게 됩니다.
토큰화 방식과 관련하여 사람들이 흔히 혼동하는 두 가지가 있습니다. 첫째, 토큰화는 모델마다 다릅니다. 2026년 7월 기준으로 Opus 4.7 이상, Sonnet 5, Fable 5는 이전 Claude 모델보다 동일한 텍스트에 대해 약 30% 더 많은 토큰을 생성하는 새로운 토큰화 방식을 사용합니다(정확한 증가량은 콘텐츠에 따라 다름). 이로 인해 토큰당 가격이 오르지 않았더라도 토큰 단위로 예산을 책정할 때 고려해야 할 사항이 달라집니다. 둘째, 모든 블로그 게시물에서 언급하는 라이브러리인 tiktoken는 OpenAI의 토크나이저이며, 일반적인 텍스트에서는 Claude보다 약 15~20%, 코드에서는 그 이상으로 토큰 수를 적게 계산합니다. 유일하게 신뢰할 수 있는 수치는 아래에서 다룰 count_tokens 엔드포인트를 통해 확인하는 것입니다.
코딩 세션 비용이 발생하는 이유
Claude의 모든 청구액은 API 인보이스든 구독 한도든 상관없이 토큰 입력과 토큰 출력이라는 단 하나의 측정 기준에 따라 결정됩니다. 가격 책정 페이지에는 백만 입력 토큰당 얼마, 백만 출력 토큰당 얼마와 같이 단순하게 표시되어 있습니다. 하지만 에이전트 기반 코딩 세션에서는 대화 전체가 매 턴마다 다시 전송되기 때문에, 직관보다 훨씬 많은 입력 토큰이 소모된다는 사실은 명시되어 있지 않습니다. 저는 15년 동안 종량제 인프라를 판매해 왔지만, 대부분의 고객이 무엇 때문에 비용이 발생하는지 정확히 파악하지 못하는 측정 기준은 토큰이 처음이었습니다. 이 글은 측정 기준을 읽는 법에 대한 강의입니다. 에이전트 세션에서 무엇이 입력과 출력으로 간주되는지, 왜 재전송 루프가 비용을 크게 높이는지, 왜 프롬프트 캐싱이 계산 방식을 바꾸는지, 그리고 실제로 비용을 절감할 수 있는 요소가 무엇인지 설명합니다.
모든 것은 입력입니다: 미터기가 실제로 측정하는 것
사용자들은 Claude가 작성하는 코드에 대해 비용을 지불한다고 생각합니다. 에이전트 세션에서 이는 작은 항목에 불과합니다. 입력 토큰은 단가는 더 저렴하지만 훨씬 더 많은 양을 차지하며, 여기에는 다음이 포함됩니다.
- 시스템 프롬프트. Claude Code 자체의 하네스 지침과 사용자의
CLAUDE.md및 메모리 파일이 세션 시작 시 로드되며 이후 모든 요청에 포함됩니다. - 도구 정의. 에이전트가 호출할 수 있는 모든 도구 스키마입니다. 연결하는 모든 MCP 서버는 이러한 고정 오버헤드를 증가시킵니다. 다만 Claude Code는 현재 기본적으로 전체 MCP 도구 정의를 지연 로드하므로, 도구가 처음 사용되기 전까지는 도구 이름만 컨텍스트에 유지되어 비용이 완화되지만 완전히 제거되지는 않습니다.
- 에이전트가 읽는 모든 파일. 소스 파일의
Read는 파일 전체를 컨텍스트에 포함하며, 해당 내용은 계속 유지됩니다. - 모든 도구 결과. 테스트 실행, grep 출력, 터미널 메시지, 빌드 로그 등 모든 결과가 입력 토큰으로 돌아옵니다. 8,000줄을 출력하는 실패한 테스트 스위트는 작은 책 한 권 분량의 비용을 청구하게 됩니다.
- 지금까지의 전체 대화 내용, 매 턴마다 재전송. 이 항목은 별도의 섹션에서 다룰 가치가 있습니다.
재전송 비용의 구조
Claude API는 상태를 저장하지 않습니다(stateless). 요청 사이에 세션을 기억하지 않으며, 그 어떤 것도 기억하지 않습니다. 따라서 2번째 턴에서 클라이언트는 1번째 턴의 내용과 그에 대한 응답, 그리고 새로운 메시지를 함께 보냅니다. 50번째 턴이 되면 1번째부터 49번째 턴까지의 모든 내용, 읽어 들인 모든 파일, 모든 도구 실행 결과, 모든 diff, 그리고 50번째 메시지를 다시 보냅니다. 모델은 매번 전체 대화 기록을 다시 읽으며, 이렇게 다시 읽는 모든 토큰은 입력 비용으로 청구됩니다.
그 결과, 턴당 비용은 세션 길이에 따라 대략 선형적으로 증가하며, 전체 세션 비용은 대략 이차 함수적으로 증가합니다. 3번째 턴에서 0.5센트였던 메시지가 60번째 턴에서는 동일한 한 줄짜리 질문임에도 불구하고 20배 이상의 비용이 발생할 수 있습니다. 60개 턴의 데이터를 모두 짊어지고 가기 때문입니다. 이것이 "왜 청구 금액이 이렇게 높은가"라는 문의의 대부분을 설명하는 단 하나의 사실입니다. 이는 Claude만의 특성이 아니며, 상태를 유지하는 것처럼 보이는 모든 LLM 제품은 내부적으로 재전송 루프를 사용하는 상태 비저장(stateless) API입니다.
출력: 표시되는 내용과 보이지 않는 사고 과정
출력 토큰은 비용이 많이 발생하며, 현재 라인업 기준으로 입력 대비 5배의 요금이 부과됩니다(2026년 7월 기준 Opus 4.8은 $5/$25, Sonnet 5는 $3/$15, Haiku 4.5는 $1/$5). 출력에는 Claude가 생성하는 텍스트와 코드뿐만 아니라 사고 토큰(thinking tokens), 즉 모델이 답변하기 전에 수행하는 내부 추론 과정이 포함됩니다. 여기서 두 가지 사실이 중요합니다. 사고 과정은 출력 요금으로 청구되며 max_tokens 제한에 포함됩니다. API 응답이 stop_reason: "max_tokens" 오류로 종료되거나 답변이 잘리는 현상은 종종 답변이 생성되기 전에 사고 과정에서 예산을 모두 소진했음을 의미합니다. 또한 현재 모델에서 추론 요약은 표시되지 않을 수 있습니다. Opus 4.8, Sonnet 5, Fable 5는 기본적으로 이를 생략하지만, 사고 과정은 여전히 발생하며 요금도 청구됩니다. 보이지 않는다고 해서 무료인 것은 아닙니다.
Claude Code는 다단계 작업의 성능을 측정 가능한 수준으로 향상시키기 때문에 기본적으로 확장된 사고(extended thinking)를 활성화하며, 기본 예산은 요청당 수만 토큰에 달할 수 있습니다. 단순한 작업의 경우 이를 낮출 수 있습니다. /effort를 사용하거나 /model에서 노력 수준을 낮추거나, /config에서 사고 설정을 조정하십시오. 이는 미신이 아닌 실질적인 비용 조절 수단입니다.
프롬프트 캐싱이 비용 구조를 재정의하다
프롬프트 캐싱은 재전송 루프가 막대한 비용을 발생시키지 않도록 방지하는 핵심 기술입니다. API는 프롬프트의 안정적인 접두사, 시스템 프롬프트, 도구 정의, 대화 기록을 캐싱할 수 있으며, 다음 요청 시 이를 훨씬 저렴한 비용으로 제공합니다. 2026년 7월 기준 배율은 다음과 같습니다. 캐시 쓰기(write) 비용은 기본 입력 요금의 1.25배(1시간 유지 옵션은 2배)이며, 캐시 읽기(read) 비용은 0.1배입니다. 쓰기에는 할증이 붙지만, 읽기에는 90% 할인이 적용됩니다. 단 한 번의 읽기만으로도 5분 유지 쓰기 할증 비용을 상쇄하고도 남습니다.
Claude Code는 사용자를 대신하여 캐싱을 관리하며, 정상적인 세션에서는 거대한 재전송 데이터 대부분이 캐시에서 처리됩니다. 그러나 기본 캐시 유지 시간은 마지막 사용 시점부터 5분입니다. 커피를 마시러 잠시 자리를 비웠다가 돌아와 메시지를 보내면 캐시가 만료되어, 전체 누적 접두사가 0.1배의 읽기 비용이 아닌 1.25배의 쓰기 비용으로 다시 처리됩니다. 150K 토큰 세션의 경우, 이 한 번의 콜드 턴(cold turn) 비용이 웜 턴(warm turn) 12번보다 더 많이 발생합니다. 이는 직관에 반하는 결과이지만 반드시 숙지해야 합니다. 유휴 상태 후 재개하는 방식은 연속 작업보다 비용이 더 많이 들 수 있습니다. TTL이 지난 후 발생하는 모든 유휴 간격은 다음 턴을 저렴한 읽기에서 비싼 재쓰기(re-write)로 전환하기 때문입니다. 작업은 집중해서 수행하십시오. 거대한 세션을 10분마다 메시지 하나씩 보내는 식으로 처리하지 마십시오.
VPS에서 직접 운영하는 애플리케이션을 통해 API를 호출하는 경우, 이러한 혜택을 자동으로 누릴 수 없습니다. 흔히 발생하는 실수는 시스템 프롬프트에 타임스탬프나 요청 ID를 삽입하는 것입니다. 이 경우 요청마다 접두사 바이트가 변경되어 캐싱이 보이지 않게 비활성화됩니다. 동일해 보이는 호출임에도 usage.cache_read_input_tokens 수치가 0에 머물러 있다면 이것이 바로 캐싱이 작동하지 않는다는 신호입니다.
공식 및 계산 예시
"세션당 비용은 $X"라는 단편적인 말은 무시하십시오. 세션 비용은 100배까지 차이가 날 수 있습니다. 유효한 것은 다음 공식입니다.
turn cost = (uncached input x base input price)
+ (cache writes x 1.25 x base input price)
+ (cache reads x 0.10 x base input price)
+ (output incl. thinking x output price)
session cost = sum over all turns2026년 7월 기준 입력 토큰 100만 개당 $5, 출력 토큰 100만 개당 $25인 Claude Opus 4.8을 예로 들어 계산해 보겠습니다. 누적 컨텍스트 80,000 토큰을 포함하는 중간 세션 턴의 경우, 캐시에서 읽은 토큰 75,000개, 새로 작성된 캐시 3,000개, 캐시되지 않은 신규 입력 2,000개, 사고 과정을 포함한 출력 1,500 토큰으로 구성됩니다.
- 캐시 읽기: 75,000 × $0.50/M = $0.0375
- 캐시 쓰기: 3,000 × $6.25/M = $0.019
- 캐시되지 않은 입력: 2,000 × $5/M = $0.010
- 출력: 1,500 × $25/M = $0.0375
해당 턴 비용은 약 $0.10이며, 이와 같은 턴을 50번 수행하면 약 $5가 됩니다. 이제 캐시가 만료된 후 동일한 턴을 수행하면, 전체 80,000 토큰을 $6.25/M로 다시 작성해야 하므로 출력 비용을 제외하고도 $0.50가 발생합니다. 이는 동일한 작업을 수행함에도 캐시가 적용된 턴보다 약 5배 비싼 비용입니다. 이 차이가 바로 캐싱의 핵심입니다. 위 네 줄의 계산 방식만이 벤더를 비교하는 유일한 정직한 방법입니다. 표면적인 요금은 캐시 읽기나 사고 과정 비용을 완전히 무시하기 때문이며, 실제 세 가지 작업에 적용해 보면 Claude의 청구 금액이 OpenAI보다 높은지 낮은지 명확히 알 수 있습니다.
단일 턴이 아닌 청구 단위 자체에 대한 감을 잡고 싶다면, 100만 토큰이 페이지, 파일, 달러로 환산될 때의 의미를 통해 한 단계 더 높은 수준에서 동일한 산술을 적용해 볼 수 있습니다. 예측이 아닌 보정을 위해 참고하자면, 2026년 7월 기준 Anthropic이 발표한 기업용 Claude Code 배포 비용은 개발자 1인당 활성 일수 기준 평균 약 $13, 월 $150–250 수준이며, 사용자의 90%는 일일 $30 미만을 지출합니다. 실제 비용은 모델 선택, 세션 관리, 코드베이스 크기에 따라 달라지며, 이것이 바로 아래에 설명할 제어 요소들이 중요한 이유입니다.
사용량 확인하기
Claude Code에서 사용하는 명령어는 /usage입니다(/cost도 별칭으로 여전히 작동합니다). 상단의 세션 블록에는 현재 세션의 토큰 통계와 로컬에서 계산된 예상 비용이 표시됩니다. 구독 플랜을 이용 중이라면 같은 화면에서 플랜 제한 막대와 함께 스킬, 하위 에이전트, 플러그인, 개별 MCP 서버별 사용량 내역을 확인할 수 있습니다. API 계정의 공식적인 청구 정보는 Claude Console의 사용량 페이지가 기준이며, CLI에 표시되는 수치는 추정치입니다. /context는 컨텍스트 윈도우를 차지하는 요소들, 시스템 프롬프트, 도구, MCP 정의, 파일, 기록을 색상 격자로 시각화합니다. 이는 비대해진 CLAUDE.md이나 불필요하게 많은 통신을 하는 MCP 서버를 찾아내는 가장 빠른 방법입니다. all 플래그를 전달하면 항목별 상세 내역을 모두 확장해서 볼 수 있습니다.
API를 사용하면 모든 응답에서 정확히 어떤 일이 일어났는지 확인할 수 있습니다.
response = client.messages.create(model="claude-sonnet-5", max_tokens=2048,
messages=messages)
u = response.usage
total_prompt = u.input_tokens + u.cache_creation_input_tokens + u.cache_read_input_tokens
print(f"uncached={u.input_tokens} written={u.cache_creation_input_tokens} "
f"read={u.cache_read_input_tokens} output={u.output_tokens}")input_tokens은 캐시되지 않은 나머지 부분일 뿐이며, 실제 프롬프트 크기는 세 가지 입력 필드를 모두 합친 값이라는 점에 유의하십시오. 1시간 동안 실행된 에이전트가 input_tokens: 4000를 표시한다고 해서 비용이 저렴한 것은 아닙니다. 나머지 200,000 토큰은 캐시에서 제공되었기 때문입니다. 요청을 보내기 전에 비용을 추정하려면 토큰 계산 엔드포인트를 사용하십시오. 이 엔드포인트는 무료로 호출할 수 있고 별도의 속도 제한이 적용되며, 지정한 모델의 토크나이저를 사용하여 계산합니다(결과는 근사치로 간주하십시오. 실제 청구 금액은 실제 요청 내용을 기준으로 산정됩니다).
count = client.messages.count_tokens(model="claude-sonnet-5",
messages=[{"role": "user", "content": big_file}])
print(count.input_tokens)위와 같은 이유로 tiktoken을 사용하지 마십시오.
구독 플랜과 종량제 비교
이 가이드의 작동 방식은 어디서나 동일하며, 결제 방식만 다릅니다. API 키를 사용하는 경우 Anthropic은 게시된 요율에 따라 토큰 단위로 종량제 요금을 청구하며, 위에 언급된 모든 숫자는 실제 금액입니다. 무료 티어는 없으며 가입 시 제공되는 소액의 크레딧과 요금이 부과되지 않는 일부 엔드포인트만 존재하므로, 계량은 대부분의 사용자가 예상하는 것보다 더 빨리 시작됩니다. 이것이 바로 카드를 등록하기 전 신규 API 계정이 실제로 받는 혜택입니다. Claude 구독(Pro, Max, Team, Enterprise)을 사용하는 경우, Claude Code 사용량은 플랜에 포함된 허용량에서 차감됩니다. 2026년 7월 기준으로 이는 5시간 단위의 롤링 세션 윈도우와 주간 윈도우로 구성되며, 모델 간 및 claude.ai 채팅과 공유됩니다. 이때 표시되는 /usage 달러 금액은 청구서가 아닌 정보 제공용입니다. 윈도우를 모두 소진하면 "You've hit your session limit" 또는 "You've hit your weekly limit" 메시지와 함께 초기화 시간이 표시됩니다. 윈도우는 모델 간에 공유되므로 /model를 사용하여 모델을 전환해도 접근 권한은 복구되지 않습니다. 이러한 윈도우는 특정 클라이언트가 아닌 계정을 따라가므로, Linux에서 기본적으로 실행되는 항목과 각 플랜이 지원하는 범위를 파악 중이라면 이 점을 알아두는 것이 좋습니다. 실제로 어떤 윈도우를 소진했는지에 따라 대기 시간과 그동안 수행할 작업이 결정되므로, 작업 도중 제한에 도달했을 때의 옵션을 알아두는 것이 유리합니다. 플랜에 따라 /usage-credits으로 관리되는 사용량 크레딧을 활성화하여 제한을 초과한 사용량을 구매할 수도 있습니다. 플랜별 할당량은 이 주제에서 가장 변동이 심한 수치이므로 의도적으로 기재하지 않았습니다. 대신 claude.com/pricing과 본인의 /usage 막대 그래프를 확인하십시오. 구독 중이라도 토큰 메커니즘은 여전히 중요합니다. 비효율적인 세션은 달러를 소모하는 것과 똑같은 방식으로 윈도우를 소모합니다. 구독 관련 내용은 사용량에 적합한 Claude 플랜을 참조하십시오.
실제로 효과가 있는 제어 수단
- 에이전트가 읽는 범위를 제한하십시오. "
auth.py의 유효성 검사 버그를 수정하라"는 파일 하나만 읽지만, "이 코드베이스를 개선하라"는 40개를 읽습니다.CLAUDE.md을 간결하게 유지하십시오. 모든 세션에 로드되므로 필수적인 내용만 담고, 워크플로우별 지침은 필요할 때 로드되는 스킬로 옮기십시오. - 명확하고 간결하게 유지하십시오. 관련 없는 작업 사이에는
/clear을 수행하십시오. 오래된 컨텍스트는 이후 모든 메시지에서 다시 전송되며 비용이 청구됩니다. 하나의 긴 작업 내에서는/compact Focus on the failing tests and the diff을 통해 기록을 요약하여 이차 곡선 형태의 비용 증가를 방지하십시오. - 모델의 크기를 적절히 선택하십시오. Sonnet은 대부분의 코딩 작업을 처리하며, 2026년 7월 기준 도입 가격으로 백만 토큰당 $2/$10입니다(정가는 $3/$15이며, Opus는 $5/$25입니다). Haiku는 백만 토큰당 $1/$5로 로그 분류와 같은 기계적인 하위 에이전트 작업에 적합한 도구입니다. Fable 5는 양측 모두 Opus의 두 배인 $10/$50이므로, 일상적인 작업에 선택해 두기 전에 어떤 작업이 해당 비용을 정당화하는지 파악하는 것이 좋습니다. 세션 도중에
/model를 전환할 수 있습니다. - 장황한 출력을 미리 필터링하십시오. Claude가 결과를 보기 전에 테스트 실행 결과를 grep으로 실패 항목만 추려내면, 20,000 토큰의 도구 결과가 300 토큰으로 줄어듭니다. 이는 해당 턴이 재전송될 때마다 비용 절감 효과를 냅니다.
- 대화형이 아닌 작업은 일괄 처리하십시오. 자체 API 파이프라인, 분류, 대량 검토, 야간 작업의 경우 Batches API를 사용하면 비동기식 전달을 조건으로 동일한 모델을 50% 할인된 가격에 이용할 수 있습니다.
- 캐시 유지 시간을 고려하십시오. 연속적인 기간 동안 작업하십시오. VPS의 tmux에서 실행되는 Claude Code 세션은 유휴 상태일 때 비용이 발생하지 않으며, 턴이 실행될 때만 토큰이 소모됩니다. 하지만 유휴 시간이 길어지면 캐시가 만료되어 다음 턴에서 다시 작성하는 비용을 지불해야 합니다.
FAQ
Claude Code 코딩 세션에서는 토큰을 얼마나 사용합니까?
고정된 수치는 없습니다. 파일과 기록이 누적되면 세션 중간의 한 번의 턴에서 수만 개의 프롬프트 토큰이 소비되는 경우가 흔하며, 작업 세션 전체를 합치면 수백만 개에 달할 수 있습니다. 다만 대부분은 기본 요금의 10분의 1 수준인 캐시에서 처리됩니다. 참고를 위해 2026년 7월 기준 Anthropic이 발표한 기업용 수치를 보면 개발자 1인당 활성 일수 기준 평균 약 $13이며, 사용자의 90%는 $30 미만을 사용합니다. 직접 세션에서 /usage을 실행해 보십시오. 5분간 지켜보는 것이 어떤 평균 수치보다 정확합니다.
보이지 않는 생각 토큰(thinking tokens)도 비용이 발생합니까?
네, 그렇습니다. 생각 토큰은 출력 토큰으로 간주되어 높은 요금이 적용되며 max_tokens 한도에 포함됩니다. 현재 모델은 인터페이스에서 추론 요약을 표시하지 않더라도 해당 토큰에 대해 요금을 부과합니다. 응답이 표시 가능한 답변을 마치기 전에 stop_reason: "max_tokens"로 잘린다면, 생각 과정에서 예산을 모두 소진했을 가능성이 큽니다. Claude Code에서는 깊은 추론이 필요 없는 작업의 경우 /effort을 사용하여 노력 수준을 낮추십시오.
Claude Code 세션이 길어질수록 메시지당 비용이 비싸지는 이유는 무엇입니까?
API는 상태를 저장하지 않기 때문입니다. 모든 턴마다 전체 대화 내용, 읽은 모든 파일, 도구 실행 결과, 이전 교환 내용을 입력으로 다시 전송하므로 50번째 턴은 1번째부터 49번째 턴까지의 내용을 모두 포함하게 됩니다. 프롬프트 캐싱을 통해 반복되는 접두사(prefix)는 기본 입력 가격의 약 10분의 1로 처리되지만, 접두사 자체가 계속 커지며 캐시 TTL이 지난 후에는 다음 턴이 전체 가격으로 다시 작성됩니다. /compact로 기록을 줄이거나 /clear로 초기화할 수 있습니다.
Claude 토큰 사용량과 비용은 어떻게 확인합니까?
Claude Code에서 /usage을 입력하면 세션 토큰 통계, 로컬 비용 추정치, 구독 플랜 한도 막대 그래프를 확인할 수 있습니다(/cost은 동일한 명령어의 별칭입니다). /context을 사용하면 현재 컨텍스트 윈도우를 채우고 있는 내용을 볼 수 있습니다. 공식적인 API 청구 내역은 Claude Console의 사용량 페이지를 이용하십시오. 직접 작성한 코드에서 확인하려면 response.usage를 읽고 input_tokens, cache_creation_input_tokens, cache_read_input_tokens를 합산하여 실제 프롬프트 크기를 구하십시오. 비용 추정은 tiktoken가 아닌 count_tokens 엔드포인트를 사용해야 합니다.