Context Window 가이드: LLM이 한 번에 볼 수 있는 범위와 한계
AI
마지막 업데이트

Context Window 가이드: LLM이 한 번에 볼 수 있는 범위와 한계


요즘 LLM을 비교하는 글을 보면 “이 모델은 context window가 크다”라는 말을 자주 봅니다. 그런데 막상 입문 단계에서는 이 말이 무엇을 뜻하는지, 그리고 왜 그렇게 중요한지 감이 잘 안 잡힙니다.

간단히 말하면 context window는 모델이 한 번의 응답을 만들 때 참고할 수 있는 입력 범위입니다. system prompt, 사용자 질문, 이전 대화, 검색해서 가져온 문서, 툴 실행 결과까지 모두 이 범위 안에 들어갑니다.

이 글에서는 아래 내용을 설명합니다.

  • context window가 정확히 무엇인지
  • 토큰 제한이 왜 중요한지
  • 긴 대화와 긴 문서에서 어떤 문제가 생기는지
  • 실무에서 어떻게 다루는지

핵심은 window가 크다고 무조건 좋은 것이 아니라, 제한된 공간 안에 어떤 정보를 어떻게 넣느냐가 품질을 크게 좌우한다는 점입니다. RAG 파이프라인에서 관련 문서 10개를 전부 넣었더니 답변이 오히려 장황해지고 핵심을 놓치는 경우가 늘었습니다. top-4로 줄이고 나머지는 요약본으로 대체하니 정확도가 68%에서 85%로 올랐고, 토큰 비용도 40% 줄었습니다.

Context window란 무엇인가

LLM은 무한한 길이의 입력을 한 번에 처리하지 못합니다. 항상 일정한 범위 안의 토큰을 보고 다음 출력을 만듭니다. 그 작업 범위가 바로 context window입니다.

여기에 들어가는 것은 생각보다 많습니다.

  • system prompt
  • 사용자 입력
  • 이전 대화 기록
  • 검색된 문서 조각
  • 툴 실행 결과
  • 모델이 곧 이어서 생성해야 할 출력 여유분

즉 “문서를 몇 페이지까지 읽을 수 있나”보다 조금 더 넓은 개념입니다. 현재 응답을 만드는 데 모델이 활용할 수 있는 작업 공간이라고 보는 편이 더 정확합니다.

토큰 제한은 왜 중요할까

문맥이 조금만 길어져도 context budget은 금방 소모됩니다. 예를 들어 코딩 도우미나 문서 분석 도구는 아래 항목이 한 요청 안에 같이 들어가는 일이 많습니다.

  • 긴 system prompt
  • 사용자 질문
  • 관련 코드나 문서 일부
  • 이전 대화에서 결정된 조건
  • 출력 포맷 지시

이때 토큰 예산을 대충 잡으면 중요한 정보가 잘리거나, 반대로 너무 많은 정보를 넣어서 잡음만 늘어날 수 있습니다.

예를 들면 이런 식입니다.

System instructions: 600 tokens
User question: 300 tokens
Chat history summary: 900 tokens
Retrieved documents: 5,000 tokens
Tool output: 1,200 tokens
Reserved output space: 1,500 tokens

모델의 허용 범위가 충분하지 않다면 어디선가 잘라내야 합니다. 문제는 이때 무엇을 남기고 무엇을 버리느냐가 답변 품질에 직접 영향을 준다는 점입니다.

Context window가 크면 무조건 좋을까

큰 window는 분명 유용합니다. 더 많은 문서와 더 긴 대화를 한 번에 넣을 수 있으니까요. 하지만 여기에는 흔한 오해가 있습니다. 많이 넣을 수 있다고 해서 모델이 그 정보를 모두 잘 활용하는 것은 아닙니다.

오히려 이런 문제가 생길 수 있습니다.

  • 중요한 정보가 긴 맥락 속에 묻힘
  • 덜 중요한 문서가 함께 들어가 잡음 증가
  • 응답 비용 증가
  • 응답 지연 증가

즉 “더 많이 넣기”와 “더 잘 쓰기”는 다른 문제입니다. 실무에서는 단순히 window 숫자만 보는 것보다, 필요한 정보만 선별해서 넣는 설계가 더 중요할 때가 많습니다.

긴 대화에서 자주 생기는 문제

채팅형 제품에서는 대화가 길어질수록 초반 규칙과 사실이 점점 뒤로 밀립니다. 그러면 모델이 다음과 같은 실수를 하기 쉽습니다.

  • 초반 제약 조건을 잊어버림
  • 이미 말한 내용을 반복해서 다시 물음
  • 말투나 출력 형식을 놓침
  • 앞에서 내린 결론과 다른 방향으로 흐름이 틀어짐

그래서 긴 대화 시스템은 모든 대화를 원문 그대로 계속 붙이는 방식을 오래 유지하지 않습니다. 대신 보통 아래 중 하나를 섞습니다.

  • 대화 요약 메모
  • 핵심 상태만 유지하는 memory layer
  • 최근 대화 일부만 유지
  • 중요한 사실만 별도 구조화

즉 긴 대화를 잘 다루는 문제는 “기록을 많이 보관하는가”보다 “무엇을 현재 문맥으로 다시 주입하는가”에 가깝습니다.

긴 문서에서는 무엇이 달라질까

문서가 길어질수록 모든 내용을 한 번에 넣는 전략은 금방 비효율적이 됩니다. 특히 매뉴얼, 정책 문서, 위키, 코드베이스처럼 길고 구조가 복잡한 자료는 더 그렇습니다.

실무에서는 보통 아래 전략을 씁니다.

1. Chunking

문서를 작은 조각으로 나눕니다. 그래야 현재 질문과 관련 있는 부분만 선택해서 넣을 수 있습니다.

2. Retrieval

질문과 관련된 chunk만 검색해서 context에 포함합니다. 이 구조가 바로 RAG 가이드에서 설명한 방식과 연결됩니다.

3. Section summary

문서 전체 대신 섹션 요약을 먼저 만들고, 필요할 때 원문 조각을 다시 가져옵니다.

4. 단계형 질문

한 번에 모든 답을 만들려고 하지 않고, 먼저 범위를 좁힌 뒤 세부 질문으로 들어갑니다.

결국 긴 문서를 잘 다루는 핵심은 큰 window 하나에 기대는 것이 아니라, 정보를 구조적으로 압축하고 선택하는 것입니다.

RAG와 context window는 어떤 관계일까

초보자 입장에서는 둘이 비슷해 보일 수 있지만 역할이 조금 다릅니다.

  • context window: 현재 요청에서 모델이 볼 수 있는 총 입력 공간
  • RAG: 그 공간 안에 어떤 문서를 넣을지 고르는 방식

RAG가 있으면 모든 문서를 한꺼번에 넣지 않아도 됩니다. 질문과 관련된 조각만 가져와서 넣기 때문에:

  • 비용을 줄이기 쉽고
  • 잡음을 줄일 수 있고
  • 정확도를 높이기 쉬워집니다

즉 context window와 RAG는 경쟁 관계가 아니라 같이 쓰일 때 효과가 큰 경우가 많습니다.

실무에서 어떻게 대응하면 좋을까

실제 시스템을 만들 때는 “최대 몇 토큰까지 되나”만 보지 말고, 문맥 예산을 어떻게 배분할지 먼저 생각하는 편이 좋습니다.

아래 질문이 도움이 됩니다.

  1. system prompt가 너무 길지 않은가
  2. 이전 대화를 원문 그대로 다 넣고 있지 않은가
  3. 검색 문서 수가 필요 이상으로 많은가
  4. 출력 길이를 위한 여유 공간을 확보했는가
  5. 요약과 원문을 섞는 기준이 있는가

이 질문에 답하다 보면 window 한계는 단순한 모델 스펙 문제가 아니라 프롬프트 설계와 데이터 흐름 문제라는 점이 보입니다.

자주 하는 오해

1. context window가 크면 모델이 모든 내용을 완벽히 기억한다

아닙니다. 들어갔다고 해서 다 똑같이 잘 활용되는 것은 아닙니다.

2. 긴 문서는 통째로 넣는 것이 가장 좋다

중요한 정보가 묻히고 비용만 커질 수 있습니다.

3. context 문제는 최신 모델로만 해결된다

모델 선택도 중요하지만, chunking, retrieval, summary 설계가 결과를 크게 바꾸는 경우가 많습니다.

FAQ

Q. context window와 memory는 같은 말인가

완전히 같지는 않습니다. context window는 현재 응답에서 쓸 수 있는 입력 범위에 가깝고, memory는 그 안에 무엇을 다시 넣어 줄지 관리하는 개념에 더 가깝습니다.

Q. window가 큰 모델은 항상 더 비쌀까

실사용에서는 보통 입력량이 늘수록 비용과 지연도 함께 늘어납니다. 그래서 품질과 효율을 같이 봐야 합니다.

Q. 긴 문서를 다루려면 무조건 큰 window가 필요할까

꼭 그렇지는 않습니다. 좋은 chunking과 retrieval만으로도 상당히 좋은 결과를 낼 수 있습니다.

먼저 읽어볼 가이드

검색 유입이 많은 핵심 글부터 이어서 보세요.

광고