Claude Code .. Token 아끼기…
Claude Code를 쓰다 보면 “토큰이 뭐지?”, “모델마다 얼마나 차이나지?” 하는 의문이 생긴다. 실제 사용 경험을 바탕으로, 개념부터 절약 노하우까지 한 번에 정리해봤다.
토큰(Token)이란 무엇인가
AI 모델은 텍스트를 토큰이라는 단위로 읽고 생성한다. 단어 하나가 반드시 토큰 하나는 아니고, 언어와 단어에 따라 다르다. 사실상 따져보면 화폐 대신에 쓰이는 상징적인 단위가 토큰인 만큼, 실상은 토큰 = 돈이라고 생각하면 틀리지 않다.
| 텍스트 | 대략적인 토큰 수 |
|---|---|
| 영어 단어 1개 | 약 1토큰 |
| 한글 글자 1개 | 약 1~2토큰 |
| 한글 텍스트 1만 글자 | 약 1만~2만 토큰 |
| JS 파일 300줄 | 약 5,000~8,000 토큰 |
| A4 1페이지 분량 | 약 500~700 토큰 |
토큰은 입력(Input)과 출력(Output) 두 가지로 과금된다. 내가 Claude에게 보내는 모든 것(파일, 코드, 질문)이 입력 토큰이고, Claude가 돌려주는 답변과 코드가 출력 토큰이다.
입력과 출력을 따로 과금하는 건 이중과금 아닌가?
처음 보면 이런 의문이 생긴다. “출력을 얻으려면 어차피 입력이 있어야 하는데, 요청에 돈 받고 결과에 또 돈 받는 건 이중과금 아닌가?” 현실 세계 대부분의 거래가 결과물(출력)당 과금인 것과 비교하면 납득이 잘 안 된다. (예: 된장찌개 하나요 -> 과금, 여기요 된장찌개 -> 과금 .. 마치 이런형태 아니야? 라는 의문이 생긴다)
하지만 AI 모델은 입력과 출력이 서로 다른 연산을 소비하는 구조다.
| 단계 | 연산 방식 | 비용 성격 |
|---|---|---|
| 입력 처리 | 전체 텍스트를 한꺼번에 병렬 처리 | GPU 메모리 점유 |
| 출력 생성 | 토큰 한 개씩 순차 생성 | GPU 연산 반복 (매 토큰마다) |
출력이 입력보다 5배 비싼 이유가 여기 있다. 단어 하나를 생성할 때마다 GPU가 전체 컨텍스트를 다시 참조하면서 계산한다. 단순히 결과를 “돌려주는” 게 아니라 매 토큰마다 막대한 연산이 일어난다.
만약 입력을 무료로 하고 출력만 과금하면 이런 악용이 생긴다.
승차 기본료(입력) + 주행 거리 요금(출력).
“목적지까지 어차피 달려야 하는데 기본료가 이중과세 아니냐”고 할 수 있지만, 승차 자체로도 차와 기사가 이미 점유되는 것처럼, 입력 처리만으로도 GPU는 이미 소비된다.
결국 토큰 = 돈이라는 관점에서 보면, 입력과 출력은 각각 다른 서비스에 대한 대가를 치르는 것이지 같은 것에 두 번 청구하는 이중과금이 아니다. 다만 사용자 입장에서 체감이 복잡한 건 사실이고, 그래서 Pro·Max 구독제가 이 복잡함을 월정액으로 단순화해주는 역할을 한다.
그런데 출력량을 고객이 통제할 수 없다면?
여기서 한 발 더 나아가면 더 근본적인 의문이 생긴다. 입력은 고객이 직접 작성하니 소비량에 대한 책임이 분명하다. 하지만 출력은 Claude가 스스로 결정해서 생성한다. 고객은 결과가 나올 때까지 그 양에 간섭할 수 없는데, 무조건 과금을 받아야 하는 구조가 과연 합리적인가?
특히 Claude Code 에이전트 모드에서는 이 문제가 더 두드러진다. “이 함수 리팩토링해줘” 한 마디에 Claude가 자율적으로 결정한다.
고객은 코드 결과물 하나를 원했을 뿐인데, Claude가 중간 과정을 얼마나 거칠지는 Claude가 결정한다. 그 모든 과정이 과금된다.
| 거래 유형 | 출력량에 대한 고객 개입 |
|---|---|
| 택시 (미터기) | 경로 이의제기 가능, 실시간 확인 |
| 변호사 시간제 | 중간에 “그만” 지시 가능 |
| AI 에이전트 | 결과 나올 때까지 사실상 불투명 |
그래서 구독제가 현실적인 답이다
이 구조적 불합리함에 대한 시장의 답이 바로 Pro·Max 구독제다. 출력이 얼마나 나올지 모르니 월정액으로 상한선을 정해버리는 것이다. 종량제는 AI가 장황하게 출력할수록 고객이 손해지만, 구독제는 AI가 아무리 많이 생성해도 월정액 이상 나오지 않으니 출력 통제권 부재의 리스크를 Anthropic이 흡수하는 구조가 된다.
Claude 모델별 토큰 단가 비교
현재(2026년 기준) 주요 모델의 API 요금은 다음과 같다.
| 모델 | 입력 (per 1M 토큰) | 출력 (per 1M 토큰) | 용도 |
|---|---|---|---|
| Haiku 4.5 | $1.00 | $5.00 | 단순 분류, 라우팅 |
| Sonnet 4.6 | $3.00 | $15.00 | 대부분의 코딩 작업 ← 이걸 쓰면 된다 |
| Opus 4.6 | $5.00 | $25.00 | 복잡한 아키텍처, 고난도 추론 |
| Opus 4.7 | $5.00 | $25.00 | 최신 플래그십 |
Claude Code /model 메뉴, 세 가지 옵션의 차이
Claude Code에서 /model을 입력하면 Sonnet 관련 옵션이 세 개 나온다.
처음에는 왜 같은 모델이 여러 개인지 헷갈린다.
| 메뉴 항목 | 실제 모델 | 컨텍스트 창 | 과금 방식 |
|---|---|---|---|
| ① Default (recommended) ✓ | Sonnet 4.6 | 200K 토큰 | 구독 포함 |
| ② Sonnet | Sonnet 4.6 | 200K 토큰 | 구독 포함 |
| ③ Sonnet (1M context) | Sonnet 4.6 | 1,000,000 토큰 | Usage Credits 별도 차감 |
① Default vs ② Sonnet — 사실상 동일
둘 다 Sonnet 4.6, 200K 컨텍스트, 구독 요금제 안에서 사용된다.
차이는 ① Default는 Claude Code 앱 업데이트 시 자동으로 최신 권장 모델을 따라가고,
② Sonnet은 API 별칭 sonnet이 가리키는 모델에 고정된다는 점이다.
현재는 둘 다 Sonnet 4.6을 가리키므로 실질적 차이 없음.
그냥 ① Default로 쓰면 된다.
③ Sonnet (1M context) — 별도 과금 주의
1M(백만) 토큰 컨텍스트 창을 제공하지만, Pro·Max 플랜 포함 모든 구독 플랜에서 Usage Credits를 별도로 소비한다. $3/$15 per MTok 기준으로 직접 차감된다. 무심코 선택하면 모르는 사이에 과금이 쌓인다.
컨텍스트 창(Context Window)이란
Claude가 한 번에 “기억”할 수 있는 텍스트의 총량이다. 대화 내용, 열어본 파일, 코드, 도구 호출 결과가 모두 여기에 쌓인다.
| 컨텍스트 크기 | 체감 용량 | 해당 모델 |
|---|---|---|
| 200K 토큰 | JS 파일(300줄) 기준 약 25~30개 | Default Sonnet |
| 1M 토큰 | 위의 5배 — 대형 레포 전체 | Sonnet 1M / Opus (자동) |
세션이 길어지면 컨텍스트가 꽉 차고, Claude Code는 자동으로 /compact를 실행한다.
이때 이전 내용이 요약본으로 압축되면서 세부 정보가 사라진다.
Claude가 “아까 봤던 파일”을 다시 읽는 이유가 바로 이것이다.
토큰 절약 노하우 5가지
① 작업 단위로 세션을 나눠라
가장 효과적인 방법이다. 한 작업이 끝나면 /clear 또는 새 창을 열어 시작한다.
누적된 컨텍스트 없이 Claude가 현재 작업에만 집중하므로 토큰 낭비가 없다.
② /compact 신호를 모니터링하라
Claude가 자동으로 /compact를 실행하거나, 같은 파일을 반복해서 읽기 시작하면
컨텍스트가 포화 상태라는 신호다.
이때 1M 컨텍스트로 바꾸는 것보다 /clear 후 새 세션이 더 경제적이다.
③ 불필요한 파일을 컨텍스트에 올리지 마라
“일단 전부 읽어봐” 식의 요청은 토큰 낭비다. 관련 파일만 지정해서 요청하는 습관이 중요하다. 큰 파일이라면 필요한 함수나 섹션만 잘라서 전달하는 것도 방법이다.
④ 모델을 작업 난이도에 맞게 선택하라
| 작업 유형 | 권장 모델 |
|---|---|
| 단순 버그 수정, 파일 하나 리팩토링 | Default (Sonnet) |
| 여러 파일 동시 수정 | Default (Sonnet) |
| 복잡한 아키텍처 설계, 고난도 추론 | Opus |
| 레포 전체를 한 세션에 올려야 할 때 | Sonnet 1M (유료) |
⑤ CLAUDE.md로 반복 컨텍스트를 줄여라
프로젝트 루트에 CLAUDE.md 파일을 만들어두면 Claude Code가 세션 시작 시 자동으로 읽는다.
“이 프로젝트는 Node.js/Express/SQLite 구조이고, 라우터는 routes/ 폴더에 있다” 같은
반복 설명을 매번 입력하지 않아도 된다.
플랜별 토큰 소비 방식 요약
| 모델 선택 | Pro 플랜 | Max 플랜 | API 종량제 |
|---|---|---|---|
| Default / Sonnet | 구독 내 소비 | 구독 내 소비 | $3/$15 per MTok |
| Sonnet (1M context) | Credits 차감 | Credits 차감 | $3/$15 per MTok |
| Opus | Credits 차감 | 구독 내 소비 | $5/$25 per MTok |