LLM과 함께 배우는 생각그림02 · 토큰과 한글

AI는 한글을
어떤 조각으로 읽을까?

글자와 단어 사이에 놓인 처리 단위,
토큰이 만들어지는 길을 따라갑니다.
생각이음 논술연구원글 12문단 · 생각그림 12개
AI는 한글을 어떻게→17527
2770 · 14680…
문장 → 크기가 다른 토큰 → 토큰 번호

우리는 ‘한글’을 읽지만, 언어 모델은 먼저 입력을 일정한 조각과 번호의 줄로 바꿉니다. 그 조각이 토큰입니다. 토큰을 알면 글자 수와 비용, 문맥의 길이, 낯선 표현을 다루는 방식이 함께 보입니다.

01 · 출발점

모델의 첫 입력은 토큰 번호의 줄이다

화면에는 문장이 보입니다. 계산을 시작하기 전에 토크나이저가 이 문장을 여러 조각으로 나누고, 각 조각을 어휘표의 번호와 연결합니다. 모델은 그 번호를 다시 벡터로 바꾸어 계산합니다. 따라서 토큰은 사람이 읽는 말과 모델이 계산하는 수 사이의 첫 다리입니다.

생각그림 1 · 문장에서 계산으로
문장→토큰→번호→벡터
‘읽는다’는 표현은 계산 과정을 쉽게 말한 것입니다. 토큰 번호 자체에 뜻이 적혀 있는 것은 아닙니다.
02 · 크기

토큰의 크기는 한 글자부터 여러 글자까지 달라진다

토큰 하나는 한 글자일 때도 있고, 여러 글자나 공백을 포함할 때도 있습니다. 실제 o200k_base에서 “나는 학교에 갑니다.”는 “나는 / 학교 / 에 / 갑 / 니다 / .”에 해당하는 여섯 토큰으로 나뉩니다. 토큰 경계가 형태소 분석과 비슷하게 보이는 경우도 있습니다. 토크나이저는 학습 자료에서 자주 함께 나타난 바이트 묶음을 계산에 쓸 단위로 정합니다.

생각그림 2 · 한 문장, 서로 다른 크기
나는
102052
␠학교
136975
에
3107
␠갑
156987
니다
6479
.
13
띄어쓰기 한 칸이 다음 글자와 같은 토큰에 포함될 수 있습니다. 상자는 실제 실행 결과입니다.
03 · 바닥

한글 아래에는 UTF-8 바이트가 놓여 있다

컴퓨터는 문자를 바이트로 저장합니다. “한”은 UTF-8에서 ED 95 9C라는 세 바이트로 표현됩니다. 바이트 기반 BPE 토크나이저는 모든 가능한 입력을 다룰 수 있도록 바이트에서 출발해 자주 나타나는 묶음을 합칩니다. 그래서 익숙한 한글 조각은 하나의 토큰이 되고, 드문 입력은 더 작은 바이트 조각으로 남을 수 있습니다. 바이트에서 시작하면 처음 보는 문자 조합도 작은 조각으로 나누어 입력할 수 있습니다.

생각그림 3 · ‘한’ 아래의 세 바이트
한→ED959C
바이트 표기는 16진수입니다. 글자 하나가 언제나 바이트 하나가 되는 것은 아닙니다.
04 · 어휘표

자주 만난 이웃은 하나의 조각이 된다

BPE의 핵심 생각은 단순합니다. 자료에서 자주 이웃하는 작은 단위를 찾아 하나로 합치고, 새 묶음을 어휘표에 추가합니다. 이 과정을 반복하면 자주 쓰는 글자열은 큰 토큰이 되고 드문 표현은 작은 토큰의 조합으로 남습니다. 아래 실습은 “가나다 / 가나다 / 가나”라는 작은 자료에서 실행하는 교육용 병합 모형입니다. 실제 o200k_base의 방대한 학습 자료나 병합표를 재현하지 않습니다.

생각그림 4 · 작은 BPE 병합 실습

실제 토크나이저는 글자보다 더 아래인 바이트에서 출발할 수도 있습니다. 여기서는 병합 원리만 단순화했습니다.
05 · 띄어쓰기

공백도 입력의 한 부분으로 처리된다

사람은 띄어쓰기를 단어 사이의 빈자리로 읽습니다. 토크나이저는 공백도 입력 문자로 처리합니다. “생각그림”은 실제로 네 토큰이지만 “생각 그림”은 세 토큰이며, 세 번째 토큰이 공백과 “그림”을 함께 담습니다. 같은 낱말도 앞의 공백 유무에 따라 다른 번호를 받을 수 있습니다. 프롬프트의 띄어쓰기와 줄바꿈을 바꾸면 토큰의 수와 경계가 달라지는 이유가 여기에 있습니다.

생각그림 5 · 공백 하나가 바꾼 경계
생각그림 · 4토큰
생각그림

생각 그림 · 3토큰
생각␠그림
두 줄 모두 티크토큰 0.14.0의 o200k_base 실행 결과입니다.
06 · 조사와 어미

한국어 문법 경계와 토큰 경계는 목적이 다르다

“학교에서 공부합니다.”는 “학교 / 에서 / 공부 / 합니다 / .”에 가까운 다섯 토큰으로 나뉘지만, 다른 문장에서는 같은 조사나 어미가 주변 표현과 다른 크기로 묶일 수 있습니다. 형태소 분석은 문법 단위를 설명하고, 토큰화는 계산 입력을 만듭니다. 조사와 어미의 뜻은 토큰 경계만으로 정하지 않고 문맥 속 관계까지 살펴야 합니다. 모델은 여러 토큰의 관계를 뒤 단계에서 계산하며 문맥 속 기능을 배웁니다.

생각그림 6 · 문법 단위와 처리 단위
문법을 설명하는 경계

학교 │ 에서 │ 공부 │ 합니다

계산 입력을 만드는 경계
학교에서␠공부합니다.
이 문장에서는 두 경계가 꽤 비슷해 보입니다. 다른 문장에서는 두 경계가 달라질 수 있습니다.
07 · 표기

눈에 같은 한글도 컴퓨터 안에서는 다를 수 있다

완성형 “한글”과 초성·중성·종성을 따로 저장한 “한글”은 화면에서 비슷해 보일 수 있습니다. 그러나 UTF-8 바이트열이 다르므로 토큰 수도 달라집니다. 실제 실행에서 완성형은 2토큰, 분해형은 18토큰이었습니다. 복사한 문장에서 유난히 토큰 수가 늘었다면 유니코드 정규화와 숨은 문자를 살펴볼 필요가 있습니다. 정규화는 고유 표기를 바꿀 수 있어 목적을 확인하고 적용해야 합니다.

생각그림 7 · 같은 모습, 다른 저장
완성형 NFC한글2토큰
분해형 NFD한글18토큰
o200k_base 실제 실행입니다. 저장 방식과 토큰 경계는 실제 바이트열을 확인해 판별합니다.
08 · 새 문자

이모지 한 개도 여러 토큰이 될 수 있다

“안녕하세요 👋”에서 인사말은 두 토큰으로 묶이지만, 손을 흔드는 이모지는 공백을 포함한 앞부분과 남은 바이트가 갈라져 두 토큰이 됩니다. 한 토큰만 따로 해독하면 정상 문자로 보이지 않아 20 F0 9F 91과 8B처럼 표시됩니다. 두 토큰을 차례대로 합치면 원래 이모지로 복원됩니다. 토큰 경계와 문자 경계가 서로 어긋날 수 있음을 보여 주는 사례입니다.

생각그림 8 · 이모지를 가로지르는 경계
안
14307
녕하세요
171731
20 F0 9F 91
61138
8B
233
개별 토큰의 표시가 깨져 보여도 전체 바이트열의 왕복 복원은 성공할 수 있습니다.
09 · 직접 보기

실제 토큰 경계를 문장별로 비교해 보자

선택 상자에는 티크토큰 0.14.0의 o200k_base로 미리 실행하고 원문 왕복 복원까지 확인한 결과를 넣었습니다. 문장을 바꾸어 토큰 조각과 번호를 비교해 보세요. 이 실습은 표시된 예문을 미리 토큰화하고 기록한 실행 결과를 재현합니다. 브라우저에서 새 문장을 토큰화하는 기능은 제공하지 않습니다.

생각그림 9 · 실제 토큰 경계 실습

번호는 이 인코딩의 어휘표 안에서만 의미가 있습니다. 다른 토크나이저의 같은 번호와 직접 비교할 수 없습니다.
10 · 길이

모델의 문맥 길이는 토큰 수로 잰다

모델이 한 번에 다룰 수 있는 문맥의 한도와 서비스의 사용량은 보통 토큰을 기준으로 계산됩니다. 토큰 하나에 들어가는 한국어 글자 수는 표현과 인코딩에 따라 달라집니다. 같은 네 글자인 “생각그림”은 4토큰이고, 공백을 넣은 “생각 그림”은 3토큰입니다. 긴 문서를 준비할 때는 글자 수만 보고 단정하기보다 실제로 사용하는 모델과 인코딩에 맞는 토크나이저로 측정해야 합니다.

생각그림 10 · 서로 다른 두 개의 자
사람의 문서글자 수표시·편집 기준
모델의 입력토큰 수문맥·사용량 기준
평균 바이트 수는 경험적 평균입니다. 한국어 문장마다 보장되는 환산식이 아닙니다.
11 · 이용법

토큰을 줄이는 일보다 뜻을 지키는 일이 먼저다

반복되는 안내와 불필요한 서식을 정리하면 토큰을 줄이고 핵심 요청을 또렷하게 만들 수 있습니다. 그러나 조사를 무리하게 빼거나 문장을 전보처럼 줄이면 조건과 관계가 흐려집니다. 좋은 요청은 “대상·목적·자료·결과 형식”을 한 번씩 분명히 적고, 긴 참고 자료는 필요한 범위와 위치를 알려 줍니다. 필요한 뜻을 빠짐없이 담고 중복을 덜어 낸 문장이 실용적인 목표입니다.

생각그림 11 · 지울 것과 남길 것
정리할 것반복·장식같은 지시의 되풀이
남길 것대상·목적자료·형식·조건
토큰 절약은 정보 삭제보다 중복 정리에서 시작하는 편이 안전합니다.
12 · 다음 질문

같은 입력도 다음 답이 달라질 수 있다

토큰화는 문장을 번호의 줄로 바꾸는 첫 처리 단계입니다. 그 다음 모델은 지금까지 들어온 토큰을 바탕으로 다음 위치에 올 후보들의 점수를 계산합니다. 후보 선택 방식과 설정이 달라지면 같은 질문에서도 다른 답이 나올 수 있습니다. 다음 회에서는 토큰 상자들 뒤에 놓인 ‘다음 토큰 후보’와 선택 과정을 생각그림으로 따라가며, 무엇이 달라지고 무엇이 그대로인지 직접 확인합니다.

생각그림 12 · 토큰 다음에 계산되는 후보
지금까지의
토큰
→후보 점수↗후보 A후보 B후보 C
제3회에서는 후보 점수와 선택 설정을 교육용 모형과 관찰 가능한 결과로 구분해 살펴봅니다.

자료와 출처

  1. OpenAI, tiktoken — 바이트 페어 인코딩의 성질과 교육용 구현. 실제 예시는 티크토큰 0.14.0, o200k_base로 2026년 10월 4일 실행했습니다.
  2. OpenAI, tiktoken/_educational.py — 문자열을 바이트에서 시작해 병합하는 교육용 절차.
  3. 리코 센리치·배리 해도·알렉산드라 버치(2016), 「희귀어를 하위 단어 단위로 처리하는 신경망 기계번역」 — 하위 단어 BPE를 번역에 적용한 연구.
  4. 다쿠 구도·존 리처드슨(2018), 「SentencePiece: 신경망 텍스트 처리를 위한 언어 독립적 하위 단어 토크나이저」 — 공백을 포함한 원문에서 직접 학습하는 접근.
  5. 유니코드 컨소시엄, 최신 유니코드 표준 — 문자 부호화와 정규화의 기준.