쉬운 설명
LLM은 글자나 단어 자체가 아니라 '토큰'을 단위로 다룹니다. 보통 'play', 'er', 'ing' 같은 부분 단어 조각이거나, 한국어에서는 한 글자 또는 두 글자 단위로 쪼개집니다. 같은 문장이라도 토크나이저(쪼개는 방법)가 다르면 다른 토큰열이 됩니다.
왜 단어가 아니라 토큰을 쓰나 하면 두 가지 이유 때문입니다. 첫째, 처음 보는 단어도 익숙한 조각으로 쪼개 처리할 수 있습니다('unbelievable' → 'un', 'believ', 'able'). 둘째, 어휘 크기를 줄여 모델을 작게 유지할 수 있습니다. 만약 모든 단어를 어휘에 다 담으면 수십만 단어가 되고 모델이 너무 무거워집니다.
대표 알고리즘은 BPE(Byte Pair Encoding), WordPiece, SentencePiece입니다. 모두 '자주 같이 나오는 글자 쌍을 합쳐서 토큰을 만든다'는 발상에 기반합니다. 예컨대 영어 코퍼스에서 'ing'이 자주 나오면 그것이 한 토큰이 되고, 'play'도 한 토큰이 되어 'playing'은 두 토큰이 됩니다. 한국어에서는 자모(ㄱ·ㅏ) 단위로 쪼개는 경우도 있어, 같은 글자 수의 한국어가 영어보다 더 많은 토큰으로 변환됩니다.
토큰화는 사용자 입장에서도 두 가지 의미에서 직접적인 영향이 있습니다. ① 모델 API 가격은 보통 '토큰당 얼마'로 매겨지므로, 입력·출력 길이를 토큰 기준으로 셉니다. ② 모델의 컨텍스트 윈도우도 토큰 단위입니다. 한국어는 영어보다 보통 1.5~2배 더 많은 토큰이 들어 같은 글자 수라도 비용이 더 들 수 있습니다.
주의할 점: 토큰화는 '문법적 단위'와 다릅니다. 사람 눈엔 한 단어로 보여도 모델에겐 여러 조각일 수 있고, 그 반대도 가능합니다. 그래서 모델이 '단어 단위로 정확히 글자 수를 맞추는' 일에 약합니다('정확히 10단어로 써 줘' 같은 지시에 자주 어긋납니다). 또 토크나이저가 다른 두 모델은 같은 자료를 다르게 보기 때문에, 시스템을 만들 때 어떤 토크나이저를 쓰는지 명확히 해 두는 것이 좋습니다.

비유로 보면
토큰화는 외국어를 처음 배우는 사람의 사전 사용법과 비슷합니다. 전체 단어를 외우기보다, 자주 보이는 조각(접두사·접미사)을 익혀 새 단어를 만나도 의미를 짐작합니다. 같은 영어라도 사전마다 조각을 자르는 방식이 조금 다른 것처럼, 모델마다 토크나이저도 조금씩 다릅니다.
어디에서 만나나
LLM의 입력 처리(필수), 검색 엔진의 색인, 음성 인식의 자막 단위, 코드 모델의 토큰화(공백·괄호도 토큰), 기계 번역, 그리고 토큰 단위 비용·길이 계산 — 모든 NLP 응용이 어느 단계에서든 토큰화를 거칩니다.
작은 예시
ChatGPT API에 한국어 100자 정도의 짧은 질문을 보내면, 그게 토큰으로는 약 70~120개로 쪼개집니다. 같은 의미를 영어로 쓰면 30~60 토큰 수준입니다. 이 차이가 곧 API 비용 차이가 됩니다.
자주 하는 오해
한 줄 정리
토큰화는 사용자에게 보이지 않지만 비용·속도·길이 한계의 시작점입니다. LLM을 쓰기 시작했다면, '내 입력이 몇 토큰이 되는가'를 한 번은 직접 세어 보세요.
