‘~해 주시기 바랍니다’가 지시문을 2배로 만든다 — 조사·어미 토큰 실측
한국어가 영어보다 토큰을 1.4~1.6배 쓴다는 건 전에 재봤습니다. 그런데 왜 그런지는 안 재봤습니다. 이번에는 조사와 어미가 토큰을 어떻게 쪼개는지 들여다봤습니다.
예상과 다른 게 두 개 나왔습니다. 조사는 글자 수와 상관없이 대개 1토큰씩 붙고, 어미는 길게 쓸 때 오히려 더 싼 경우가 있었습니다.
측정 조건
- 인코딩
o200k_base·tiktoken 0.14.0· 측정일 2026년 10월 13일 - 명사 5개 × 조사 6종, 동사 3개 × 어미 6종, 같은 뜻의 문장 쌍 6개
- 표본은 전부 직접 작성
① 조사는 글자 수와 무관하게 1토큰
같은 명사에 조사만 바꿔 붙여 봤습니다.
| 명사 | 조사 없음 | ~가 | ~를 | ~에서 | ~에서는 | ~까지도 |
|---|---|---|---|---|---|---|
| 학교 | 1 | 2 | 2 | 2 | 2 | 3 |
| 회사 | 1 | 2 | 2 | 2 | 2 | 3 |
| 서울 | 1 | 2 | 2 | 2 | 2 | 3 |
| 고객 | 2 | 3 | 3 | 3 | 3 | 4 |
| 데이터 | 2 | 3 | 3 | 3 | 3 | 4 |
‘에서는’은 3글자인데 +1토큰, ‘까지도’는 같은 3글자인데 +2토큰입니다. 글자 수가 비용을 정하지 않습니다. 그 조사 덩어리가 토크나이저 사전에 통째로 들어 있는지가 정합니다.
그래서 한국어는 단어를 쓸 때마다 조사 비용이 따라붙습니다. 영어는 전치사가 띄어쓰기로 분리돼 이미 흔한 단어로 처리되는데, 한국어는 붙여 쓰기 때문에 매번 새로 쪼개야 합니다.
쪼개진 모습을 직접 보면 이렇습니다.
| 문자열 | 토큰 | 쪼개진 모습 |
|---|---|---|
| 학교 | 1 | ['학교'] |
| 학교가 | 2 | ['학교', '가'] |
| 학교에서는 | 2 | ['학교', '에서는'] |
| 데이터까지도 | 4 | ['데', '이터', '까지', '도'] |
‘데이터’는 ‘데’ + ‘이터’로 쪼개집니다. 흔한 외래어인데도 한 덩어리가 아닙니다. 조사까지 붙으면 6글자가 4토큰이 됩니다.
② 어미는 길게 쓸 때 더 싼 경우가 있다
같은 동사에 어미만 바꿔 봤습니다. 여기서 제일 뜻밖의 결과가 나왔습니다.
| 형태 | 글자 | 토큰 | 쪼개진 모습 |
|---|---|---|---|
| 가 | 1 | 1 | ['가'] |
| 가요 | 2 | 2 | ['가', '요'] |
| 갑니다 | 3 | 2 | ['갑', '니다'] |
| 갔습니다 | 4 | 3 | ['�', '�', '습니다'] ← 글자가 깨져 쪼개짐 |
| 가겠습니다 | 5 | 2 | ['가', '겠습니다'] |
| 가시겠습니까 | 6 | 4 | ['가', '시', '겠', '습니까'] |
‘갔습니다'(4글자)가 3토큰, ‘가겠습니다'(5글자)가 2토큰입니다. 더 길게 쓴 쪽이 더 쌉니다.
이유는 쪼개진 모습에 나와 있습니다. ‘갔’은 토크나이저 사전에 없어서 글자가 바이트 단위로 깨집니다(표의 � 두 개가 그것입니다). 반면 ‘겠습니다’는 통째로 한 덩어리로 들어 있습니다. 자모가 분리됐을 때 11배가 되는 현상과 같은 뿌리입니다.
‘확인하다’도 같습니다. ‘확인’이 ['확','인']으로 쪼개져서 어떤 어미를 붙여도 기본 2토큰을 깔고 갑니다.
| 형태 | 글자 | 토큰 |
|---|---|---|
| 확인해 | 3 | 3 |
| 확인합니다 | 5 | 3 |
| 확인했습니다 | 6 | 3 |
| 확인하겠습니다 | 7 | 4 |
| 확인하시겠습니까 | 8 | 5 |
‘~시~’를 넣으면 거의 항상 1토큰이 더 붙습니다. 높임 선어말어미는 따로 쪼개집니다.
③ 실제로 고를 수 있는 것 — 어투
조사를 빼는 건 한국어에서 불가능합니다. 하지만 어투는 고를 수 있습니다. 같은 뜻을 명사형으로 끊어 쓴 것과 공손한 완전한 문장으로 쓴 것을 비교했습니다.
| 명사형 | 토큰 | 공손한 완전문 | 토큰 | 배수 |
|---|---|---|---|---|
| 재고 확인 | 3 | 재고를 확인해 주세요 | 6 | 2.00배 |
| 배송 지연 안내 | 4 | 배송이 지연되고 있음을 안내드립니다 | 9 | 2.25배 |
| 환불 불가 | 4 | 환불이 불가능합니다 | 6 | 1.50배 |
| 3문장 이내 답변 | 7 | 3문장 이내로 답변해 주시기 바랍니다 | 13 | 1.86배 |
| 존댓말 사용 | 4 | 반드시 존댓말을 사용하여 주시기 바랍니다 | 12 | 3.00배 |
| 오류 원인 분석 | 5 | 오류의 원인을 분석해 주시면 감사하겠습니다 | 12 | 2.40배 |
| 합계 | 27 | 58 | 2.15배 |
‘~해 주시기 바랍니다’ 한 번이 5~8토큰입니다. 사람에게 쓰는 글이라면 당연히 그렇게 써야 하지만, AI에게 주는 지시문에서는 공손함이 동작을 바꾸지 않으면서 요금만 올립니다.
④ 시스템 프롬프트에 적용해 보면
시스템 프롬프트는 매 호출마다 다시 전송되기 때문에 여기서 차이가 가장 크게 벌어집니다. 상담 챗봇 규칙 5줄을 두 가지로 써 봤습니다.
[공손한 완전문 — 103토큰]
- 반드시 존댓말을 사용하여 주시기 바랍니다.
- 3문장 이내로 간결하게 답변해 주시기 바랍니다.
- 환불·교환 규정은 아래 내용만을 근거로 하여 답변해 주시기 바랍니다.
- 규정에 없는 내용은 담당자 확인이 필요하다고 답변해 주시기 바랍니다.
- 고객을 비난하거나 가르치려 드는 표현은 사용하지 말아 주시기 바랍니다.
[명사형 목록 — 51토큰]
- 존댓말 사용
- 3문장 이내
- 환불·교환은 아래 규정만 근거로
- 규정에 없으면 "담당자 확인 필요"
- 고객 비난·훈계 금지| 호출 수 | 절약되는 토큰 |
|---|---|
| 1,000회 | 52,000 |
| 10,000회 | 520,000 |
| 100,000회 | 5,200,000 |
같은 규칙인데 103토큰 → 51토큰, 50% 절약입니다. 1만 회 호출이면 52만 토큰 차이입니다.
주의 — 두 가지는 구분하세요
이건 AI에게 주는 지시문 이야기입니다. 챗봇이 손님에게 하는 답변은 당연히 공손해야 합니다. 지시문을 명사형으로 줄이면서 “답변은 존댓말로”라는 규칙은 그대로 두면 됩니다. 둘은 별개입니다.
그리고 이 측정은 토큰만 쟀습니다. 답변 품질은 재지 않았습니다. 지시를 너무 줄이면 뜻이 흐려져 엉뚱한 답이 나오고, 그러면 재질문이 늘어 오히려 더 비싸집니다. 줄인 뒤에는 실제 답변이 전과 같은지 꼭 확인하세요.
직접 재보기
본인 지시문이 몇 토큰인지는 토큰 계산기에 붙여 넣으면 바로 나옵니다. 아래 코드를 쓰면 어디서 쪼개지는지도 볼 수 있습니다.
import tiktoken
enc = tiktoken.get_encoding("o200k_base")
n = lambda t: len(enc.encode(t))
# 토큰이 어디서 쪼개지는지 눈으로 보기
split = lambda t: [enc.decode([x]) for x in enc.encode(t)]
for s in ["학교", "학교가", "학교에서는", "데이터까지도"]:
print(s, n(s), split(s))
for s in ["가", "갑니다", "갔습니다", "가겠습니다", "가시겠습니까"]:
print(s, len(s), "글자", n(s), "토큰", split(s))
a = "반드시 존댓말을 사용하여 주시기 바랍니다"
b = "존댓말 사용"
print(n(a), n(b), "%.0f%% 절약" % ((1 - n(b)/n(a)) * 100))한계: o200k_base 하나로만 측정했습니다. 다른 토크나이저를 쓰는 모델에서는 쪼개지는 지점이 달라집니다. 표본은 명사 5개·동사 3개·문장 쌍 6개로 적고, 제가 직접 고른 것이라 실제 문서의 분포와는 다를 수 있습니다. ‘갔습니다’처럼 글자가 깨지는 현상이 어느 글자에서 일어나는지는 사전에 달려 있어 규칙으로 예측할 수 없습니다 — 직접 재보는 수밖에 없습니다.
정리
- 조사는 글자 수와 무관하게 대개 +1토큰. ‘에서는'(3글자) +1 vs ‘까지도'(3글자) +2.
- 어미는 길게 쓸 때 더 싼 경우가 있다. ‘갔습니다'(4글자) 3토큰 vs ‘가겠습니다'(5글자) 2토큰.
- ‘갔’처럼 사전에 없는 글자는 바이트로 깨져 한 글자가 2토큰이 된다.
- ‘~시~’를 넣으면 1토큰 추가된다.
- 같은 뜻을 명사형으로 쓰면 2.15배 차이, 시스템 프롬프트 규칙에서는 50% 절약.
- 지시문과 답변은 구분하세요. 지시문만 줄이고 답변 공손함은 규칙으로 남기면 됩니다.
측정일: 2026년 10월 13일 / tiktoken 0.14.0 / o200k_base