We hired one colleague for every department.
Last Tuesday, marketing asked Viktor to write the weekly campaign recap, pull performance from Google Ads and Meta, and format it as a PDF for the exec team. Done in four minutes.
That same afternoon, engineering asked Viktor to review three open pull requests on GitHub, cross-reference with the Linear sprint board, and flag anything blocking the release. Posted to private channel before standup.
At 9pm, ops asked Viktor to draft a vendor contract summary from three Notion docs and send it to the team. It was in #ops by morning.
None of them knew the others were using it.
Same colleague. Three departments. That's what changes when your AI coworker lives in Slack, where your whole company already works. It's not a tool one person logs into. It's a teammate everyone messages.
5,700+ teams. SOC 2 certified. Your data never trains models.
"Viktor is now an integral team member, and after weeks of use we still feel we haven't uncovered the full potential." - Patrick O'Doherty, Director, Yarra Web
말하자면 입만 아픈 이야기이긴 하지만, ‘거의 3~4년째 하루가 멀다하고 수많은 뉴스가 쏟아지고 있는’ AI 분야.
가끔은, 가장 ‘기본으로 돌아가서’ 찬찬히 다시금 핵심적인 요소들을 살펴보는 게 마음을 차분하게 해 주기도 합니다. 시시각각 등장하는 뉴스로부터 오는 불안감을 줄여주기도 하고, 그 뿐 아니라 우리가 맞닥뜨리는 이 변화의 근본에 있는 원천적인 요소를 더 확실하게 파악할 수 있게 도와주기 때문이겠죠.
그런 의미에서, 오늘은 ‘토큰(Token)’에 대해서 이야기를 해 볼까 합니다. AI를 움직이는 한가운데 있는 이 토큰 말이죠.
누구나 알고 있다고 생각하는 용어일지 몰라도, 사실은 그리 단순하지는 않아요. 생성형 AI를 이해하고 싶다면, 토큰이 실제로 뭔가 이해하는 건 큰 도움이 됩니다.
오늘, 정말 토큰이 뭔지, 어떻게 만들어지는지, 왜 토큰화의 유형이 중요한지, 그리고 어떻게 이 토큰이라는 게 새로운 화폐로 자리매김하고 있는지에 대한, 기초적이지만 중요한 내용을 파헤쳐 볼 겁니다.
아마, 이 글을 읽으시고 나면, 생성형 AI에 대해 쏟아지는 뉴스를 좀 더 근본적인 차원에서 이해하게 될지도 모릅니다!
오늘 에피소드에서는 아래와 같은 내용을 다룹니다:
맺으며
보너스: 참고자료
토큰이란 무엇인가?
아마 이 글을 읽으시는 여러분은 하루에도 여러 차례 생성형 AI 서비스를 쓰실 거라고 생각해요. 그래서 매일 ‘토큰’을 접하고 사는 셈입니다. 근데, 정확히 토큰이라는게 뭘까요? 그리고, 모델이 도대체 어떻게 ‘정보를 보는’ 걸까요? 아니, 애초에 본다는게 뭘까요?
모델이 정보를 보는 방식은 사람의 방식과는 다릅니다. 모델은 단어 그 자체나 문장, 또는 사람이 이해하는 것 같은 의미 그 자체를 볼 수는 없어요. 모델의 모든 작업은 바로 ‘토큰(Token)’에서 시작되는데, 이 토큰은 ‘텍스트를 처리하기 전에, 아주 잘게 쪼갠 작은 단위’예요. 이 토큰들이 ID로 변환되고, 다시 벡터(Vector)로 바뀝니다. 그러고 나서야 바로 모델이 입력을 받아서 일을 시작하는 거예요.
다소 기술적인 이야기로 들릴 수는 있지만, 이 과정은 아주 중요한 과정이예요 - 토큰이라는 놈이 바로 모델이 정보를 읽어 들이는 단위이기도 하고, 모델이 얼마나 많은 텍스트를 처리할 수 잇는지, 얼마나 빨리 응답하는지, 메모리를 얼마나 사용하는지, 그리고 실행에 비용이 얼마나 드는지를 결정하고 설명하는 단위이기도 하거든요. 토큰을 일컬어서 ‘생성형 AI의 기본 화폐(Currency)’라고 부르는 이유도 바로 여기에 있습니다.
여기서, 우리의 일반적인 생각에 어긋나지만 항상 잘 기억해 둬야하는게 하나 있습니다 - 토큰은 단어와 다른 거라는 점이예요. 토큰은 단어 전체일 수도 있고, 단어의 일부일 수도 있고, 구두점이나 공백, 또는 모델이 하나의 단위로 취급하게끔 학습된 특정한 문자열일 수도 있습니다. 그렇게, 모델이 언어를 생성하려면, 먼저 언어를 모델이 셀 수 있는 어떤 조각들(토큰)로 쪼개는 과정이 선행되어야 합니다.

Image Credit: OpenAI
실제로는, 자주 쓰이는 일반적인 단어들은 많은 경우에 하나의 토큰으로 취급되기도 해요. 그렇지만, 잘 쓰이지 않거나 길이가 긴 단어들은 encod + ing처럼 더 작은 조각으로 나뉠 수 있구요. 이런 방식이 바로 모델이 유연성을 유지하는 비결입니다 - 모든 단어를 통째로 외우는 대신에, 재사용할 수 있는 조각들을 조합해서 작업하는 방식을 배우는 겁니다.
OpenAI가 제시하는 유용한 영어권의 가이드라인이 있는데요, 보통 1토큰은 대략 4자 내외, 또는 단어의 4분의 3 정도에 해당하고, 그래서 한두 문장은 대략 30토큰 정도가 됩니다. ‘대략’이라고 했으니, 실제 토큰 수는 사용하는 토크나이저(Tokenizer)와 언어에 따라 달라집니다. 같은 의미를 전달하더라도 언어에 따라서 더 많은 토큰이 필요할 수도 있어서, 언어별로 토큰 비용이 다르게 느껴질 수 밖에 없습니다.
영어는 아주 많은 경우에 ‘공백’으로 단어를 명확하게 구분할 수 있고, 용어가 길어도 재사용할 수 있는 덩어리로 나눌 수 있는 경우가 많아서, 주로 단어 단위, 하위 단어(subword) 단위로 토크나이징을 합니다. 반면에, 중국어 같은 경우는 작동 방식이 다릅니다. 단어 사이에 공백이 없고 한 글자 자체가 이미 의미를 담고 있는 경우가 많잖아요? 그래서, 토크나이징이 글자 단위에 더 가깝게 되는 경향이 있습니다. 동일한 문장이라고 해도, 영어와 중국어 간에 토큰 숫자가 많이 달라지는 이유가 바로 이것 때문입니다.
그렇다면, 가공되지 않은 텍스트들이 모델이 처리할 수 있는 형태로 변하는지 그 과정을 알아볼까요?
토큰화: 텍스트에서 토큰을 추출하는 방법
말씀드린 바와 같이, 모델이 텍스트를 처리하기 전에 반드시 토큰화 과정을 거칩니다. 그리고 이 때, 상당히 흥미로운 일들이 벌어져요.
현대적인 AI 시스템이라면, 아마 대개 하위 단어(Subword)를 토큰화하는 방식을 쓰는데, 이 방식이 ‘단어 단위’와 ‘문자 단위’ 토큰화라는 두 가지 방식 간의 절충점을 찾은 거라고 할 수 있을 겁니다. 이 방식은 어휘 사전의 크기를 비교적 작게 유지하면서도, 드물게 나타나거나 처음 보는 단어를 의미 있는 작은 조각으로 쪼개어서 모델이 처리할 수 있게 해 주는 장점이 있습니다.
이런 세부적인 사항이 중요한 이유는, 텍스트를 나누는 방식에 따라서 모델이 정보를 읽어들이는 작업의 효율성, 수용할 수 있는 컨텍스트의 양, 그리고 때로는 언어 간의 성능 차이까지 많은 차이가 날 수 있기 때문입니다.
꼭 알아두어야 할 세 가지의 핵심적인 토큰화 접근 방식, 바로 BPE(Byte Pair Encoding), WordPiece, 그리고 SentencePiece입니다.
각각의 방식, 그리고 몇 가지 추가적인 대안에 대해서 간단히 살펴볼께요.
BPE (Byte Pair Encoding)
BPE는 가장 자주 함께 나타나는 문자 쌍을 결합하면서 단계적으로 토큰을 구축하는 방법입니다.
처음에는 개별 문자 단위로 시작하니까, 모든 단어를 우선 글자 단위로 쪼갭니다. 그런 다음에 학습 텍스트 전체를 훑으면서 가장 자주 인접해서 나타나는 문자 쌍을 찾아서 하나의 새로운 단위로 합칩니다. 이 과정을 정해진 횟수만큼 반복하는 겁니다.
예를 들어서 't'와 'h'가 유독 자주 붙어서 나온다면, 모델은 이를 묶어서 'th'라는 하나의 단위를 만듭니다. 나중에 이 'th'가 다시 'e'와 자주 어울린다면, 이번엔 'the'라는 더 큰 토큰이 탄생합니다. 이런 식으로 반복하다 보면, 자주 쓰이는 단어 조각들이 결국 하나의 독립된 토큰으로 완성되는 원리입니다.

Image Credit: “Neural Machine Translation of Rare Words with Subword Units” 논문
BPE 토크나이저의 핵심은, 미리 학습해둔 '결합 레시피(merge rules)' 목록이라는 겁니다. 자주 붙어 다니는 글자들은 아예 한 덩어리의 토큰으로 묶어버리지만, 가끔 나오는 단어들은 부분적으로만 묶어두는데 그러다 보니 아주 흔하게 쓰이는 단어들은 결국 하나의 토큰으로 깔끔하게 합쳐지게 되죠.
중요한 건, AI가 문장을 읽을 때(추론할 때)마다 매번 이 계산을 새로 하는 게 아니고, 미리 만들어둔 '결합 규칙'을 순서대로 꺼내서, 들어오는 텍스트에 기계적으로 적용할 뿐이라는 겁니다.
BPE는 GPT, LLaMA, Mistral 같은 유명한 모델들이 모두 채택하고 있을 만큼 표준적인 방식이고, 워낙 많이 쓰이다 보니 이걸 조금씩 비틀어 놓은 변형 버전들도 함께 알아두면 좋습니다.
BPE-dropout
BPE-dropout은 AI가 공부할 때 토큰화 방식이 너무 한 가지 방식으로만 굳어지지 않게 하기 위해서 '무작위성'을 주는 기술입니다. 원래 BPE대로라면 합쳐져야 할 글자들도, 학습 중에 일부러 가끔씩 결합하지 않고 건너뛰어 봅니다. 그렇게 해서 똑같은 단어라도 매번 조금씩 다른 모양으로 쪼개지게 되죠.
예를 들어, 평소라면 unrelated라는 단어를 통째로 하나로 읽겠지만, 드롭아웃을 적용해서 때로는 un + relate + d처럼 조각조각 나눠진 상태로도 읽어보는 식입니다.
이렇게 하는 이유는 간단한데, AI가 단어를 통째로 암기해 버리지 않고, 그 안에 담긴 구조(접두사, 어근, 접미사 등)를 더 깊게 파헤치고 이해하게 만들기 위해서입니다. 이렇게 모델을 훈련하면, 훨씬 더 유연하고 튼튼한 언어 능력을 갖추게 됩니다. (단, 훈련이 끝나고 실제 시험 - 테스트 - 을 치를 때는 다시 정해진 규칙대로만 쪼개는 표준 방식을 사용합니다.)

Image Credit: BPE-Dropout 오리지널 논문
Byte-level BPE
이 방식은, 한 단계 더 깊이 들어가서 문자나 단어가 아닌 바이트(Byte) 단위를 기준으로 작동하는데, 어휘 사전에서 벗어나는 데이터가 사실상 없게 됩니다. 아주 생소한 단어나 이모지, 혹은 서로 다른 문자 체계를 가진 텍스트라도 결국 바이트 단위로 쪼개서 처리할 수 있으니까요. 이 기법은, 정제되지 않은 복잡한 텍스트를 다룰 때라든가, 표준적인 토큰화 방식이 비효율적일 수 밖에 없는 언어를 처리한다거나 할 때 특히 유용합니다.

Image Credit: Bit-level BPE 오리지널 논문
WordPiece
WordPiece는 Google이 개발한 방식으로, 당연하게도(?) BERT 계열의 모델을 통해서 잘 알려졌습니다. BPE와 유사하지만, 내부적인 작동 논리와 합치는 기준에는 명확한 차이가 있습니다.
BPE와 마찬가지로 WordPiece도 개별 문자같은 작은 단위에서 시작해서 점진적으로 더 큰 단위를 구축해 나가지만, 특정한 단위의 조각이 단어의 시작 부분에 있는지 아니면 중간에 있는지를 추적한다는 점이 특징입니다. 예를 들어서 "word"라는 단어는 w, ##o, ##r, ##d와 같이 나뉠 수 있는데, 여기서 ##은 해당 조각이 독립된 단어가 아니라 앞의 조각과 연결되는 '같은 단어의 일부'임을 나타내는 약속입니다.
WordPiece의 흥미로운 점은, 단순히 가장 빈번하게 등장하는 문자 쌍을 결합하는게 아니라, 함께 자주 나타나되 각 조각이 개별적으로 쓰일 때는 상대적으로 빈도가 낮은 쌍을 선호한다는 건데요. 즉, 우연히 자주 마주치는 관계보다 서로가 아니면 의미가 퇴색되는 '특정한 조합'을 우선시하는 경향이 있습니다. 그래서, 모델을 돌려보면 공통적인 어근, 접두사, 접미사처럼 우리 사람에게도 의미 있게 느껴지는 하위 단어 단위들이 더 정교하게 만들어지곤 합니다.
예를 들어서, 모든 단어를 완전히 별개의 토큰으로 취급해서 어휘 사전을 낭비하는 대신에, 공통된 조각을 재사용합니다. 그래서 "playing"은 play + ##ing으로, "lowest"는 low + ##est로 효율적으로 나눌 수 있습니다. 'play'나 'low'라는 핵심 의미는 유지하면서 문법적 변형만 분리해내는 방식입니다.
실제 문장을 처리(추론)할 때, WordPiece는 학습 때 했던 복잡한 확률 계산을 일일이 반복하지 않고, 이미 완성된 어휘 사전을 기준 삼아서 단어의 왼쪽부터 사전에 있는 조각 중 가장 길게 일치하는 것부터 하나씩 떼어냅니다. 만약 사전에 없는 생소한 단어를 만나면 해당 단어는 '알 수 없는 토큰(unknown token)'으로 처리됩니다.
결론적으로 WordPiece는 토큰화가 단순히 텍스트를 기계적으로 자르는 작업이 아님을 보여줍니다. 어떤 조각들을 하나로 묶어서 유지할 때 모델이 언어의 구조를 가장 잘 파악할 수 있을지를 수학적 확률로 결정하는 고도화된 과정이라고 할 수 있습니다.
SentencePiece
이와는 대조적으로, SentencePiece 토크나이저는 단어가 이미 공백으로 구분되어 있다고 가정하지 않습니다. 띄어쓰기를 포함한 원본 텍스트(Raw Text)를 하나의 긴 문자열 시퀀스로 보고 그 안에서 처음부터, 직접 패턴을 학습합니다.
이 방식은 띄어쓰기조차 _와 같은 일반 문자처럼 취급해서 시퀀스 자체에서 하위 단어 단위를 익히기 때문에, 특정한 언어의 문법이나 규칙에 구애받지 않습니다. 그래서 띄어쓰기 규칙이 제각각인 언어나 아예 공백이 없는 언어까지 아우르는 다국어 시스템에 아주 적합하고 강력한 선택지가 됩니다.
SentencePiece의 가장 중요한 설계 원칙 중 하나는 무손실 토큰화(Lossless Tokenization)입니다. 공백을 일반 기호처럼 취급하고, 보통은 명시적인 표시를 남기는데, 이렇게 하기 때문에 토큰화된 결과로부터 원본 텍스트를 정확하게 재구성할 수 있습니다. 즉, 토큰화와 역토큰화(Detokenization)가 완전히 가역적인 연산이 됩니다.
예를 들어서, 다음과 같은 문구는:
Hello world
아래와 같이 토큰화될 수 있습니다:
▁Hello + ▁world
여기서 특수 기호 ▁는 토큰 앞의 공백을 나타냅니다. 공백 자체가 토큰화 결과물 안에 보존되는 것이죠.
조금 더 긴 문구:
I love tokenization
이 문구는 학습된 어휘 사전에 따라서 다음과 같이 나뉠 수 있습니다:
▁I + ▁love + ▁token + ization
또는 이렇게요:
▁I + ▁love + ▁tokenization
다른 토크나이저들과 마찬가지로 SentencePiece는 학습 과정에서 고정된 크기의 어휘 사전을 구축하게 됩니다. 추론 시에는 텍스트를 정규화하고, 학습된 모델을 통해서 하위 단어 단위로 쪼갠 뒤에 이를 토큰 ID로 매핑합니다.
알아둘 만한 다른 토큰화 기법들
시스템의 목적에 따라서 텍스트를 토큰으로 나누는 방법은 다양합니다.
n-gram 토크나이저: 텍스트를 고정된 길이의 작고 중첩되는 문자 덩어리로 나눕니다. 예를 들어서 "search"를 3-gram으로 나누면 "sea", "ear", "arc", "rch"가 됩니다. 이 덩어리들은 단어 위를 한 단계씩 미끄러지듯 이동하면서 생성됩니다. n-gram이 작을수록 유연성이 높아지고, 클수록 정밀도가 높아집니다. 이 방식은 주로 검색, 자동 완성, 맞춤법 검사 등에 유용합니다.
Unigram 언어 모델 토크나이저: 확률론적인 접근 방식을 취하는 기법으로, 가능한 하위 단어들의 거대한 집합에서 시작해서 각각의 조각이 나타날 확률을 학습합니다. 단어나 문장이 여러 방식으로 나뉠 수 있을 때, 가장 확률이 높은 분할 방식을 선택하거나 학습 중에 다양한 분할을 샘플링할 수 있습니다. 예를 들어서,
u+n+happiness대신un+happi+ness를 선택하는 식입니다. 이런 유연성 덕분에 하위 단어 정규화(Subword Regularization)에 효과적입니다.
하이브리드 토크나이저: 터키어처럼 어근, 접두사, 접미사가 결합되어서 단어가 형성되는, 형태론적으로 풍부한 언어를 위해서 설계되었습니다. 이런 경우에는, 먼저 언어적 구조에 따라 단어를 분리하고, 익숙하지 않은 부분에 대해서만 하위 단어 방식을 적용하기도 합니다. 따라서 단어 전체를 하나의 단위로 취급하는 대신, 토크나이저는 이걸 어근과 접미사 같은 의미 있는 부분들로 분리하고, 그래서 어미에 많은 의미가 함축되어 있는 언어들에서 아주 유용합니다.

Image Credit: “Tokens with Meaning: A Hybrid Tokenization
Approach for Turkish” 논문
종합해 보면, 토큰화는 ‘언어를 위한 학습된 압축 방식’이라고 이해하는 게 가장 정확합니다. 자주 나타나는 패턴은 하나의 단위로 묶고, 흔치 않은 문자열은 더 작은 단위들의 조합으로 남겨두는 것이죠.
자, 그럼 다음 단계는 이 토큰들을 가지고 뭘 하느냐를 알아봐야겠죠?
AI 모델이 토큰을 처리하는 방식
현재 생성AI 시대의 가장 보편적인 아키텍처라고 하면 아무래도 ‘트랜스포머’니까, 이걸 예로 들어서 토큰이 모델 내부에서 어떻게 이동하는지를 가지고 토큰 처리 방식을 이야기해 볼께요 - ‘토큰의 라이프사이클’이라고나 할까요?
앞선 단락에서 이야기한 여러 방식으로 텍스트가 ‘토큰화’되고 나면, 각 토큰은 고유한 숫자 ID로 변환이 됩니다. 모델 입장에서, 이 토큰은 이제 계산의 기본 단위가 되는 거예요.
토큰에서 벡터로
그렇지만, 모델이 토큰 ID를 직접 가지고 작업하는 건 아닙니다. 먼저 각 ID를 임베딩(Embedding), 즉 학습된 숫자 벡터로 매핑을 합니다. 이건, 해당하는 토큰에 대한 모델의 ‘내부적 표현(Internal Representation)’이라고 생각하면 됩니다.
근데 또 하나 잊지 말아야 할 건, 토큰에는 순서도 필요하다는 거예요. 순서가 없다면 모델이 "개가 사람을 문다"와 "사람이 개를 문다"의 차이를 알 수 없을 거잖아요? 그래서 트랜스포머가 각 토큰에 위치 정보(Positional Information)를 추가합니다. 모델마다 ‘로터리 위치 인코딩(RoPE)’ 등 서로 다른 방식을 사용하지만, 핵심 아이디어는 같습니다. 모델이 토큰 단위로 위치를 추적한다는 점이예요.
토큰 간의 상호작용
그다음 단계는 트랜스포머의 핵심 개념 중 하나인 ‘셀프 어텐션(Self-attention)’입니다. 이 단계에서 각각의 토큰이 동일한 시퀀스 내의 다른 토큰들을 ‘살펴보고’, 자기 스스로의 의미를 파악하는 데 뭐가 중요한지를 결정합니다.
여기서 흥미로운 점이 있는데, 토큰은 그 자체로 고정된 의미를 갖지는 않고, 주변 토큰에 따라 그 의미가 변한다는 것이죠. "배"라는 단어가 어떤 문장에서는 먹는 과일을, 다른 문장에서는 타는 배를 의미할 수 있는 이유가 바로 이 때문입니다. 문맥이 토큰을 변화시키는 겁니다.
이 역시, 왜 AI에서 토큰이 그렇게 중요한지를 잘 보여주는 예시라고도 하겠습니다. 모델 계산의 상당 부분은 시퀀스 전반에 걸친 토큰 대 토큰의 상호작용을 중심으로 이루어집니다.
모델이 텍스트를 생성하는 방법
추론 시에 모델은, 다음 토큰을 예측하고, 그 다음 토큰을 예측하는 과정을 반복합니다. 이걸 자기회귀적(Autoregressive) 생성이라고 부르는데, 문장 전체를 한 번에 만들어내는 게 아니라, 토큰 예측의 흐름을 만들어내고 이걸 다시 사람이 읽을 수 있는 텍스트로 디코딩하는 방식입니다.
응답 길이가 출력 토큰 수로 측정되는 이유도 여기에 있습니다. 모델은 말 그대로 답안을 한 번에 한 토큰씩 쌓아 올리고 있는 셈이니까요.
다소 기계적으로 들릴 수 있지만, 그래도 이게 현대적 AI의 가장 매혹적인 부분이기도 합니다. 우리가 유창한 언어로 경험하는 모든 게 실제로는 길이가 긴 토큰을 추측하는 연속선상에서 시작된다는 사실 말이죠.
토큰이 너무나 중요한 이유
이미 말씀드린 것처럼, 토큰은 AI의 핵심 근간입니다. 모든 프롬프트는 입력 토큰을 소비하고, 모델의 모든 응답은 출력 토큰을 사용합니다. 긴 대화는 이전의 토큰들을 재사용하거나 재처리하고, 도구 사용(Tool use)이나 확장된 추론 과정은 더 많은 토큰을 쓰죠. 트랜스포머를 비롯한 AI 모델들은 본질적으로 토큰을 기반으로 작동합니다.
이렇게 이루어지는 작업의 모든 단계에서 바로 토큰이 모델의 품질을 결정하고, 토큰화 방식이 중요하게 작용합니다. 단어 단위의 어휘 사전은 그 크기가 감당할 수 없이 커지고, 문자 단위의 어휘 사전은 의미가 약한 너무 긴 시퀀스를 만들어내죠. 그래서, 하위 단어(Subword) 토크나이징이 LLM의 실용성을 실제로 높여주는 절충안이 됩니다 - 효율적인 학습이 가능할 만큼 어휘 사전을 작게 유지하면서도, 등록되지 않은 단어들을 처리할 수 있을 만큼 표현력이 풍부한 요소들을 제공하니까요.
그리고, 토큰은 모델이 한 번에 얼마나 많이 '기억'할 수 있는지를 결정하는 요소입니다. 모델의 컨텍스트 윈도우(Context Window)는 페이지나 단어 수가 아닌 토큰 단위로 측정되는 거 잘 알고 계실 테죠? 바로 모두에게 편리한 통합된 척도가 토큰인 거죠.
컨텍스트 윈도우란?
모델이 한 번에 검토할 수 있는 토큰화된 정보의 최대량 (대화 기록과 출력 가능 용량 포함)
가장 일반적인 컨텍스트 윈도우 사이즈는 128k 토큰이고, 물론 이 사이즈를 최대한 크게 만드는 게 추세입니다. 이 거대 컨텍스트 윈도우 사이즈 관점에서의 대표 주자들은 아래와 같습니다:

컨텍스트 윈도우가 커지면 이전 내용을 잊어버리지 않고도 더 긴 대화, 방대한 문서, 혹은 복잡한 코드 뭉치를 다룰 수 있습니다. 따라서, 긴 PDF 파일, 전체 코드 베이스, 또는 대화 기록을 관리한다는 게 본질적으로는 토큰 배분과 관련된 예산 문제가 되는 겁니다..
결국, 토큰은 '돈'과 직결됩니다. AI 서비스의 가격 책정은 토큰을 기준으로 이루어지기 때문이죠. 컨텍스트 제한, 출력 제한, 호출 속도 제한(rate limits), 그리고 API 과금 체계까지 모두 토큰으로 표현됩니다. 그래서, 토큰은 모델이 정보를 읽는 방식일 뿐만 아니라, 전체 시스템을 측정하고, 제약하고, 판매하는 기준이 됩니다.
토큰의 경제학
반복해서 말씀드리지만, 토큰은 명실상부하게 생성형 AI의 가격 책정 단위입니다. AI 호출 비용이 얼마인지, 프롬프트에 얼마나 많은 문맥을 담을 수 있는지, 그리고 시스템의 응답 속도가 얼마나 빠를지를 결정하죠. 생각해 보면, '언어가 측정 가능한 인프라로서 기능한다’는, 기묘하면서도 중요한 현실이 만들어 진 셈인데요. 모든 지시사항, 업로드된 문서, 예시, 그리고 생성된 단락 하나하나가 토큰으로 변환되어서 집계됩니다.
우리가 사용하는 일상 생활에서의 언어는 ‘공짜’일지 몰라도, 생성형 AI 세계에서의 ‘언어’, 즉 ‘토큰’은 공짜가 아닌 것이죠. 대부분의 서비스 제공업체는 입력 토큰과 출력 토큰의 비용을 별도로 청구합니다. 대개 출력 비용이 더 비싼데, 텍스트를 읽는 것보다 생성하는 데 더 많은 연산 자원이 필요하기 때문이예요. 일부 시스템은 캐시된 토큰(cached tokens)을 할인된 요금으로 계산하기도 하고, 추론이나 생각(reasoning/thinking) 토큰을 별도의 범주로 표시하기도 합니다.
여기서, 이해를 돕기 위해서 간단히 용어를 정리해 보겠습니다:
입력 토큰 (Input tokens): 여러분이 요청(프롬프트)으로 보내는 토큰입니다.
출력 토큰 (Output tokens): 모델이 생성해낸 토큰입니다.
캐시된 토큰 (Cached tokens): 이전 문맥에서 재사용된 토큰입니다(프롬프트/컨텍스트 캐싱이 존재하는 경우인데, 대개 할인된 요율이 적용됩니다).
추론/생각 토큰 (Reasoning/thinking tokens): 일부 시스템은 내부적인 '생각' 과정을 별도의 수치로 공개하고, 어떤 곳은 출력 비용에 이 생각 토큰 비용이 포함된다고 명시하기도 합니다.
아래는 가장 인기 있는 모델들의 가격표입니다 (2026년 4월 15일 기준):

이렇게 구분되어 있는 구조는 곧 효율성에 대한 강력한 동기부여를 만들어냅니다. 가능한 한 문맥(Context)을 재사용하고, 불필요한 출력은 하지 않게끔 하고, 프롬프트를 명확하게 유지하되 군더더기를 없애는 것이 너무나 중요해지는 겁니다. 이제 AI와 함께 일한다는 건 바로 곧 '토큰을 얼마나 잘 패키징하고 재사용하느냐'라는 운영의 영역이 되었습니다.
여기에 또 다른 반전이 있습니다. 서비스 제공업체들이 토큰당 비용을 청구하기 때문에, 사람이 보기엔 똑같은 1,000자 분량의 문단이라도 토크나이저, 모델, 그리고 언어에 따라 비용이 더 많이 들거나 적게 들 수 있습니다. '토큰화 효율(하나의 토큰에 얼마나 많은 문자를 압축해 담느냐)'이 사람이 읽는 텍스트가 동일하더라도 비용과 지연 시간(Latency) 모두에 직접적인 영향을 미치는 것이죠.
그렇다면, 더 큰 질문이 떠오르기 마련이죠 - 기업들이 과연 전체적인 효율성을 위해서 토큰화와 가격 정책을 최적화하고 있는 것인지, 아니면 수익을 극대화하기 위해 최적화하고 있는 것인지 하는 질문 말이예요.
오픈 모델에서의 토큰 경제는 어떠한가?
그런데, 오픈 모델은 토큰 경제학에서 조금 다른 역할을 수행합니다. 보통 오픈 모델 제공사들은 API 제공업체들처럼 토큰당 비용을 청구하는 방식으로 수익을 내지는 않습니다. 대신에, 토큰 자체가이 곧 사용자의 비용이 되는 셈입니다 - 더 많은 토큰을 처리할수록 더 많은 연산 자원과 전력, 그리고 인프라가 필요하잖아요?
이런 변화로, 최적화의 책임이 어디에 있느냐가 달라집니다. 폐쇄형 API를 사용할 때는 제공업체가 추론 인프라를 관리하고 관리형 토큰 경제 구조를 제공하는 거라서, 사용자는 예측 가능한 토큰당 가격을 지불하고, GPU 가동률이나 배칭(Batching), 서버 효율성에 대한 고민은 업체가 대신 - 보통 - 합니다. 반면에 오픈 모델의 경우에는, 핵심 질문이 "이 업체가 100만 토큰당 얼마를 받는가?”가 아니라 "우리 팀이 이 모델을 얼마나 효율적으로 구동할 수 있는가?"로 옮겨가는 겁니다.
이 질문에 대한 답변은 천차만별입니다. 동일한 오픈 모델을 도입하더라도 양자화(Quantization), 배칭 전략, KV 캐시 관리, 투기적 디코딩(Speculative decoding), 서빙 프레임워크 선택 등 최적화 스택에 따라 토큰당 비용이 완전히 천지 차이로 달라지거든요. 오픈 모델은 토큰 경제를 없애는 것이 아니라, 이를 엔지니어링의 문제로 전환하는 역할을 하는 겁니다. 팀 간의 기술력 차이가 곧 실제 비용의 격차로 이어지는 셈이죠.
물론 '직접 구동'과 '토큰당 결제' 사이의 경계가 무 자르듯이 명확한 건 아닙니다. 그 두 가지 극단 사이에 엄청나게 성장하는 다양한 생태계가 있습니다. Together나 FriendliAI 같은 추론 제공업체들은 오픈 모델을 호스팅하면서 토큰 단위로 과금하기도 하고, Hugging Face는 오픈 모델의 핵심 배포 허브인 동시에 그 자체로 추론 서비스 제공자이기도 합니다. CoreWeave나 Lambda 같은 GPU 클라우드 플랫폼은 자체적인 배포 작업을 더 쉽게 할 수 있게금 해 줍니다. 누구든지 동일한 모델로 경쟁력있는 엔드포인트를 구축할 수 있기 때문에, 경쟁이 심화될수록 두 개의 계층 모두에서 가격 인하를 유도하는 효과가 발생합니다.
기업들이 오픈 모델을 선택하는 이유는 아마도 가격만은 아닐 겁니다. 데이터 프라이버시, 특정 도메인에 맞춘 미세 조정(Fine-tuning), 지연 시간 제어, 특정 제공업체에 대한 종속 탈피 등이 모두 고려 요소입니다. 또 품질 격차도 좁혀지고 있구요. Llama, Qwen, DeepSeek와 같은 모델들은 이미 수많은 작업에서 독점 모델들과 경쟁할 만한 수준이라는 평가를 받고 있습입니다. 이제 선택의 기준은 "싸지만 성능이 떨어지는 것"이 아니라 "비슷한 성능이지만, 대신 엔지니어링 투자를 직접 감당할 것인가"의 문제가 된 겁니다.
실제로 많은 기업이 하이브리드 구성을 선택합니다. 단순흔 대량 작업에는 저렴한 오픈 모델을, 고품질 작업에는 비싼 폐쇄형 모델을 쓰는 방식이 아닙니다. 커스터마이징이나 프라이버시, 대규모 경제성이 인프라 투자를 정당화할 만큼 숫자가 나올 때는 오픈 모델을 사용하고, 관리의 편의성이나 최첨단 성능, 빠른 배포가 중요할 때는 폐쇄형 모델을 사용하는 식의 논리가 적용됩니다.
맺으며
자, 이렇게 생성형 AI 이야기에서 너무나 자주 등장하는 ‘토큰’의 아주 기초적인 부분부터 이야기를 해 봤는데요. 정말 기초적이기는 하지만, 그렇기 때문에 절대 건너뛰어서는 안 될 토대라고 생각합니다.
토큰은 모델의 작동 방식, 구동 효율성, 처리 가능한 문맥의 양, 그리고 모든 제반 비용을 결정짓는 핵심적인 개념이자 기제입니다. 모델이 텍스트를 토큰으로 쪼개지 않고서는 처리할 수 없듯이, 우리도 토큰이 실제로 무엇인지, 그리고 시스템 스택 내에서 어떻게 움직이는지 이해하지 못한다면 AI 시스템에 대해 올바른 결정을 내리기 힘들지도 모르겠습니다.
모델의 설계, 사용자 경험, 그리고 비즈니스 비용을 하나로 묶어주는 단위인 토큰. 컨텍스트 윈도우, 지연 시간 예산, API 가격 정책, 그리고 오픈 모델과 폐쇄형 모델 사이의 엔지니어링적 절충안 등 모든 곳에서 토큰이 등장합니다. 그리고 이들을 둘러싼 경제 생태계는 지금도 계속 변화하고 있습니다. 가격으로 경쟁하는 제공업체들, 최적화로 경쟁하는 오픈 모델 팀들, 그리고 그사이에서 마진을 압축해 가면서 경쟁하는 추론 플랫폼들까지 말이죠.
현재 상황을 요약하자면 이렇습니다. 토큰은 초기 웹 시대의 '대역폭(Bandwidth)'이라든가, 클라우드 인프라 시대의 '컴퓨팅 시간(Compute-hours)'과 같은 겁니다. 그리고 가장 스마트한 애플리케이션이란 건, 결국 가장 많은 토큰을 쓰는 애플리케이션이 아니라 어떤 토큰이 보낼 가치가 있는지를 결정하는 애플리케이션이 될 겁니다.
보너스: 참고자료
What are tokens and how to count them? | OpenAI article
Neural Machine Translation of Rare Words with Subword Units | Paper
BPE-Dropout: Simple and Effective Subword Regularization | Paper
Bit-level BPE: Below the byte boundary | Paper
WordPiece tokenization | Hugging Face article
SentencePiece: A simple and language independent subword tokenizer
and detokenizer for Neural Text Processing | PaperSubword Regularization: Improving Neural Network Translation Models
with Multiple Subword Candidates | PaperTokens with Meaning: A Hybrid Tokenization Approach for Turkish | Paper
How Different Tokenization Algorithms Impact LLMs and Transformer Models for Binary Code Analysis | Paper
Attention Is All You Need | Paper
Context windows | Anthropic Docs

튜링 포스트 코리아의 인사이트가 담긴 컨텐츠를 마음껏 읽어보세요!
프리미엄 플랜으로 업그레이드하시면 튜링 포스트 코리아의 모든 컨텐츠를 제한없이 보실 수 있고, 튜링 포스트 코리아의 컨텐츠 제작에 큰 도움이 됩니다. 감사합니다!
주간 AI 뉴스레터
AI 유니콘 기업들에 대한 심층 분석 기사
AI 기술, 산업, 정책 전문가 인터뷰
AI 기술 및 산업에 대한 심층 분석 시리즈
분석 기사 요청 및 튜링 포스트 코리아 기고 기회 제공
읽어주셔서 감사합니다. 친구와 동료 분들에게도 뉴스레터 추천해 주세요!




