Claude Code
Part 1 · 대화 시작하기Chapter 3 · 컨텍스트 관리

왜 대화가 길어지면 AI가 멍청해지나 | Context Window

AI의 작업 책상 Context Window의 구조와 짧게 유지해야 하는 이유, 모듈형 프롬프트 원칙을 이해합니다

Overview

Chapter 2 의 마지막 레슨에서 "대화가 길어지면 Claude의 응답 품질이 눈에 띄게 떨어진다"는 현상을 예고했습니다. 같은 모델에 같은 지시를 해도 세션이 길어질수록 결과가 흐려집니다. 왜 이런 일이 생길까요?

이번 레슨은 그 원인인 Context Window가 무엇인지 정의하고, 왜 짧게 유지할수록 결과가 좋은지, 그리고 이를 구조적으로 푸는 모듈형 프롬프트 원칙을 살펴봅니다.

학습 목표

  • Context Window가 무엇이고 무엇으로 구성되는지 설명합니다
  • Context가 길어지면 품질이 떨어지는 두 가지 메커니즘을 구별합니다
  • 모듈형 프롬프트의 핵심과 4가지 전략을 이해하고, Claude Code의 어떤 도구가 어떤 전략을 구현하는지 짚습니다

Context Window: AI의 작업 책상

자료가 쌓일수록 시야에서 멀어지는 Context Window를 책상으로 비유한 그림

프로젝트 자료를 펼쳐놓고 일하는 책상을 떠올려 보세요. 책상이 넓을수록 문서를 동시에 많이 볼 수 있지만 한계가 있습니다. 자료가 쌓일수록 처음에 올려둔 것은 구석으로 밀리고 시야에서 멀어집니다.

Claude의 Context Window가 바로 이 책상입니다. 한 번의 응답을 만들 때 AI가 실제로 "보는" 정보의 전체 범위이고, 그 크기는 Token(토큰) 단위로 잽니다.

책상 위에 무엇이 올라가 있나

SystemPrompt내장 도구 정의MCP 도구 설명CLAUDE.md도구 응답 (Tool Responses)사용자메시지사용자가 직접 쓰는 영역전체의 작은 한 칸
사용자 메시지는 한 칸일 뿐 — System Prompt · 도구 설명 · 이전 응답이 책상의 대부분을 차지합니다

"내가 쓴 메시지만 Context를 차지한다"고 생각하기 쉽지만, 실제로는 보이지 않는 곳에서 이미 상당량이 소비됩니다.

  • System Prompt: Claude의 기본 행동을 정의하는 지침. 사용자에게는 보이지 않지만 항상 존재합니다
  • 내장 도구 정의: 파일 읽기·쓰기·검색, bash 실행 등 Claude Code 도구의 사용 설명서
  • MCP 도구 설명: 외부 서비스(Slack, Jira, GitHub 등) 연결 시 각 도구의 사용법
  • CLAUDE.md: 프로젝트 규칙 파일. 매 대화마다 자동 로드됩니다 (다음 레슨에서 자세히)
  • 사용자 메시지: 대화창에 입력한 내용
  • 도구 응답: Claude가 파일을 읽거나 명령을 실행한 결과

MCP 란?

MCP(Model Context Protocol)는 외부 서비스를 Claude Code에 붙이는 플러그인 시스템입니다. Slack을 붙이면 Claude가 Slack 메시지를 읽을 수 있고, GitHub을 붙이면 이슈를 검색할 수 있는 식입니다. Part 2에서 자세히 다룹니다.

사용자 메시지는 이 요소들 중 하나일 뿐입니다. MCP를 몇 개 연결해두면 도구 설명만으로 수천 토큰이 사라지고, Claude가 파일을 읽을 때마다 그 내용이 도구 응답으로 쌓입니다. 대화를 몇 번 주고받은 것뿐인데 Context의 절반이 이미 차 있을 수 있습니다.

짧을수록 좋은 이유: 주의력은 고정

책상이 채워지는 구조를 봤습니다. 그러면 책상이 넓을수록 좋을까요? 그렇지 않습니다. AI의 주의력 총량은 고정되어 있습니다. 한 사람이 동시에 들고 일할 수 있는 서류 양이 정해져 있는 것처럼, LLM도 한 응답에 분배할 수 있는 처리 능력에 한계가 있습니다. 같은 주의력을 더 많은 토큰에 나누면 토큰당 주의력이 줄어듭니다. 이 현상은 두 가지 다른 측면으로 나타납니다.

Smart Zone·Dumb Zone: 위치 편향

Smart Zone초반 — 높은 주의력Dumb Zone중간 — Lost in the MiddleSmart Zone후반 — 다시 주목Context 길이
초반과 후반은 잘 보지만, 중간에 묻은 정보는 놓치기 쉽습니다

한 시간짜리 회의를 들어본 기억을 떠올려 보세요. 도입부 5분에 나왔던 안건과 마지막에 정리한 결론은 또렷한데, 중간 30분 즈음에 오갔던 세부 논의는 흐릿합니다. 회의록을 다시 봐도 "이건 언제 얘기됐지?" 싶은 대목이 꼭 하나씩 있습니다.

LLM도 같은 경향을 보입니다. Context의 초반부에서 주의력이 가장 높고 후반부도 상대적으로 잘 처리되지만, 중간 구간의 정보는 놓치는 경향이 강합니다. 업계에서는 이를 Lost in the Middle이라 부릅니다.

AI 입장에서 Context는 Smart Zone(초반·후반 부근)과 Dumb Zone(중간)으로 나뉜다고 생각하면 됩니다. 중요한 지시를 Context 한가운데 묻어두면 실종될 확률이 높아집니다.

지침의 저주: 많을수록 떨어지는 준수율

0%25%50%75%100%31020거의 100%85%65%지침 수준수율
지침이 많아질수록 개별 준수율이 점진적으로 떨어집니다

회의에서 상사가 업무 지시를 한다고 상상해 보세요. 3가지를 말하면 다 기억합니다. 10가지를 말하면 8~9개 정도 기억합니다. 20가지를 한꺼번에 쏟아내면 전체적으로 빠뜨리는 것이 생기기 시작합니다.

LLM도 같은 경향을 보입니다. 지침이 많아질수록 개별 지침의 준수율이 점진적으로 떨어집니다. 20개 지침도 대부분 따르지만, 충돌하는 규칙이나 맥락에서 먼 지침부터 빠지기 시작합니다.

해법: 모듈형 프롬프트로 지금 필요한 것만

두 현상의 근본 원인은 같습니다. 고정된 주의력을 더 많은 대상에 나누면 각각이 받는 주의력이 줄어듭니다. 양이 아니라 구조의 문제이고, 더 자세히 알려주는 것이 아니라 지침의 구조를 개선하는 것이 해법입니다.

Context 품질 > Context 양. 정확히 관련된 5,000 토큰이 "혹시 필요할까봐" 끌어모은 20,000 토큰보다 낫습니다. 이 원칙을 구조로 만든 것이 모듈형 프롬프트입니다.

네 가지 전략이 있습니다.

  1. 조건부 전달: 전체 스펙이 아니라 지금 작업하는 영역의 스펙만 제공
  2. 요약본 활용: 전체 문서 대신 목차만 들고 다니다가, 필요한 부분만 불러오기
  3. 서브에이전트 위임: 조사를 별도 Context Window에서 실행하고 메인에는 요약만 반환
  4. 작업별 컨텍스트 갱신: 작업이 바뀌면 이전 맥락을 정리하고 새 작업에 필요한 내용만 전달

Claude Code가 구현하는 도구들

Claude Code에는 이 네 전략이 각각 다른 도구로 구현되어 있습니다.

전략도구로드 시점역할
조건부 전달Rules특정 파일 경로 작업 시조건부 컨텍스트
요약본 활용Skills/skill 호출 시에만지연 로드 (~30 토큰 요약만 존재)
서브에이전트 위임Sub-agents위임 시 별도 Context Window메인 컨텍스트 오염 방지
작업별 갱신CLAUDE.md매 대화 시작 시 자동상시 필요한 핵심 규칙

구체적인 사용법은 Part 2에서 실습합니다.

핵심 포인트 정리

  1. Context Window = AI의 작업 책상: 사용자 메시지는 요소 하나일 뿐이고, System Prompt·도구 정의·MCP·CLAUDE.md·도구 응답이 보이지 않는 곳에서 책상을 채웁니다
  2. 짧을수록 좋은 두 가지 이유: 위치 편향(Smart/Dumb Zone)으로 중간 정보를 놓치고, 지침의 저주로 규칙이 많을수록 각 규칙의 준수율이 떨어집니다. 양이 아니라 구조의 문제입니다
  3. 모듈형 프롬프트: 전체를 한 번에 주지 말고 지금 이 작업에 필요한 것만 주세요. Claude Code의 Rules·Skills·Sub-agents·CLAUDE.md가 각각 하나의 전략을 구현합니다

FAQ

  • Q: Context Window의 크기는 얼마나 되나요?

    • A: Claude의 기본 Context Window는 200K 토큰입니다. 모델·플랜에 따라 1M 토큰까지 확장 가능한 옵션도 있습니다. 다만 Smart Zone을 고려하면 실질적으로 좋은 품질이 나오는 구간은 그보다 훨씬 좁습니다. /context 로 현재 세션의 사용량을 직접 확인할 수 있습니다
  • Q: MCP를 여러 개 연결하면 성능이 떨어지나요?

    • A: MCP 마다 도구 설명이 Context에 추가됩니다. 쓰지 않는 MCP는 연결을 해제하는 편이 좋습니다. 도구가 많아지면 AI의 주의력이 분산되어 지침의 저주와 같은 효과가 나타납니다
  • Q: 당장 실천할 수 있는 가장 쉬운 방법은 무엇인가요?

    • A: "대화 끊기"입니다. 한 작업이 끝나면 /clear 로 새 대화를 시작하는 것만으로도 Context를 Smart Zone으로 리셋할 수 있습니다. 도구 없이 실천 가능한 가장 효과적인 방법이며, Lesson 04의 Task Sizing에서 본격적으로 다룹니다

이어서 배울 내용

Context를 적게 쓰는 것이 중요하다는 점을 확인했습니다. 하지만 또 다른 문제가 남습니다. AI는 매 대화를 백지에서 시작합니다. 프로젝트가 뭐 하는 곳인지, 어떤 기술 스택을 쓰는지, 빌드 명령어가 뭔지 매번 처음부터 설명하는 것도 Context 낭비입니다.

CLAUDE.md가 이 문제를 해결합니다. 프로젝트 핵심 정보를 한 번만 정리해두면 매 대화 시작 시 자동으로 로드됩니다. 반복 설명을 없애면서도 AI가 프로젝트를 이해한 상태에서 대화를 시작할 수 있습니다.

  • CLAUDE.md: 프로젝트 규칙을 한 번 적고 매번 자동 제공
  • 잘 쓴 CLAUDE.md의 원칙과 카테고리

On this page