토큰과 비용 뜻: 한 줄 정의#
토큰은 단어와 일대일로 대응하지 않습니다. OpenAI의 토큰 설명을 2026-11-03에 확인했습니다. 아래는 일반적인 비교 기준이며 Mirr의 청구 방식에 대한 주장은 아닙니다.
| 구분 | 비교할 항목 |
|---|---|
| 입력·출력 | 종량제 API에서는 각각의 토큰 수와 단가가 다를 수 있습니다. |
| 캐시·도구 | 일부 API는 캐시 읽기·쓰기 단가와 서버 도구 이용료를 따로 정합니다. |
| 구독제 | 월 요금뿐 아니라 포함 사용량, 제한과 초과 시 조건을 확인합니다. |
| 실제 청구 | 세금, 환율, 계약 조건과 추가 요금은 제공자와 결제 환경에 따라 달라집니다. |
- 비교할 두 서비스에서 같은 작업 범위와 완료 기준을 정합니다.
- 각 서비스의 실제 사용량, 현재 단가 또는 구독료와 포함·초과 조건을 확인합니다.
- 종량제는 과금 범주별 사용량에 해당 단가를 곱해 합산하고, 구독제는 월 요금과 확인된 추가 비용을 합쳐 비교합니다.
왜 중요한가: 한국 개발자 기준#
한국어와 영어의 토큰 수는 글자 수만으로 환산할 수 없습니다. 긴 파일이나 반복된 도구 결과가 입력에 포함되면 사용량이 늘 수 있지만, 짧은 답변이 반드시 저렴하다는 뜻도 아닙니다. 실제 사용량과 청구 내역을 확인하세요.
예제: 코드나 터미널로 보기#
예를 들어 입력과 출력에 각각 별도 단가가 있는 API라면 입력 토큰 수 × 입력 단가 + 출력 토큰 수 × 출력 단가로 기본 비용을 계산합니다. 단가가 백만 토큰 기준이라면 각 토큰 수를 백만으로 나눕니다. 캐시, 도구, 세금 등이 적용되면 별도로 더하거나 해당 계약에 맞게 계산해야 합니다. 이는 계산식 예시이며 실제 청구 기록이 아닙니다.
AI 토큰 계산: 대상 모델의 토크나이저로 세기#
AI 토큰 계산은 글자 수에 고정 비율을 곱하는 것이 아니라 대상 모델과 정확한 입력을 정한 뒤 그 모델의 계산 경로를 사용하는 일입니다. 다른 모델의 토크나이저로 수치를 대신하지 않습니다. 로컬 텍스트 토큰 수, 구조화된 API 입력의 추정치, 실제 청구 사용량은 서로 구분하세요.
- 사용할 제공자와 정확한 모델 ID를 공식 모델 문서에서 확인합니다. 비교할 한국어·영어 문장은 의미뿐 아니라 공백·줄바꿈·추가 지시까지 고정하고 비밀정보 없는 샘플을 사용합니다.
- OpenAI 모델의 단순 텍스트라면 해당 모델을 지원하는
tiktoken의encoding_for_model과encode로 셀 수 있습니다. 아래는 공식 예시의 모델을 사용한 미실행 예시입니다. 이 모델이 Mirr의 모델이라는 뜻은 아닙니다. 실제 대상 모델이 다르면 공식 매핑을 먼저 확인하세요.
import tiktoken
model = "gpt-4o"
encoding = tiktoken.encoding_for_model(model)
text = "한글 파일명을 확인해 주세요."
print(model, encoding.name, len(encoding.encode(text)))
encoding_for_model이 인식하지 못하는 모델은KeyError가 날 수 있습니다. 이름을 추측하거나 임의의 기본 인코딩으로 대체한 수치를 그 모델의 값이라고 보고하지 마세요. 매핑에 성공해도 모델의 실제 제공·접근 권한을 입증하지는 않습니다. 사용한 모델 ID,tiktoken버전, 인코딩 이름과 입력 원문을 기록합니다.- Claude API처럼 공식 입력 계산 API가 있는 경로는 대상
model과 실제system·messages·지원되는 도구 입력을 맞춰 계산하도록 계획합니다. 이는 외부 전송이므로 조직 승인과 인증·데이터 조건을 먼저 확인하세요. 제공자의 계산값도 추정치일 수 있고 지원하지 않는 입력 유형이 있습니다. 이 예시에서 API 호출 결과는 확인되지 않았습니다. - 실제 요청을 보냈다면 응답의 사용량과 청구 조건을 별도로 대조합니다. 단순 문자열의
encode결과에 대화 구조·도구·이미지·출력·캐시 비용이 모두 포함된다고 가정하지 마세요. 한·영 비교도 같은 모델·입력 조건에서 실제로 센 값만 표에 넣습니다.
근거: OpenAI tiktoken 공식 사용법(2026-11-03 확인), 모델 매핑 구현(2026-11-03 확인), Anthropic 입력 토큰 계산과 한계(2026-11-03 확인). tiktoken의 첫 인코딩 로딩은 사전 파일을 내려받아 캐시에 저장할 수 있으므로 설치·네트워크·저장 경로를 확인하세요. 위 예제의 출력, 한·영 비교값과 실제 청구 결과는 아직 측정하지 않았습니다.
관련 용어#
| 비교 경로 | 계산할 항목 | 필요한 실제 기록 |
|---|---|---|
| 구독 | 월 요금 + 확인된 추가 사용·옵션 + 세금 | 포함량·초과 조건과 청구 내역 |
| 종량 API | 범주별 토큰 수 × 각 단가 + 도구 등 별도 비용 | 입력·출력·캐시 사용량과 단가의 기준 단위 |
| 원화 총비용 | 청구 통화의 금액을 실제 적용 환율로 환산 | 결제 환율·수수료·부가세 적용 여부 |
위 표는 계산 양식입니다. 할인이나 무료량의 적용 순서도 해당 계약을 따라야 하며 실측 금액을 채운 비교표는 아직 없습니다.
컨텍스트 윈도우는 한 요청의 용량이고 토큰은 그 용량과 사용량을 세는 단위입니다. 윈도우가 크다고 그 최대치 전체가 매번 청구되는 것은 아닙니다.
캐시 쓰기와 읽기는 단가 배수가 다르다#
Anthropic 요금 문서는 프롬프트 캐싱의 비용을 기본 입력 단가에 대한 배수로 설명합니다. 5분 캐시에 쓸 때는 기본 입력 단가의 1.25배가, 1시간 캐시에 쓸 때는 2배가 붙습니다. 캐시를 읽을 때는 기본 입력 단가의 0.1배만 내면 됩니다. 문서는 일부 모델의 캐시 읽기 배수가 더 낮다고도 밝히므로, 계산하기 전에 모델별 표를 확인하세요.
이 배수로 손익분기를 따져 볼 수 있습니다. 문서는 5분 캐시가 한 번 읽히면 쓰기 비용을 회수하고, 1시간 캐시는 두 번 읽혀야 회수된다고 설명합니다. 같은 긴 프롬프트를 짧은 간격으로 여러 번 보내는 작업에는 캐시가 유리하지만, 한 번만 쓰이는 입력에 캐시 쓰기를 붙이면 배수 구조상 기본 입력보다 비쌉니다.
가정해 볼 수 있는 계산 예시를 하나 보겠습니다. 같은 4만 토큰짜리 접두사를 5분 안에 세 번 보낸다고 가정하면, 캐시가 없을 때는 세 번 모두 기본 단가로 계산됩니다. 5분 캐시를 쓰면 첫 요청의 쓰기 1.25배와 이후 두 번의 읽기 0.1배를 합친 1.45배분만 냅니다. 이 계산은 가정이며, 실제 청구 기록과 단가를 대신하지 않습니다.
배치 할인과 데이터 거주지 배수는 함께 적용된다#
Batch API는 대량의 요청을 비동기로 처리하며, 입력과 출력 토큰 모두에 50퍼센트 할인을 적용합니다. 요금 문서는 이 할인이 프롬프트 캐싱의 배수와 함께 적용될 수 있으며, 두 기능을 함께 쓰면 표준 API 호출보다 큰 절감이 있다고 설명합니다. 반대로 Claude 4.6 이후 모델에서 inference_geo로 미국 내 추론만 지정하면 입력, 출력, 캐시 쓰기와 읽기 모든 항목에 1.1배가 붙습니다.
따라서 배치나 지역 고정을 쓰는 팀은 청구 내역을 항목별로 보고, 할인과 배수가 각각 어떤 항목에 곱해졌는지 계산식으로 남겨 두세요. 계산식이 있으면 가격표가 바뀌었을 때 어디서 차이가 생겼는지 빠르게 찾을 수 있습니다.
긴 입력의 요금 기준은 모델마다 다르다#
요금 문서에 따르면 Claude 4.6 이후 모델(Claude Haiku 5.5 제외)과 Claude Mythos Preview는 1M 토큰 전체 윈도우를 표준 요금으로 제공합니다. Claude Haiku 5.5는 프롬프트 길이에 따라 가격이 달라서, 프롬프트가 10만 토큰을 넘는 요청은 더 높은 단가를 냅니다. 이때 프롬프트 길이에는 캐시 읽기와 쓰기 토큰을 포함한 모든 입력 토큰이 들어가며, 요청마다 따로 계산됩니다.
이 조건은 가격표가 바뀌기 쉬운 항목이므로, 계산 기록에 확인한 날짜와 모델 ID를 함께 남기세요. 같은 모델이라도 입력 길이가 기준을 넘는 요청과 넘지 않는 요청의 단가가 다를 수 있습니다.
사용량 응답의 항목을 나눠 기록하기#
요금을 계산하려면 응답의 사용량 필드를 항목별로 기록하세요. 캐시를 쓴 요청에서는 input_tokens, cache_creation_input_tokens, cache_read_input_tokens가 각각 따로 나타나고, 세 값 모두 윈도우와 요금 계산에 들어갑니다. 확장 사고 토큰은 생성될 때 출력 토큰으로 한 번 과금됩니다. 이전 턴의 사고 블록이 다음 요청에 남는지는 모델에 따라 다르며, 남는 모델에서는 그 블록이 이후 요청의 입력 토큰으로 과금됩니다.
기록 양식에는 요청 시각, 모델 ID, 각 사용량 필드, 프롬프트 버전을 함께 남기세요. 그래야 단가 변경과 캐시 적중 여부를 따로 검증할 수 있습니다.
캐시가 실제로 쓰였는지 확인하기#
캐시를 설정해도 적용되지 않을 수 있습니다. 문서에 따르면 최소 캐시 가능 길이는 모델마다 다르고, 2026-11-03 확인 시점의 표에서 Claude Haiku 5.5는 512토큰, Claude Haiku 4.5는 4,096토큰입니다. 이보다 짧은 요청은 오류 없이 캐시 없이 처리됩니다. 응답의 cache_creation_input_tokens와 cache_read_input_tokens가 둘 다 0이면 캐시되지 않은 것이며, 대개 최소 길이에 못 미쳤기 때문이라고 문서는 설명합니다. 같은 문서는 최소 길이에 조금 못 미친다면, 자주 재사용되는 프롬프트에 한해 캐시할 내용을 늘려 기준을 넘기는 것이 비용을 줄일 수 있다고 봅니다. 다만 재사용되지 않는 내용을 채우면 그만큼 쓰기 비용이 붙으므로, 늘리는 내용이 실제로 반복되는지부터 확인하세요.
캐시 수명은 기본 5분이고, 사용할 때마다 추가 비용 없이 갱신됩니다. 수명은 요청을 시작한 시점부터 세므로, 응답을 스트리밍하는 데 걸린 시간도 수명에 포함됩니다. 캐시 접두사는 tools, system, messages 순서로 만들어집니다. 그래서 매 요청마다 바뀌는 타임스탬프나 사용자별 값을 중단점보다 앞에 두면, 요청마다 새 캐시를 쓰면서도 한 번도 읽지 못하는 상황이 생깁니다. 문서는 이를 흔한 실수로 들고, 요청 사이에 변하지 않는 마지막 블록에 중단점을 두라고 권합니다. Claude API에서는 캐시가 워크스페이스 단위로 분리되므로, 같은 조직 안이라도 워크스페이스가 다르면 캐시가 공유되지 않습니다.
도구 사용은 토큰 말고도 과금된다#
요금 문서는 도구 요청을 입력 토큰, 출력 토큰, 그리고 서버 도구의 사용량 기반 요금으로 나눠 계산한다고 설명합니다. 입력 토큰에는 tools 매개변수의 도구 정의도 포함됩니다. 웹 검색은 Claude API에서 1,000회당 10달러가 붙고, 검색 결과로 생성된 콘텐츠에는 토큰 요금이 추가됩니다. 검색 결과는 대화 전체에서 입력 토큰으로 계산되며, 오류로 실패한 검색은 청구되지 않는다고 문서는 적고 있습니다.
사용량 응답에는 서버 도구를 쓴 횟수가 별도 항목으로 나타납니다. 웹 검색이 몇 번 실행됐는지를 토큰 기록과 함께 남겨 두면, 청구서에서 토큰 요금과 도구 요금을 구분해 확인할 수 있습니다.
토큰 계산 API의 추정 범위#
Anthropic 토큰 계산 문서는 계산 결과가 추정치이며, 실제 입력 토큰이 메시지 생성 때와 약간 다를 수 있다고 적습니다. 시스템 최적화를 위해 Anthropic이 자동으로 더한 토큰이 포함될 수 있지만, 그 토큰은 과금되지 않고 청구는 사용자 콘텐츠만 반영한다고 설명합니다. 계산 API는 무료이지만 분당 요청 수 제한을 받으며, 메시지 생성과는 별도의 한도를 가집니다.
이 API는 캐싱 로직을 쓰지 않습니다. 계산 요청에 cache_control을 넣을 수 있어도 캐시는 실제 메시지 생성 때만 작동하므로, 계산 결과로 캐시 적중을 예측하면 안 됩니다. 또 Claude Opus 4.7 이전 모델에서 옮겨 올 때는 예전 모델에서 잰 토큰 수로 비용이나 윈도우 적합성을 추정하지 말고, 사용할 모델 ID로 다시 세라고 문서는 권합니다.
tiktoken 캐시와 무결성 검사#
OpenAI의 tiktoken 로더는 인코딩 파일을 캐시 디렉터리에 저장합니다. 캐시 위치는 TIKTOKEN_CACHE_DIR 환경 변수를 먼저 보고, 없으면 DATA_GYM_CACHE_DIR을 보며, 둘 다 없으면 임시 디렉터리 아래의 data-gym-cache를 씁니다. 값을 빈 문자열로 두면 캐시를 끌 수 있고, 캐시 파일 이름은 다운로드 주소의 SHA-1 해시에서 만들어집니다.
기대 해시가 주어진 파일은 SHA-256으로 확인합니다. 캐시된 내용의 해시가 맞지 않으면 캐시를 지우고 다시 받으며, 내려받은 내용의 해시가 맞지 않으면 해시 불일치 오류를 냅니다. 사용자가 지정한 캐시 디렉터리에 쓸 수 없으면 오류가 나지만, 기본 임시 캐시에 쓰지 못한 경우에는 넘어갑니다. 모델 매핑에서도 정확한 이름 표와 접두사 표가 따로 있어, gpt-4o-2024-05-13 같은 스냅샷 이름은 접두사 규칙으로 인코딩이 정해집니다. TIKTOKEN_CACHE_DIR로 고정 경로를 지정하면 임시 디렉터리를 정리해도 같은 파일을 다시 쓸 수 있습니다.
영어 기준 근사치는 한국어에 그대로 쓰지 않는다#
OpenAI 개념 문서는 영어 텍스트에 대해 토큰 하나가 대략 4글자 또는 0.75단어에 해당한다는 어림값을 제시합니다. 이 값은 영어 텍스트를 기준으로 한 설명이므로, 한국어 문장을 글자 수로 나눠 토큰 수를 추정하는 근거로 쓰면 안 됩니다. 한국어 요금을 계산하려면 대상 모델의 계산 경로로 같은 입력을 세고, 그 기록을 비교표에 넣으세요.
비용을 추정할 때는 입력·출력·도구 호출을 각각의 토큰량으로 나누고, 모델별 단가와 별도 청구 항목이 있는지 함께 봅니다. 영어 기준의 근사치를 한국어 입력에 그대로 대입하지 말고, 대상 모델의 토크나이저로 계산한 값을 기준으로 삼아야 같은 과제의 비용을 비교할 수 있습니다. 계산 값과 실제 청구가 다를 수 있으니, 요금제 페이지의 조건과 함께 확인하는 편이 정확합니다.
다음에 읽을 것#
토크나이저 출력과 동일 작업의 구독제·종량제 실측 비용은 아직 준비되지 않았습니다. 실제 비교에는 대상 모델, 같은 입력, 사용량 기록과 해당 결제 조건이 필요합니다.
관련#
편집 메모 (2026-11-02): 계산 양식과 실제 청구 결과를 구분하도록 설명을 바로잡고 모델별 토큰 계산·별도 청구 FAQ를 보충했습니다.
