한국어는 영어보다 토큰을 얼마나 더 쓸까 — 직접 측정한 결과
AI 서비스 요금은 글자 수가 아니라 토큰 단위로 매겨집니다. 그리고 한국어는 영어보다 토큰을 더 많이 씁니다. 그런데 얼마나 더 쓰는지에 대한 국내 자료는 대부분 추정이거나 오래된 수치입니다.
그래서 직접 측정했습니다. 아래 숫자는 전부 제가 실제로 돌려서 얻은 값이고, 이 글 맨 아래 코드로 누구나 똑같이 재현할 수 있습니다.
결론부터
| 측정 항목 | 결과 |
|---|---|
| 한국어 : 영어 토큰 비율 (최신 토크나이저) | 1.39 ~ 1.55배 |
| 한국어 : 영어 토큰 비율 (이전 세대) | 2.22 ~ 2.88배 |
| 한국어 글자당 평균 토큰 | 0.536 토큰 |
| 한국어 1,000자 | 약 536 토큰 |
| 128,000 토큰 컨텍스트 | 한국어 약 23만 9천 자 |
| 띄어쓰기를 없애면 | 토큰 17.1% 증가 (줄지 않음) |
가장 의외였던 것은 마지막 줄입니다. 공백을 지우면 글자 수가 줄어드니 토큰도 줄 것 같지만 반대로 늘어납니다. 이유는 뒤에서 설명합니다.
측정 방법
OpenAI가 공개한 토크나이저 라이브러리 tiktoken 0.14.0을 사용했습니다. 두 가지 인코딩을 비교했습니다.
o200k_base— GPT-4o 이후 세대 모델이 쓰는 인코딩cl100k_base— GPT-3.5/GPT-4 세대가 쓰던 인코딩
한국어 문장과 같은 뜻의 영어 문장을 짝지어 각각의 토큰 수를 셌습니다. 단순 번역기 문장이 아니라 실제로 쓰일 법한 문체(업무 메일, 뉴스, 구어체, 계약 문구)로 구성했습니다.
미리 밝히는 한계: 이 수치는 OpenAI 계열 토크나이저 기준입니다. 다른 회사 모델은 토크나이저가 다르므로 숫자도 달라집니다. 경향(한국어가 더 비싸다, 세대가 지날수록 개선된다)은 비슷하지만 정확한 배수는 서비스마다 직접 확인해야 합니다.
결과 1 — 같은 뜻, 다른 토큰
| 문장 유형 | 한국어 글자 | 한국어 토큰 | 영어 토큰 | 배수 |
|---|---|---|---|---|
| 인사말 | 17자 | 9 | 9 | 1.00배 |
| 업무 이메일 | 49자 | 25 | 17 | 1.47배 |
| 뉴스 문장 | 45자 | 23 | 18 | 1.28배 |
| 설명문 | 54자 | 33 | 18 | 1.83배 |
| 구어체 | 29자 | 20 | 14 | 1.43배 |
| 계약 문구 | 45자 | 26 | 22 | 1.18배 |
| 합계 | 136 | 98 | 1.39배 |
짧은 인사말은 차이가 없지만, 설명문처럼 서술어가 길어질수록 격차가 벌어집니다(1.83배). 한국어의 어미 변화가 토큰을 많이 잡아먹기 때문입니다.
긴 문단(한국어 293자)으로 같은 측정을 하면 1.55배가 나왔습니다. 문장이 길어질수록 평균 배수가 조금 올라갑니다.
결과 2 — 토크나이저 세대가 바뀌며 절반 가까이 줄었다
이번 측정에서 가장 실질적으로 중요한 발견입니다. 같은 문장을 이전 세대 인코딩으로 재면 이렇게 됩니다.
| 측정 | cl100k_base (이전) | o200k_base (최신) | 개선 |
|---|---|---|---|
| 짧은 문장 6개 합계 | 220 토큰 | 136 토큰 | 38% 감소 |
| 긴 문단 | 291 토큰 | 157 토큰 | 46% 감소 |
| 영어 대비 배수 | 2.22 ~ 2.88배 | 1.39 ~ 1.55배 | 약 절반 |
영어 쪽은 같은 문장에서 99 → 98 토큰으로 사실상 변화가 없었습니다. 즉 이 개선은 한국어를 비롯한 비영어권에 집중된 개선입니다.
실무적으로는 이런 뜻입니다. 예전에 한국어 API 비용을 계산해본 적이 있다면 그 수치는 지금 과대평가일 가능성이 높습니다. 구형 모델을 쓰고 있다면 최신 모델로 옮기는 것만으로 같은 작업의 토큰 비용이 크게 줄어들 수 있습니다.
결과 3 — 띄어쓰기를 없애면 토큰이 늘어난다
한국어 문장 10개를 정상 표기와 공백 제거본으로 각각 측정했습니다.
| 문장 | 띄어쓰기 O | 공백 제거 | 차이 |
|---|---|---|---|
| 오늘 날씨가 정말 좋네요 | 7 | 8 | +1 |
| 인공지능 기술이 빠르게 발전하고 있습니다 | 10 | 13 | +3 |
| 어제 본 영화가 생각보다 훨씬 재미있었어요 | 14 | 18 | +4 |
| 계약서 내용을 다시 한번 확인해 주시기 바랍니다 | 12 | 16 | +4 |
| 건강을 위해서는 규칙적인 운동이 중요합니다 | 12 | 15 | +3 |
| 10문장 합계 | 117 | 137 | +20 (17.1%) |
10문장 중 8문장에서 공백을 없앴을 때 토큰이 늘었고, 줄어든 문장은 하나도 없었습니다. 나머지 2문장은 동일했습니다.
왜 이런 일이 생기나
토크나이저는 자주 등장하는 글자 덩어리를 하나의 토큰으로 학습해 둡니다. 그런데 그 덩어리는 띄어쓰기가 정상인 문장으로 학습됐습니다. 공백을 지우면 학습해 둔 덩어리와 어긋나서, 단어가 더 잘게 쪼개집니다.
실제로 토큰이 어떻게 쪼개지는지 보면 이해가 빠릅니다.
| 입력 | 토큰 수 | 쪼개진 모양 |
|---|---|---|
| 안녕하세요 | 2 | ‘안’ / ‘녕하세요’ |
| 인공지능 | 3 | ‘인’ / ‘공지’ / ‘능’ |
| 서울특별시 | 4 | ‘서울’ / ‘특’ / ‘별’ / ‘시’ |
| 괜찮습니다 | 4 | 바이트 단위로 쪼개짐 |
| Hello there | 2 | ‘Hello’ / ‘ there’ |
‘안녕하세요’가 2토큰인데 ‘인공지능’이 3토큰인 것이 보입니다. 글자 수가 아니라 흔한 표현인지가 토큰 수를 결정합니다. ‘괜찮습니다’처럼 흔치 않은 조합은 바이트 단위까지 쪼개져 4토큰이 됩니다.
실무 결론: 토큰을 아끼겠다고 공백을 지우거나 줄임말을 쓰면 오히려 손해입니다. 맞춤법에 맞는 평범한 문장이 가장 토큰 효율이 좋습니다.
결과 4 — 텍스트 유형별 효율
| 유형 | 예시 | 글자당 토큰 |
|---|---|---|
| 파이썬 코드 | def add(a, b): return a + b | 0.35 (가장 효율적) |
| 영문 혼용 | ChatGPT와 Claude를 비교해 봤습니다 | 0.40 |
| 순우리말 위주 | 우리 함께 걸으며 나눈 이야기가 | 0.46 |
| 일반 문장 | 안녕하세요 오늘 날씨가 정말 좋네요 | 0.47 |
| 한자어 위주 | 본인은 해당 사안에 관하여 이의를 | 0.54 |
| 이모지 포함 | 오늘 기분 최고! 😀🎉 | 0.67 |
| 숫자·날짜 | 2026년 9월 20일 오후 3시 30분 | 0.73 (가장 비효율) |
눈여겨볼 점이 두 가지 있습니다. 첫째, 숫자와 날짜가 의외로 비쌉니다. 표 형태의 데이터를 대량으로 넣을 때는 예상보다 토큰이 많이 듭니다. 둘째, 이모지 하나가 글자 하나보다 훨씬 비쌉니다. 프롬프트를 꾸미는 이모지는 비용 관점에서 손해입니다.
실무에 적용하기
1. 내 문서가 몇 토큰인지 어림잡기
한국어 글자 수에 0.54를 곱하면 대략 맞습니다.
| 분량 | 예상 토큰 |
|---|---|
| 한국어 1,000자 | 약 536 토큰 |
| A4 1장 (약 880자) | 약 471 토큰 |
| A4 10장 | 약 4,700 토큰 |
2. 컨텍스트 한도를 글자로 환산하기
모델이 한 번에 처리한다고 광고하는 토큰 수는 한국어로는 이만큼입니다.
| 컨텍스트 | 한국어 분량 |
|---|---|
| 128,000 토큰 | 약 23만 9천 자 (A4 약 270장) |
| 1,000,000 토큰 | 약 186만 자 (A4 약 2,100장) |
3. 토큰을 실제로 아끼는 방법
- 공백과 맞춤법은 건드리지 마세요. 정상 표기가 가장 효율적입니다.
- 반복되는 지시는 시스템 설정에 넣으세요. 매 요청마다 같은 문단을 붙이면 그만큼 매번 과금됩니다.
- 불필요한 이모지와 장식을 빼세요. 생각보다 비쌉니다.
- 긴 원문을 통째로 넣기 전에 필요한 부분만 잘라내세요. 가장 확실한 절감입니다.
- 구형 모델을 쓰고 있다면 최신 세대로 옮기세요. 한국어는 그것만으로 40% 이상 줄 수 있습니다.
직접 재현해보기
아래 코드를 그대로 실행하면 이 글의 수치를 똑같이 확인할 수 있습니다. 파이썬과 pip install tiktoken만 있으면 됩니다.
import tiktoken
enc = tiktoken.get_encoding("o200k_base") # 최신 세대
old = tiktoken.get_encoding("cl100k_base") # 이전 세대
ko = "대규모 언어 모델은 방대한 양의 텍스트를 학습하여 다음에 올 단어를 예측하는 방식으로 작동합니다."
en = "A large language model works by learning from vast amounts of text and predicting the next word."
print(len(enc.encode(ko)), len(enc.encode(en))) # 33 18
print(len(old.encode(ko)), len(old.encode(en))) # 47 18
# 띄어쓰기 효과
s = "인공지능 기술이 빠르게 발전하고 있습니다"
print(len(enc.encode(s)), len(enc.encode(s.replace(" ", "")))) # 10 13
# 토큰이 어떻게 쪼개지는지 보기
for t in ["안녕하세요", "인공지능", "서울특별시"]:
ids = enc.encode(t)
print(t, len(ids), [enc.decode([i]) for i in ids])측정에 쓴 전체 문장 세트와 원본 수치는 위 표에 모두 공개해 두었습니다. 다른 문장으로 재보시면 수치가 조금씩 다를 수 있지만, 경향은 동일하게 나옵니다.
정리
- 한국어는 영어보다 토큰을 1.4~1.6배 씁니다. 예전에 알려진 2배 이상이라는 수치는 구형 토크나이저 기준입니다.
- 최신 세대 토크나이저로 오면서 한국어 효율이 약 40~46% 개선됐습니다. 영어는 거의 그대로입니다.
- 띄어쓰기를 없애면 토큰이 17% 늘어납니다. 절대 하지 마세요.
- 한국어 글자 수 × 0.54 로 토큰을 어림잡을 수 있습니다.
- 숫자·날짜·이모지는 생각보다 비싸고, 코드와 영문은 효율적입니다.
측정 조건이나 결과에 대해 이견이 있으시면 문의 페이지로 알려주세요. 재측정해서 글에 반영하고, 무엇을 고쳤는지 밝히겠습니다.
측정일: 2026년 9월 20일 / tiktoken 0.14.0 / 인코딩 o200k_base, cl100k_base