튜토리얼
1M Token이란? 초장문 컨텍스트 윈도우의 쓸모와 GPT·Claude·Gemini 비교
「100만 Token」은 더 똑똑한 채팅의 다른 이름이 아닙니다. 한 요청에서 모델이 동시에 볼 수 있는 예산입니다. 예산이 커져야 저장소 전체, 두꺼운 매뉴얼, 긴 녹음이 들어갑니다. 출력 상한, 요금 구간, 유효 리콜은 홍보 숫자와 함께 커지지 않습니다.
2026년 플래그십 모델 카드에는 거의 모두 1M Token이 적혀 있습니다. 제품 문구는 「책 한 권을 통째로」「저장소 전체를 한 번에」입니다. 선정 회의가 걸리는 숫자는 다른 쪽입니다. 이번 호출 비용, 출력이 잘릴지, 가운데 400K를 모델이 아직 기억하는지. 이 글은 1M Token을 공학 한도로 봅니다. 컨텍스트 윈도우의 용량 상한이지, 이해력 증명서가 아닙니다. 읽고 나면 자료가 대략 몇 Token인지 가늠하고, GPT·Claude·Gemini의 윈도우·출력·할증을 대조한 뒤, 어떤 JSON을 윈도우에 넣고 어떤 것은 브라우저에서 먼저 검증할지 정할 수 있습니다.
1M Token이란: 단위부터 맞추기
Token은 모델이 텍스트를 읽고 쓰고 과금하는 최소 단위입니다. 글자도 단어도 아닙니다. 흔한 영어 단어는 Token 하나보다 조금 긴 경우가 많고, 한글·중국어·코드·JSON 키·Base64·들여쓰기는 환산이 제각각입니다. 같은 OpenAPI 파일이라도 벤더와 tokenizer 버전에 따라 Token 수가 흔들립니다. 그래서 「1M Token」은 먼저 이 모델이 이번 요청에서 허용하는 칸 수입니다. 「한글 백만 글자」도 「영어 백만 단어」도 아닙니다.
| 윈도우 규모 | 감으로 보는 규모(자릿수일 뿐, 약속 아님) |
|---|---|
| 1 Token | 영어는 대략 0.7–1단어, 한글은 흔히 1–2글자, 코드와 JSON은 더 잘게 쪼개짐 |
| 8K–32K | 긴 글 한 편, 인터페이스 설명, 짧은 대화 |
| 128K–200K | 책의 상당 부분, 또는 중간 규모 저장소와 Agent 몇 턴 |
| 1M (약 100만–105만) | 두꺼운 매뉴얼 + 다중 파일 저장소 + 긴 이력의 규모. Claude 새 tokenizer에서는 같은 1M에 들어가는 순수 텍스트가 더 적은 경우가 많음 |
컨텍스트 윈도우(context window)는 한 요청에서 입력 + 출력 + 추론/thinking Token(따로 셀 때)이 함께 쓰는 예산입니다. 시스템 프롬프트, 도구 Schema, 검색 조각, 다중 턴 이력, 지금 생성하는 답까지 같은 우물에서 깁니다. 윈도우가 1M이라고 100만 Token 저장소를 넣고 12만 Token 보고서를 다시 쓰라는 뜻이 아닙니다. 출력도 윈도우를 먹고, 벤더마다 별도의 max output이 있습니다.
1M은 하드 용량으로 보는 편이 맞습니다. 칸은 있습니다. 가운데 아무 페이지나 같은 정확도로 읽힌다는 뜻은 아닙니다. 건초 더미에서 바늘을 찾는 것과, 멀티홉 추론·파일 간 대조·긴 JSON의 빠진 필드 점검은 다릅니다. 먼저 「이번에 동시에 보여야 할 것」을 묻고, 그다음 「본 뒤에 어떤 형태를 안정적으로 낼지」를 물으세요.
초장문 컨텍스트 윈도우가 실제로 하는 일
윈도우가 128K에서 1M으로 뛰면 바뀌는 것은 먼저 잘라야 하는가입니다. 예전에는 검색이나 요약이 필요했던 자료를 이제 한 묶음으로 넘길 수 있습니다. 본전이 나오는 일은 대체로 이렇게 생겼습니다:
- 저장소 전체 또는 대부분: 파일을 가로질러 호출 사슬을 쫓고, 두 구현을 비교하고, 인터페이스 정의와 테스트 픽스처를 한 요청에서 동시에 봅니다.
- 긴 문서와 계약: 정책 매뉴얼, 감사 작업지, 첨부가 여러 개인 PDF. 질문은 앞뒤가 동시에 있어야 하고, 한 페이지 키워드 히트로는 부족합니다.
- 멀티모달 큰 묶음: Gemini급 API는 텍스트, 이미지, 오디오, 비디오, PDF를 같은 윈도우에 넣습니다. 몇 시간짜리 오디오나 긴 영상을 먼저 슬라이스하지 않아도 됩니다.
- 긴 Agent 궤적: 도구 정의, 여러 번의 tool result, 실패한 재시도가 윈도우에 남아야 다음 홉이 전체 관찰을 보고 고릅니다. 루프 자체는
- 대조와 추출: OpenAPI 두 버전, 내보내기 JSON 두 벌, Schema 한 장을 같은 요청에 두고 diff급으로 읽은 뒤 Structured Output으로 구조화 차이를 냅니다.
이 일들의 공통점은 하나입니다. 답이 여러 자료를 동시에 보는 데 달려 있다. 일이 「십만 페이지에서 원문 한 문장을 찾는 것」이면 검색이 보통 더 싸고 더 안정적입니다. 1M 윈도우의 가치는 잘못된 슬라이스를 줄이는 것이지, 정보 설계를 폐기하는 것이 아닙니다.
과대평가된 쓰임도 있습니다. 사이트 로그 전체, DB dump, 비식별화하지 않은 운영 JSON을 프롬프트에 그대로 붙이는 일. 윈도우는 크고, 유출 범위와 청구서도 함께 커집니다. 윈도우에 넣을 수 있는 것은 이미 기기를 떠나도 된다고 정한 그 한 벌입니다. 민감 필드는 로컬에서 지우고, 형태가 틀린 JSON은 고친 뒤에야 「한 번에 넣자」를 이야기하세요.
명목 윈도우 ≠ 유효 윈도우: 입력, 출력, 과금
제품 페이지의 1M은 접수 상한입니다. 넘으면 거절되거나 잘립니다. 「100만 Token에서도 품질이 8K와 같다」가 아닙니다. RULER류 평가에서 유효 길이는 명목의 절반 안팎인 경우가 많고, 현장에서는 200K–500K를 넘기면 파일 간 대조가 빠지고 중간 지시가 잊힙니다. 공학적으로는 명목 윈도우를 천장으로 두고, 당신 회귀 세트를 유효 윈도우로 두세요.
두 번째로 놓치는 숫자는 최대 출력입니다. GPT-5.6 Sol / Terra와 Claude 플래그십 동기 요청은 약 128K입니다. Gemini 3.1 Pro 문서는 65,536이고, 기본 maxOutputTokens는 더 낮은 경우가 많아 명시적으로 올리지 않으면 조용히 잘립니다. 매뉴얼을 다 읽고 「같은 분량의 새 스펙을 쓰라」는 일은 윈도우에는 들어가도 출력은 모자랄 수 있습니다. 아래 예산은 출력과 여유를 처음부터 넣고, 다 넣은 뒤에 보지 않습니다:
{
"window": 1050000,
"budget": {
"system": 2400,
"tools": 1800,
"repoPack": 420000,
"docs": 180000,
"history": 80000,
"reservedOutput": 128000,
"headroom": 238800
},
"rule": "never fill to the sticker; reserve output plus 20 percent headroom"
}
세 번째 숫자는 돈입니다. OpenAI는 GPT-5.6 Sol / Terra에 대해, 입력이 약 272K Token을 넘으면 요청 전체를 입력 2배·출력 1.5배로 친다고 적습니다. Gemini 장문 컨텍스트는 다른 할증 구간이 흔한 편입니다(문서는 128K 또는 200K를 경계로 두는 경우가 많습니다. 주문 전에 현행 요금표를 확인하세요). Claude Sonnet 5 문서는 1M을 기본 윈도우·표준 요금으로 쓰고, 「장문 컨텍스트 켜기」 스위치는 없습니다. 다만 tokenizer가 더 잘게 쪼개면 같은 글자가 더 많은 Token이 되어 실효 비용은 결국 오릅니다. Prompt cache는 반복 접두어에는 도움이 됩니다. 호출마다 바뀌는 큰 묶음에는 소용없습니다.
2026 비교: GPT, Claude, Gemini
아래 표는 2026년 9월 공개 모델 카드의 플래그십만 모았습니다. 모든 스냅샷을 한 칸에 구겨 넣지 않았습니다. 숫자는 바뀝니다. 주문은 공식 페이지가 이깁니다. 선정을 가르는 축은 윈도우, 출력, 할증, 모달리티입니다.
| 축 | GPT-5.6 Sol / Terra | Claude Sonnet 5 / Opus 5 | Gemini 3.1 Pro |
|---|---|---|---|
| 컨텍스트 윈도우 | 1,050,000 | 1,000,000 (Haiku 4.5는 여전히 200K) | 1,048,576 |
| 최대 출력 | 128,000 | 128,000 (Batch는 더 높은 구간이 있음) | 65,536 (기본값은 더 낮은 경우가 많음) |
| 장문 컨텍스트 과금 | 입력 >272K: 요청 전체 2× 입력 / 1.5× 출력 | 문서: 1M이 기본, 별도 할증 구간 없음. 새 tokenizer는 더 잘게 쪼갬 | 128K 또는 200K 초과 할증이 흔함. 공식 요금표로 확인 |
| 입력 모달리티 | 텍스트, 이미지 | 텍스트, 이미지 (PDF 등은 플랫폼 기능) | 텍스트, 이미지, 오디오, 비디오, PDF |
| 같은 계열 주의 | Luna 윈도우는 약 400K. alias를 같은 용량으로 보지 말 것 | 같은 1M이라도 새 tokenizer는 순수 텍스트를 덜 담음. 다시 세세요 | 멀티모달이 가장 넓고, 출력 천장은 더 낮음. 장문 생성은 출력부터 계산 |
| 잘 맞는 일 | 긴 보고서, Responses 도구 체인, 128K 출력이 필요한 일 | 장문 추론, Agent 루프, 자료를 끝까지 읽고 답하는 안정성 | 저장소 + 오디오/비디오/PDF를 한 번에. 최종 답은 짧거나 Schema로 |
공식 출처는 모델 카드를 직접 보세요. 서드파티 표만 외우지 마세요. OpenAI의 GPT-5.6 Sol은 1,050,000 윈도우, 128K 출력, 272K 할증 선을 명시합니다. Anthropic의 Claude Sonnet 5 개요는 1M / 128K를 기본으로 둡니다. Google의 Gemini 3.1 Pro Preview는 입력 1,048,576과 출력 65,536을 적습니다. 가격과 스냅샷 이름은 바뀝니다. 연동 코드는 작년 상수가 아니라 usage 필드를 읽어야 합니다.
선택은 병목이 어디에 있느냐입니다. 한 번에 십만 Token에 가까운 마이그레이션 설명이나 긴 JSON 배열을 내야 하면, 윈도우보다 출력 상한이 더 급합니다. GPT와 Claude 플래그십이 더 넓습니다. 같은 요청에서 회의 녹음을 듣고 설계안과 저장소까지 보려면, Gemini의 모달리티가 진짜 차이입니다. 형용사가 아닙니다. 1M 안에서 멀티홉 수정을 하고 중간 지시를 잃으면 안 된다면, 명목만 믿지 마세요. 「바늘 세 곳, 모순 두 곳」짜리 당신 회귀 세트로 유효 리콜을 재세요. needle-in-a-haystack 한 번으로 끝내지 마세요.
세 곳 모두 도구 호출과 Structured Output을 지원합니다. 껍데기 필드는 다르고, 최종 JSON은 여전히 로컬에서 검증합니다. Gemini 쪽 「JSON이면 된다」와 「Schema의 필드를 낸다」의 스위치는 Gemini API JSON 출력 가이드를 보세요. 이 글은 SDK를 반복하지 않습니다.
언제 채우고, 언제 검색하는가
1M 윈도우는 RAG를 폐기하지 않습니다. 청크 경계를 뒤로 밀 뿐입니다. 결정은 네 줄로 충분합니다:
- 답이 A와 B를 동시에 봐야 한다(스펙 두 장, caller와 callee, Schema와 인스턴스) → 한 윈도우를 우선하세요. 각자 요약으로 자르지 마세요.
- 답이 「아주 큰 말뭉치에서 짧은 구간을 찾는 것」이다 → 먼저 검색한 뒤 히트와 메타데이터를 윈도우에 넣으세요. 검색 파이프라인을 건너뛰려고 272K 할증을 내지 마세요.
- 자료가 요청마다 바뀐다(새 diff, 새 내보내기) → 장문 컨텍스트는 비쌉니다. 캐시 가능한 접두어(시스템 프롬프트, 도구 목록, 안정된 매뉴얼)와 자주 바뀌는 묶음을 나누세요.
- 자료가 브라우저를 떠나면 안 된다(비밀키, 운영 사용자 필드) → 윈도우가 커도 올리지 마세요. 로컬에서 정리·검증·표본 추출을 한 뒤에야 클라우드 모델에 넣을지 정하세요.
Agent 루프는 윈도우를 특히 빨리 채웁니다. 매 단계 tool result가 남습니다. maxSteps 전에 이전 관찰을 요약하세요. 1M을 무한 로그로 쓰지 마세요. 루프 동작은 AI Agent란 무엇인가.
「통째로 넣는다」로 정해도 포장하세요. node_modules와 minified 번들을 1M에 넣지 마세요. 명시적인 context pack은 나중에 점검할 수 있습니다. 「저장소를 끌어다 넣는 것」은 그렇지 않습니다:
{
"pack": "context",
"files": [
{ "path": "openapi.json", "tokens": 12000, "role": "contract" },
{ "path": "schema.ticket.json", "tokens": 400, "role": "outputShape" },
{ "path": "fixture.valid.json", "tokens": 800, "role": "example" }
],
"omit": ["node_modules", "*.lock", "generated/**", "minified bundles"]
}
pack의 outputShape는 당신이 실제로 parse할 Schema여야 합니다. 모델이 지어낸 키 이름이 아닙니다. 형태를 고정하는 방법은 AI Structured Output.
장문 컨텍스트의 JSON: 로컬 검증이 먼저
초장문 윈도우가 키우는 것은 나쁜 입력의 피해 반경입니다. 쉼표가 빠진 내보내기, extra 필드가 폭증한 도구 회신, 이름은 같고 뜻이 다른 Schema 두 장. 40만 Token 안에 넣으면 눈으로 찾기 어렵습니다. 모델은 깨진 JSON을 따라 계속 지어 내고, 청구서는 그대로입니다. 장문 컨텍스트 워크플로는 업로드 전에 세 단계를 고정하세요:
- Parse: 윈도우에 넣을 파일이 각각 유효한 JSON / JSON5인지 확인하세요. 「비슷해 보이는」 로그나 잘린 내보내기가 아닙니다.
- Schema: 모델이 지키길 바라는 그 계약과 대조하세요. 파일이 여러 개면 아직 같은 출처인지도 먼저 확인하세요.
- Diff: 구·신 픽스처, 모델 arguments와 하류 body, OpenAPI 두 버전을 로컬에서 차이를 본 뒤에야 모델에게 「왜」 또는 「어떻게 고칠지」를 물으세요.
브라우저에서 끝낼 수 있습니다. 먼저 업로드할 필요는 없습니다. JSON 포맷으로 parse와 구조를 보고, JSON Schema 검증으로 필드와 enum을 고정하고, JSON Diff로 같은 윈도우에 들어갈 두 자료를 비교하세요. 검증에 실패한 파일은 pack에 넣지 마세요.
모델이 낸 긴 JSON도 구문이 깨지거나 형태가 흘러내릴 수 있습니다. 실패 층은 AI JSON 오류 가이드를 보세요. Agent 도구 arguments와 최종 답은 계약이 둘입니다. 윈도우 예산을 같이 썼다고 「이미 검증된 것」이 아닙니다.
자주 묻는 질문 FAQ
1M Token은 한글 백만 글자인가?
아닙니다. Token은 tokenizer가 자른 조각입니다. 한글, 영어, 코드, JSON, 이미지, 오디오의 환산이 모두 다르고, 같은 벤더가 tokenizer를 바꿔도 같은 1M에 들어가는 글자 수가 달라집니다. 자료가 얼마인지 알려면 그 모델의 tokenizer API로 재세요. 「페이지 수 × 경험 계수」로 대신하지 마세요.
윈도우가 모두 1M이면 어느 벤더를 골라도 같은가?
다릅니다. 출력 상한, 장문 할증, 모달리티, 유효 리콜이 멀리 갈립니다. GPT-5.6의 272K 할증 선, Gemini의 더 낮은 출력 천장, Claude 새 tokenizer의 잘게 쪼개짐은 「같은 1M」을 다른 청구서와 다른 절단점으로 만듭니다. 당신 회귀 세트로 재세요. 명목 윈도우만 맞추지 마세요.
1M 윈도우가 있으면 RAG는 필요 없는가?
필요합니다. 1M은 동시에 보여야 하는 그 한 묶음에 맞습니다. 말뭉치가 윈도우보다 훨씬 크거나, 매번 짧은 구간만 관련되면 검색이 더 싸고, 권한도 다루기 쉽고, 갱신도 쉽습니다. 많은 운영 시스템은 「검색으로 후보를 고르고 + 장문 윈도우로 정독」이지, 둘 중 하나가 아닙니다.
JSON 저장소를 통째로 넣었는데도 모델이 필드를 빠뜨리는 이유
윈도우는 「보이게」 할 뿐 「계약대로 말하게」 하지 않습니다. 필드 누락, 타입 드리프트, markdown 한 겹은 형태 문제입니다. Structured Output / Schema를 쓰고 로컬에서 다시 검증하세요. 가운데 자료가 희석되면 유효 리콜도 떨어집니다. 윈도우에 넣을 JSON은 유효하고, 같은 출처이며, 이미 diff한 것이어야 합니다.
요약과 다음 단계
1M Token은 2026년 플래그십의 공통 규모입니다. 한 요청이 대략 백만 Token을 동시에 볼 수 있습니다. 저장소 전체, 매뉴얼 한 권, 멀티모달 큰 묶음이 가능해집니다. 더 강한 추론, 더 긴 출력, 더 싼 단가로 자동 전환되지는 않습니다. GPT·Claude·Gemini의 갈림은 출력 상한, 할증 선, 모달리티이지 「1M이 있는가」라는 체크박스 하나가 아닙니다.
다음: 공식 tokenizer로 매뉴얼과 저장소를 재세요. 위 예산표대로 출력과 여유를 남기세요. 세 곳 모델 카드에서 할증 임계를 확인하세요. 윈도우에 넣을 JSON은 JSONVue에서 parse, Schema, Diff를 먼저 돌리세요. 형태를 못 박는 법은 Structured Output, 실패를 층으로 나누는 법은 JSON 오류 가이드입니다.