컨텍스트 윈도우 관리 — 유한한 기억의 전략
100만 토큰이어도 넣는 방법이 중요하다
GPT-4가 8K 토큰이었던 시절에는 컨텍스트에 뭘 넣을지가 가장 중요한 문제였다. 2026년 현재 1M 토큰 시대가 됐지만, 문제가 사라진 게 아니다. 달라졌을 뿐이다.
왜 여전히 관리가 필요한가
비용 — 토큰이 많을수록 API 비용이 올라간다. 불필요한 정보를 넣으면 돈만 낭비한다.
정확도 — "Lost in the Middle" 현상. 컨텍스트 중간에 있는 정보는 모델이 잘 참조하지 못한다. 중요한 건 앞이나 뒤에 배치해야 한다.
속도 — 컨텍스트가 길면 응답이 느려진다. 실시간 대화에서는 체감이 크다.
하네스의 컨텍스트 관리 전략
선택적 포함 — 전체 코드베이스를 넣지 않고, 현재 작업에 관련된 파일만 넣는다. Claude Code가 repo를 탐색하고 관련 파일만 읽는 게 이것이다.
요약과 압축 — 긴 대화 히스토리를 요약해서 토큰을 절약한다. 이전 메시지를 전부 유지하는 대신 핵심만 남긴다.
동적 관리 — 작업이 진행되면서 필요한 정보가 바뀐다. 초반에 넣었던 파일 내용을 후반에는 빼고 다른 파일로 교체한다.
영구 저장소 연동 — 컨텍스트 윈도우 밖의 정보는 파일, DB, 벡터 스토어에 저장해두고 필요할 때 검색해서 가져온다. 이게 RAG의 본질이다.
CLAUDE.md 패턴
Claude Code의 CLAUDE.md는 컨텍스트 관리의 좋은 예다. 프로젝트 규칙, 구조, 패턴을 파일로 저장해두고 매 세션 시작 시 컨텍스트에 주입한다. 모델의 "장기 기억"을 외부 파일로 시뮬레이션하는 거다.
동작 흐름
선택적 포함 — 작업에 관련된 정보만 컨텍스트에 넣는다 (전체 코드베이스를 넣지 않는다)
우선순위 배치 — 중요한 정보는 컨텍스트 앞쪽과 뒤쪽에, Lost in the Middle 방지
동적 교체 — 작업 단계에 따라 컨텍스트 내용을 갱신
외부 저장소 — 컨텍스트에 안 들어가는 건 파일/DB/벡터 스토어에 저장, 필요할 때 검색