PART 3 · 강의 3/4

컨텍스트 윈도우

LLM이 한 번에 처리할 수 있는 정보의 한계를 이해합니다.

01

컨텍스트 윈도우란?

LLM의 "작업 기억" 크기

컨텍스트 윈도우(Context Window)는 LLM이 한 번에 처리할 수 있는 최대 토큰 수입니다. 이 안에 시스템 프롬프트, 대화 기록, 현재 질문, 그리고 응답이 모두 들어가야 합니다.

컨텍스트 윈도우 구성 (예: 128K 토큰)
시스템
대화 기록
현재 입력
응답 영역
여유
0 128K 토큰
📌 컨텍스트 윈도우에 포함되는 것
  • 시스템 프롬프트 — 모델의 역할, 규칙 설정
  • 대화 기록 — 이전 질문과 답변들
  • 현재 입력 — 지금 보내는 질문/요청
  • 응답 공간 — 모델이 생성할 답변을 위한 공간
02

모델별 컨텍스트 크기

2026년 기준 주요 모델 비교

8K
GPT-4 (기본)
≈ 20페이지
128K
GPT-4 Turbo
≈ 300페이지
200K
Claude 3.5/4
≈ 500페이지
1M+
Gemini 2.0
≈ 2,500페이지
💡 토큰 → 페이지 변환

대략적인 기준: 1페이지 ≈ 400 토큰 (영어 기준)
한국어는 토큰 효율이 낮아 같은 토큰 수로 더 적은 내용을 담을 수 있습니다.

03

컨텍스트 초과 시 발생하는 일

오래된 정보부터 잘려나간다

대화가 길어져 컨텍스트 윈도우를 초과하면, 가장 오래된 메시지부터 잘려나갑니다. 모델은 잘린 내용을 기억하지 못합니다.

컨텍스트 초과 예시

❌ 잘림 메시지 1: "안녕하세요, 저는 김철수입니다."
TRUNCATED
❌ 잘림 메시지 2: "제 프로젝트에 대해 설명드릴게요..."
✓ 유지 메시지 3: "다음 단계를 진행해주세요."
✓ 유지 메시지 4: "현재 질문..."

→ 모델은 사용자 이름(김철수)과 프로젝트 정보를 더 이상 기억하지 못함

⚠️ 실무적 문제

긴 대화 중 갑자기 모델이 "아까 말씀하신 내용이 뭐였죠?"라고 묻는다면, 컨텍스트가 잘려서 이전 정보를 잃어버린 것입니다.

04

"Lost in the Middle" 현상

긴 컨텍스트의 숨겨진 함정

컨텍스트가 크다고 해서 모든 정보를 동등하게 활용하는 것은 아닙니다. 연구에 따르면, LLM은 중간 부분의 정보를 잘 기억하지 못합니다.

📉 Attention 분포

처음 👀
중간 😴
끝 👀

LLM은 컨텍스트의 처음에 더 많은 주의를 기울이고, 중간 부분은 상대적으로 덜 참조합니다.

📌 실무적 시사점
  • 중요한 정보는 프롬프트의 처음이나 끝에 배치
  • RAG에서 검색된 문서를 넣을 때 순서를 신경 써야
  • 긴 컨텍스트 = 무조건 좋은 것이 아님
  • 필요한 정보만 간결하게 전달하는 것이 효과적
05

컨텍스트 관리 전략

효율적으로 컨텍스트를 활용하는 방법

📝 요약(Summarization)

오래된 대화를 요약하여 저장. 전체 기록 대신 요약본만 컨텍스트에 포함.

✂️ 청킹(Chunking)

긴 문서를 작은 조각으로 나눔. 필요한 조각만 선택적으로 포함.

🎯 선택적 포함

모든 기록을 넣지 않고, 현재 질문과 관련된 정보만 선별.

💾 외부 메모리

벡터 DB에 정보 저장. 필요할 때만 검색해서 컨텍스트에 추가 (RAG).

💡 비용도 고려하세요

컨텍스트가 길수록 API 비용이 증가합니다. 128K 토큰을 매번 보내면 비용이 급격히 늘어납니다. 필요한 정보만 효율적으로 보내는 것이 비용 절감에도 도움됩니다.

SUMMARY

핵심 요약

  • 컨텍스트 윈도우는 LLM이 한 번에 처리할 수 있는 최대 토큰 수
  • 시스템 프롬프트 + 대화 기록 + 입력 + 출력이 모두 포함되어야 함
  • 초과 시 오래된 내용부터 잘림 (기억 상실)
  • Lost in the Middle: 중간 정보는 잘 활용되지 않음
  • 요약, 청킹, RAG 등으로 효율적 컨텍스트 관리 필요