Token 카운터
AI 모델에서의 Token 수를 추정, 주요 LLM 가격 계산 지원
통계
예상 비용
1M 입력 토큰당 $2.50
1M 출력 토큰당 $10.00
Token이란?
토큰 카운터는 AI 모델이 텍스트를 처리 단위로 어떻게 나누는지 추정하는 도구입니다. 토큰은 항상 단어나 글자와 같지 않으며, 한 단어 전체, 단어의 일부, 문장부호, 공백 처리, 일부 언어의 한 글자가 될 수 있습니다. 토큰 수는 컨텍스트 한도, 비용 예측, 프롬프트 설계, RAG 청킹, 대화 기록 관리, 입력이 모델 요청에 들어갈 수 있는지 판단할 때 중요합니다. 모델 계열마다 토크나이저가 다르므로 결과는 보편적인 값이 아니라 모델에 따라 달라집니다. 이 도구는 전송 전에 텍스트를 줄이거나 나누고 구조화하는 데 도움이 되지만, 최종 한도는 실제 사용할 모델 기준으로 확인해야 합니다.
사용 방법
기본 작업
- 입력 영역에 텍스트를 입력하거나 붙여넣으세요
- 대상 AI 모델을 선택하세요 (GPT-4, Claude, Gemini 등)
- 오른쪽 패널에서 토큰 수 추정치를 확인하세요
- 예상 출력 길이를 설정하여 API 비용을 계산하세요
토큰화 규칙
- GPT 시리즈: 영어 약 4자, 중국어 약 1.5자가 1 토큰에 해당합니다
- Claude 시리즈: GPT와 유사하지만 약간의 차이가 있습니다
- DeepSeek 시리즈: 중국어에 최적화되어 있으며, 약 2자 = 1 토큰
- 특수 문자, 구두점 및 줄 바꿈도 토큰을 소비합니다
- 코드나 JSON 같은 구조화된 텍스트는 보통 토큰 밀도가 더 높습니다
활용 사례
기술 원리
최신 LLM 토크나이저는 공백 기준 분할이 아닌 서브워드 알고리즘, 주로 바이트 페어 인코딩(BPE)과 SentencePiece를 사용합니다. BPE는 개별 바이트에서 시작하여 가장 빈번한 인접 쌍을 반복적으로 병합하여, 보통 32k~200k 기호의 고정 어휘를 생성합니다. 흔한 단어는 단일 토큰이 되고, 드문 단어는 여러 서브워드로 분해되며, 임의 바이트(이모지, 제어 문자)도 알파벳이 256바이트 전체를 커버하므로 안전하게 인코딩됩니다. SentencePiece(Llama, Mistral, Gemini 변형에서 사용)는 공백을 `▁` 마커를 통해 일반 문자로 취급하므로, 선행 공백이 다음 토큰의 일부가 됩니다. 이것이 ` hello`와 `hello`가 보통 다른 토큰 ID를 갖는 이유입니다. OpenAI는 `tiktoken` 라이브러리를 통해 세 가지 주요 BPE 어휘를 제공합니다: `p50k_base`(50,281 토큰, GPT-3/Codex), `cl100k_base`(100,277 토큰, GPT-3.5 Turbo 및 GPT-4), `o200k_base`(약 200k 토큰, GPT-4o 및 o1). o200k_base는 비영어권 커버리지를 추가하고 중국어/일본어 토큰 수를 약 1.4~1.7배 줄입니다. Claude는 유사한 규모의 관련 독자 토크나이저를 사용합니다. 대략적인 작업 비율로, 영어 텍스트는 토큰당 약 4자, cl100k_base에서 중국어는 토큰당 약 1.5~2자, o200k_base에서는 약 2자이며, 단일 이모지는 여러 UTF-8 바이트로 인코딩되므로 토큰 2~5개를 소비합니다. 토큰 수는 컨텍스트 윈도우 사용량과 비용 모두를 좌우합니다. 현재 윈도우는 GPT-4o 128k, Claude 3.5 Sonnet 200k, Gemini 1.5 Pro 2M입니다. 비용은 `토큰 수 × 100만개당 가격`으로 청구되며, 입력과 출력이 별도로 가격이 책정됩니다(예: GPT-4o $2.50/$10.00 per 1M, Claude 3.5 Sonnet $3.00/$15.00). 이 카운터는 각 토크나이저의 어휘 파일을 전송하면 수 메가바이트의 페이로드가 되기 때문에 계열별 휴리스틱 계수를 사용하므로, 결과는 작업용 추정치이며 권위 있는 수치는 모델의 API 응답에 있는 `usage` 필드입니다.
- BPE는 빈번한 바이트 쌍을 고정 어휘로 병합합니다. OpenAI 어휘는 `cl100k_base`(GPT-4/3.5), `o200k_base`(GPT-4o/o1), `p50k_base`(Codex)입니다.
- SentencePiece는 선행 공백을 `▁`로 인코딩하므로, Llama/Mistral/Gemini에서 ` world`와 `world`는 다른 토큰 ID에 매핑됩니다.
- 영어 휴리스틱 ≈ 토큰당 4자. CJK는 cl100k_base에서 토큰당 ≈ 1.5~2자, o200k_base에서 ≈ 2자. 이모지는 보통 토큰당 2~5개입니다.
- 비용 공식: `(입력_토큰 / 1,000,000) × 입력_가격 + (출력_토큰 / 1,000,000) × 출력_가격`. 입력과 출력이 별도로 가격이 책정됩니다.
- 2025년 컨텍스트 윈도우: GPT-4o 128k, GPT-4 Turbo 128k, Claude 3.5 Sonnet 200k, Gemini 1.5 Pro 2M, DeepSeek V3 128k.
- 같은 텍스트도 벤더마다 다른 토큰 수를 제공합니다. 토크나이저 어휘, 바이트 폴백 규칙, 공백 처리 방식이 모두 다릅니다.
- 권위 있는 수치는 API 응답의 `usage.prompt_tokens` / `usage.completion_tokens`(OpenAI) 또는 `usage.input_tokens` / `usage.output_tokens`(Anthropic)입니다.
예시
GPT-4 기준 짧은 영문 구문
입력: Hello, world!
모델: GPT-4 (cl100k_base)
토큰: 4 -> ["Hello", ",", " world", "!"]
문자 수: 13
비율: 3.25 chars/token한자(중국어)는 글자당 토큰 소비가 더 큼
입력: 你好,世界! (중국어로 "Hello, world!")
GPT-4: 약 8 토큰 (1.5 chars/token)
DeepSeek V3: 약 4 토큰 (2 chars/token, CJK 최적화)
Claude 3.5: 약 7 토큰1,000단어 글에 대한 비용 산정
입력: 영문 1,000 단어 (약 1,330 토큰)
예상 출력: 500 토큰
모델: GPT-4o (입력 $2.50 / 출력 $10.00 per 1M tokens)
입력 비용: 1,330 / 1,000,000 * $2.50 = $0.00333
출력 비용: 500 / 1,000,000 * $10.00 = $0.00500
합계: 요청당 약 $0.0083경험칙: 영문 약 75 단어 ≈ 약 100 토큰
단락 (75단어):
"The quick brown fox jumps over the lazy dog. Pack my box with five
dozen liquor jugs. How vexingly quick daft zebras jump! The five
boxing wizards jump quickly. Sphinx of black quartz, judge my vow."
GPT-4 토큰: 약 100
Claude 토큰: 약 95벡터 DB 임베딩 전 청크 크기
목표 청크: 512 토큰 (text-embedding-3-small 한도: 8191)
영문: 청크당 약 384 단어
중문: 청크당 약 768자 (GPT 토크나이저 기준)
중첩: 청크 간 50 토큰 (문맥 보존)자주 묻는 질문
카운터는 어떤 토크나이저를 사용하나요?
보통 OpenAI의 tiktoken(GPT-4, GPT-3.5는 cl100k_base, GPT-4o는 o200k_base)을 사용하며, 때로는 Anthropic의 Claude 토크나이저나 오픈 모델용 Hugging Face 토크나이저를 씁니다. 모델마다 텍스트를 나누는 방식이 달라 카운트는 모델별로 차이가 납니다.
왜 토큰 수가 단어 수와 다른가요?
토큰은 하위 단어 단위입니다. 'Hello world'는 2 토큰이고, 'antidisestablishmentarianism'은 5~6 토큰입니다. 영어는 토큰당 평균 약 0.75 단어입니다(따라서 1000 토큰 ≈ 750 단어). 다른 언어는 더 밀도가 높습니다 — 한자는 한 글자임에도 종종 1~2 토큰을 차지합니다.
제 프롬프트가 업로드되나요?
아니요. 토크나이저는 브라우저에서 실행됩니다 — tiktoken은 인코딩을 로컬에서 처리하는 JavaScript 포팅 버전이 있습니다. 프롬프트는 네트워크를 통해 전송되지 않습니다.
비용 추정치는 얼마나 정확한가요?
토큰 수 자체는 정확합니다. 비용 수치는 선택한 모델의 1K 토큰당 가격에 따라 달라지며, 페이지는 공개 가격표에서 이를 가져옵니다. 페이지가 업데이트될 때 공급자 가격 변경이 반영되니, 예산이 중요한 결정에는 최신 가격으로 직접 확인하세요.
왜 OpenAI 플레이그라운드와 토큰 수가 약간 다른가요?
tiktoken 버전이 다르면 사소한 차이가 있을 수 있습니다. 특수 토큰(채팅 메시지의 role/system 프레이밍 토큰)은 메시지당 몇 개의 토큰이 추가되는데, 구조화되지 않은 카운터에는 포함되지 않을 수 있습니다. 정확한 API 호출 청구를 알려면 코드가 실제로 보내는 내용을 카운트하세요.
코드, JSON, 구조화된 데이터는 어떻게 처리되나요?
토크나이저는 구두점, 괄호, 공백을 작은 토큰 여러 개로 나눕니다. JSON은 밀도가 높아 — 작은 JSON 객체도 50개 이상의 토큰을 사용할 수 있습니다. 코드는 동일한 분량의 산문보다 더 많은 토큰을 사용합니다. 컨텍스트 한계가 빡빡한 모델에 JSON이나 코드를 보낼 때는 이를 고려하세요.
목록에 없는 모델의 토큰을 카운트할 수 있나요?
해당 토크나이저가 브라우저에서 사용 가능한 경우에만 가능합니다. 일반적인 토크나이저(GPT, Claude, Llama)는 JS 구현이 있습니다. 잘 알려지지 않거나 독점적인 모델은 모델 공급자의 공식 카운터를 사용하거나 추정값(영어는 4자 ≈ 1 토큰)을 활용하세요.