삼태연구소
SAMTAELABS삼태연구소
가이드2026년 8월 15일·6분 읽기

Claude API 토큰 비용의 진짜 구조: Input과 Output이 5배 차이 나는 이유 (claude.com)

Claude API토큰 비용프롬프트 캐싱AI API 비용 최적화Claude Code외주 개발앱 개발 외주개발 외주LLM 비용 구조
Claude API 토큰 비용의 진짜 구조: Input과 Output이 5배 차이 나는 이유
목차(4)

한줄 요약

Claude API는 Input과 Output 토큰 가격이 다르고, 캐싱 전략이 실질 비용을 좌우한다.

어떤 상황에서 필요한가?

Claude API를 연동해서 서비스를 만들거나, Claude Code를 팀 단위로 쓰고 있다면 토큰 비용 구조를 모르고 지나치면 나중에 청구서를 보고 당황하게 된다. 특히 AI 기능을 앱에 붙이는 외주 개발이나 자체 서비스 구축 상황에서, 토큰 비용은 인프라 비용과 맞먹을 수 있다. "그냥 API 호출하면 되는 거 아니야?"라고 생각했다가 세션 하나에 수십 번의 요청이 쌓이고, 각 요청마다 전체 대화 히스토리가 딸려 나간다는 걸 뒤늦게 파악하는 경우가 많다.

비용을 의식하지 않은 채 구현하면, 대화가 길어질수록 요청당 토큰 수가 선형이 아니라 누적적으로 증가한다. 구조를 이해하고 설계 단계에서 반영해야 나중에 리팩터링 없이 버틴다.

핵심 구현 방법

왜 Output이 Input보다 5배 비싼가

GPU가 요청을 처리하는 방식은 두 단계로 나뉜다. 첫 번째는 프리필(prefill) 단계로, 시스템 프롬프트와 대화 히스토리, 사용자 메시지 전체를 한 번에 읽어들인다. 이게 Input 토큰이다. 두 번째는 디코드(decode) 단계로, 응답을 토큰 하나씩 순차적으로 생성한다. 200토큰짜리 응답이라면 모델이 200번 돌아간다. 토큰당 GPU 점유 시간이 디코드에서 훨씬 길기 때문에 Output 가격이 Input의 약 5배로 책정된다.

이 구조를 알면 설계 방향이 달라진다. 시스템 프롬프트를 길게 쓰는 것보다 응답을 장황하게 만드는 것이 더 비싸다. 불필요한 CoT(chain-of-thought) 출력이나 thinking 토큰을 켜두는 것도 마찬가지다.

프롬프트 캐싱이 비용을 줄이는 방식

요청의 앞부분이 이전 요청과 동일하면, 서버는 그 부분을 다시 계산하지 않고 캐시된 상태를 그대로 불러온다. 캐시 읽기 비용은 일반 Input의 0.1배 수준이다. 반면 캐시에 처음 쓸 때는 최대 2배까지 비용이 붙는다. 한 번 비싸게 써두고, 이후 여러 턴에서 0.1배로 계속 읽는 구조다.

Claude Code 기준으로 한 세션에서 "failing test를 고쳐달라"는 요청 하나에 다섯 번의 API 요청이 발생한다. 파일을 읽고, 수정하고, 테스트를 실행하고, 결과를 확인하는 과정이 모두 개별 요청이다. 매 요청마다 전체 대화가 포함되지만, 앞 부분은 캐시에서 0.1배 가격으로 읽히고 새로 추가된 부분만 전체 가격이 적용된다. 전형적인 턴은 수만 개의 Input 토큰에 수백 개의 Output 토큰이라는 비대칭 구조다.

세션 비용을 결정하는 요소

결국 세 가지가 비용을 결정한다. 컨텍스트에 쌓인 총 토큰 수, 그 토큰들이 몇 턴 동안 유지되느냐, 그리고 동시에 몇 개의 컨텍스트를 돌리느냐다. 세션 시작 전에 이미 시스템 프롬프트, 툴 정의, CLAUDE.md가 컨텍스트를 차지한다. 이후 파일 읽기나 커맨드 실행 결과가 붙을 때마다 전체 토큰이 늘어나고, 그게 이후 모든 턴에서 반복 전송된다.

실전에서 주의할 점

캐시를 깨뜨리는 행동이 생각보다 많다. 모델을 세션 중간에 바꾸면 그 시점부터 전체 대화가 전체 가격으로 다시 프리필된다. effort 레벨 변경도 마찬가지다. 캐시는 모델, effort 레벨, 요청 앞부분의 토큰 배열이 정확히 일치할 때만 유효하다.

캐시 유효 시간도 중요하다. 구독 플랜에서는 1시간, API 키로 직접 쓸 때는 기본 5분이다. 대화를 중단했다가 1시간 넘어서 재개하면 캐시가 날아가고 전체 대화를 다시 프리필한다.

/compact 명령으로 대화를 요약 압축하면 캐시가 전부 무효화된다. 이미 캐시가 살아있는 상태에서 쓰면 요약 비용만 낮게 먹히지만, 캐시가 만료된 상태에서 쓰면 이중으로 비싸진다. 반면 /rewind로 마지막 몇 턴을 잘라내는 건 캐시에 영향이 없다. 방향이 잘못됐다 싶을 때 rewind가 compact보다 경제적인 이유다.

모델 전환이나 effort 변경이 필요하다면 세션 시작 시점이나 /clear 직후가 가장 싸다. 긴 대화 중간에 하면 그 시점까지 쌓인 컨텍스트 전체를 다시 지불하게 된다.

자주 묻는 질문

Q.구독 플랜을 쓰면 토큰 비용을 안 내도 되는 건가?

직접 금액으로 청구되지 않는다는 차이가 있을 뿐, 내부적으로는 동일한 토큰 요청이 사용 한도를 소모한다. 캐시가 깨지거나 컨텍스트가 비대해지면 한도를 더 빨리 소진하게 된다. 구조 자체를 이해해두면 한도 효율도 높일 수 있다.

Q.thinking 토큰은 어떻게 제어하나?

effort 레벨로 조절한다. `/effort low`로 낮추거나, 단순 반복 작업이 많은 세션이라면 환경 변수 `MAX_THINKING_TOKENS=0`으로 thinking 자체를 끌 수 있다. thinking 토큰도 Output에 포함되므로 5배 가격이 적용된다.

Q.세션을 자주 새로 시작하는 게 비용 절감에 도움이 되나?

경우에 따라 다르다. 대화가 너무 길어져서 캐시 히트율이 낮아지거나 컨텍스트가 불필요한 내용으로 가득 찼다면, 새 세션이 더 효율적이다. 반면 캐시가 살아있고 이어가는 작업이라면 세션 재사용이 낫다. `/context`로 현재 세션의 컨텍스트 상태를 확인하고 판단하는 게 좋다. 📌 원문: [Anthropic Blog](https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions) 🔗 구축이나 개발이 필요하다면 → [삼태연구소에 문의하기](/contact)

직접 따라하기 어려우면, 대표 개발자가 1:1로 진행해드립니다

누적 매출 20억 / 1인 에이전시. 중간 과정 없이 의도 그대로.

관련 아티클

관련 사례

이 글의 키워드와 맞닿은 실제 개발 사례를 함께 보세요.