LLM의 Context Window란? 토큰과 컨텍스트 이해하기

 LLM을 공부하다 보면 토큰(Token), 컨텍스트(Context), 컨텍스트 윈도우(Context Window)라는 용어를 자주 만나게 된다. 특히 ChatGPT나 Gemini 같은 생성형 AI를 사용하거나 RAG, AI Agent를 개발하려면 이 세 가지 개념을 이해하는 것이 중요하다.

AI에게 긴 문서를 입력했는데 일부 내용을 놓치거나, 대화가 길어지면서 앞에서 이야기한 조건을 제대로 반영하지 못하는 이유는 무엇일까?

LLM과 Token Context


이 문제를 이해하려면 LLM이 정보를 처리하는 단위인 토큰과 한 번에 참고할 수 있는 정보의 범위인 컨텍스트 윈도우부터 살펴봐야 한다.

1. LLM의 Context Window란?

Context Window(컨텍스트 윈도우)는 LLM이 한 번의 처리 과정에서 참고할 수 있는 정보의 최대 범위를 의미한다. 일반적으로 토큰 개수로 표현하며, 모델마다 지원하는 크기가 다르다.

사람의 기억에 비유하면 컨텍스트 윈도우는 지금 대화하면서 머릿속에 펼쳐 놓고 참고할 수 있는 작업 공간과 비슷하다.

예를 들어 10페이지 분량의 문서를 읽고 질문에 답하는 상황을 생각해 보자. 문서 전체를 참고할 수 있는 모델이라면 여러 부분을 비교하면서 답변을 만들 수 있다. 반면 입력 가능한 범위를 초과한다면 문서를 나누거나, 중요한 내용을 요약하거나, 필요한 부분만 검색해서 전달하는 방법을 고려해야 한다.

컨텍스트 윈도우가 크면 긴 문서, 대규모 코드, 여러 차례의 대화 기록을 한 번에 처리하는 데 유리하다.

다만 컨텍스트 윈도우가 크다고 해서 모든 내용을 항상 완벽하게 기억하거나 정확하게 이해한다는 뜻은 아니다. 입력 가능한 용량과 실제 정보 검색 및 추론 능력은 구분해야 한다.

2. Token이란 무엇인가?

토큰(Token)은 LLM이 텍스트를 처리할 때 사용하는 기본 단위다. 사람이 읽는 단어와 토큰은 반드시 일치하지 않는다.

예를 들어 영어의 짧은 단어 하나가 토큰 하나로 처리될 수 있지만, 긴 단어나 특정 문자열은 여러 토큰으로 나뉠 수 있다. 한국어 역시 문장이나 단어가 항상 동일한 개수의 토큰으로 변환되는 것은 아니다.

따라서 글자 수나 단어 수만으로 정확한 토큰 개수를 계산하기는 어렵다.

토큰은 어떻게 나뉠까?

토큰화(Tokenization)는 입력된 텍스트를 모델이 처리할 수 있는 토큰 단위로 분리하는 과정이다.

예를 들어 다음 문장을 생각해 보자.

<pre><code>LLM은 문맥을 바탕으로 다음 토큰을 예측한다.</code></pre>

사람은 이 문장을 하나의 문장으로 읽지만, 모델은 내부적으로 토큰화된 입력을 처리한다. 실제 분리 결과는 모델이 사용하는 토크나이저에 따라 달라진다.

토큰은 텍스트에만 적용되는 개념도 아니다. 멀티모달 모델에서는 이미지, 오디오 등도 모델별 처리 방식에 따라 입력 자원을 사용한다.

토큰 수가 중요한 이유

토큰 수는 크게 세 가지 측면에서 중요하다.

  • 입력 제한: 모델이 처리할 수 있는 컨텍스트 윈도우를 초과하지 않아야 한다.

  • 비용: API 사용 시 입력 토큰과 출력 토큰의 개수에 따라 비용이 달라질 수 있다.

  • 응답 생성: 입력에 사용하는 토큰과 생성할 답변에 필요한 토큰을 함께 고려해야 한다.

특히 API를 이용해 긴 문서를 분석하거나 AI Agent를 구현한다면 토큰 사용량을 확인하는 과정이 필요하다.

3. Context Window와 Token의 관계

토큰과 컨텍스트 윈도우는 서로 밀접하게 연결되어 있다.

토큰이 정보를 세는 단위라면, 컨텍스트 윈도우는 그 단위로 측정한 정보가 들어갈 수 있는 최대 공간이다.

예를 들어 어떤 모델의 컨텍스트 윈도우가 128,000 토큰이라고 가정해 보자. 이 숫자가 곧 문서 128,000개를 처리한다는 뜻은 아니다. 텍스트, 지시사항, 대화 기록 등 입력에 포함되는 내용을 토큰 단위로 계산한 한도다.

일반적인 API 요청에서는 시스템 지시사항, 사용자의 질문, 이전 대화 기록, 도구의 응답 등이 컨텍스트를 차지할 수 있다. 모델에 따라 추론 과정이나 출력 토큰도 같은 전체 한도에 포함된다.

따라서 컨텍스트 윈도우가 128,000 토큰이라고 해서 그만큼의 토큰을 전부 사용자 입력에 사용할 수 있다고 단정해서는 안 된다. 입력과 출력의 한도 및 계산 방식은 모델별 문서를 확인해야 한다.

4. Context Window가 커지면 무엇이 달라질까?

컨텍스트 윈도우가 커지면 LLM을 활용할 수 있는 범위도 넓어진다.


활용 사례 컨텍스트 윈도우가 중요한 이유
긴 문서 요약 여러 장의 문서를 한 번에 입력하고 종합할 수 있다.
코드 분석 여러 파일의 코드와 관련 설명을 함께 참고할 수 있다.
긴 대화 이전 대화에서 정한 조건이나 요구사항을 참고할 여유가 커진다.
RAG 검색된 문서 조각을 더 많이 입력해 답변에 활용할 수 있다.
AI Agent 작업 지침, 도구 결과, 중간 작업 기록 등을 함께 관리할 수 있다.

예를 들어 여러 개의 소스 파일로 구성된 프로젝트를 분석한다고 가정하자. 컨텍스트가 작다면 파일을 나누어 분석한 뒤 결과를 별도로 정리해야 할 수 있다. 반면 컨텍스트가 충분히 크다면 관련 파일을 함께 전달해 파일 사이의 의존 관계를 분석하기가 수월해진다.

하지만 입력할 수 있는 코드가 많아졌다고 해서 모든 버그를 찾아내거나 프로젝트의 전체 구조를 정확하게 파악한다는 보장은 없다. 입력량과 분석 품질은 별도로 검증해야 한다.

5. 컨텍스트 윈도우가 부족하면 어떻게 될까?

컨텍스트 윈도우에 담아야 할 정보가 한도를 초과하면 요청이 거부되거나, 입력을 줄이거나, 대화 기록을 정리해야 할 수 있다. 구체적인 동작은 모델과 서비스에 따라 다르다.

실제 개발에서는 다음과 같은 방법을 활용할 수 있다.

5-1. 대화 기록 요약하기

오래된 대화 전체를 매번 전달하는 대신 핵심 요구사항과 결정 사항을 요약해 다음 요청에 포함하는 방법이다.

예를 들어 AI Agent가 수십 단계에 걸쳐 작업한다면, 모든 중간 메시지를 계속 보관하기보다 현재 목표, 완료된 작업, 남은 작업, 주요 제약조건을 요약해 관리할 수 있다.

5-2. 필요한 정보만 검색하기

전체 문서를 입력하는 대신 현재 질문과 관련된 부분만 검색해 모델에 전달할 수 있다.

이 방식은 RAG(Retrieval-Augmented Generation)에서 중요한 역할을 한다. 문서를 작은 단위로 나누고 임베딩을 생성한 뒤, 질문과 관련성이 높은 문서 조각을 검색해 LLM의 컨텍스트에 포함하는 구조다.

관련 글: Embedding이란? AI가 텍스트의 의미를 벡터로 이해하는 방법

5-3. 문서를 나누어 처리하기

대규모 문서를 여러 구간으로 분리해 각각 처리한 다음 결과를 종합하는 방법도 있다.

다만 문서를 단순히 일정한 길이로 나누기만 하면 앞뒤 문맥이나 중요한 관계가 사라질 수 있다. 문서의 구조와 분석 목적에 맞게 분할 기준을 정하는 것이 중요하다.

6. RAG와 Context Window는 어떤 관계일까?

RAG와 컨텍스트 윈도우는 서로 다른 문제를 해결하지만 함께 사용되는 경우가 많다.

RAG는 외부 데이터에서 질문과 관련된 정보를 검색해 LLM에 전달하는 구조다. 컨텍스트 윈도우는 그렇게 전달된 정보와 다른 입력을 모델이 어느 정도까지 처리할 수 있는지를 결정한다.

예를 들어 사내 기술 문서가 수천 개 있다고 해 보자. 모든 문서를 매번 LLM에 입력하는 대신, 질문과 관련된 문서를 검색하고 그중 필요한 부분만 컨텍스트에 넣을 수 있다.

이때 컨텍스트 윈도우가 크면 더 많은 문서 조각을 전달할 수 있지만, 무조건 많은 문서를 넣는 것이 최선은 아니다. 관련성이 낮은 문서가 너무 많이 포함되면 핵심 정보를 찾기 어려워질 수 있고 비용도 늘어날 수 있다.

결국 RAG에서는 검색 품질과 컨텍스트 구성 품질을 함께 관리해야 한다.

7. Context Window가 크면 AI가 더 똑똑할까?

컨텍스트 윈도우 크기와 모델의 지능은 같은 개념이 아니다.

컨텍스트 윈도우가 큰 모델은 긴 입력을 처리하는 데 유리하다. 하지만 복잡한 추론, 수학 문제 해결, 코드 생성, 사실 확인 능력은 모델의 학습과 구조, 작업 방식 등 다양한 요소의 영향을 받는다.

또한 정보가 컨텍스트 안에 들어 있다고 해서 모델이 그 정보를 항상 정확하게 활용하는 것도 아니다. 긴 입력에서 특정 정보를 찾아내거나 여러 문서의 모순을 비교하는 능력은 실제 작업으로 확인해야 한다.

따라서 모델을 선택할 때는 컨텍스트 윈도우 크기뿐 아니라 답변 품질, 지연 시간, 비용, 입력 형식, 출력 제한을 함께 비교하는 것이 좋다.

8. 정리: 토큰과 컨텍스트를 이해해야 하는 이유

토큰은 LLM이 정보를 처리하는 단위이고, 컨텍스트 윈도우는 모델이 한 번의 처리 과정에서 참고할 수 있는 정보의 범위를 의미한다.

이 개념을 이해하면 긴 대화에서 정보가 누락되는 이유, 대규모 문서 분석 시 입력을 관리해야 하는 이유, RAG가 필요한 이유를 보다 명확하게 이해할 수 있다.

특히 LLM을 활용한 서비스를 개발한다면 단순히 큰 컨텍스트를 가진 모델을 선택하는 것만으로는 충분하지 않다. 필요한 정보를 선별하고, 입력 토큰을 관리하며, 모델이 실제로 활용하기 좋은 형태로 컨텍스트를 구성해야 한다.

좋은 LLM 활용의 핵심은 많은 정보를 무작정 넣는 것이 아니라, 필요한 정보를 적절한 범위 안에 정확하게 전달하는 것이다.



함께 읽으면 좋은 글

댓글

이 블로그의 인기 게시물

벡터 데이터베이스(Vector DB)란?

MCP란 무엇인가? AI Agent와 외부 도구를 연결하는 방법

Embedding이란? AI가 텍스트의 의미를 벡터로 이해하는 방법