컨텍스트 압축
고급컨텍스트 압축는 AI 문맥에서 자주 등장하는 개념입니다. 이 페이지는 고급 난이도로 컨텍스트 압축의 뜻과 쓰임을 빠르게 이해할 수 있도록 정리한 AI 용어사전 항목입니다.
컨텍스트 압축를 처음 보는 독자도 헷갈리지 않도록 정의와 맥락, 관련 글 1개를 한 페이지에 묶었습니다. 아래 설명을 먼저 읽고, 이어서 연결된 개념과 글까지 보면 이해가 훨씬 빨라집니다.
컨텍스트 압축은 AI 모델에 전달하는 긴 컨텍스트(대화 기록, 문서, 코드 등)를 요약하거나 핵심 정보만 추출하여 토큰 수를 줄이는 기법입니다. 비용 절감과 처리 속도 향상이 주요 목적이며, 정보 손실 최소화가 핵심 과제입니다.
주요 압축 기법으로는 슬라이딩 윈도우(오래된 대화를 버리고 최신 내용만 유지), 요약 압축(누적 대화를 주기적으로 요약하여 교체), RAG 결합(전체를 컨텍스트에 넣지 않고 필요한 부분만 검색해서 사용)이 있습니다. Anthropic의 프롬프트 캐싱(Prompt Caching) 기능은 압축과 별개로 반복 토큰 비용을 최대 90%까지 절감합니다.
Claude Opus 4.6은 최대 20만 토큰, GPT-4.5는 최대 12만 8천 토큰의 컨텍스트 윈도우를 지원합니다. 그러나 컨텍스트가 길어질수록 중간 손실(Lost in the Middle) 현상(중간 부분 정보를 덜 참조하는 경향)이 발생할 수 있어, 전략적 압축이 오히려 성능 향상에 도움이 됩니다.
긴 회의록을 통째로 AI에게 넘기는 것보다, 핵심 요약본을 넘기는 것이 더 빠르고 저렴합니다. 컨텍스트 압축은 이 요약 과정을 자동화하는 기법입니다.
컨텍스트 압축이 실제로 중요해지는 이유는 AI API 비용 구조 때문입니다. 대부분의 LLM API는 입력 토큰과 출력 토큰 수에 비례해 비용이 청구됩니다. 긴 대화를 이어갈수록 이전 대화 기록이 누적되어 입력 토큰이 기하급수적으로 늘어납니다. 예를 들어 100회 대화를 주고받을 경우, 마지막 턴에서는 이전 99번의 대화 전체가 컨텍스트로 포함될 수 있습니다. 효과적인 압축 없이는 대화가 길어질수록 비용이 폭발적으로 증가합니다. 하지만 압축을 너무 공격적으로 적용하면 중요한 정보가 소실되어 AI의 응답 품질이 떨어집니다. 결국 비용과 품질 사이의 최적 균형점을 찾는 것이 컨텍스트 압축 설계의 핵심 과제입니다.
요약 압축 기법을 구체적으로 살펴보면, 가장 단순한 방식은 일정 수 이상의 대화가 쌓이면 LLM에게 이전 대화를 한 문단으로 요약하게 하고, 원본 대화를 요약문으로 교체하는 것입니다. 더 정교한 방식은 '점진적 요약(Progressive Summarization)'으로, 오래된 대화일수록 더 압축된 형태로 유지하고 최근 대화는 원문 그대로 보존합니다. 이 방법은 최근 문맥의 정확도를 유지하면서도 전체 토큰 수를 관리할 수 있습니다. LangChain의 ConversationSummaryMemory, ConversationSummaryBufferMemory 같은 라이브러리 기능이 이 방식을 구현합니다.
컨텍스트 압축과 관련해 자주 혼동되는 개념이 프롬프트 캐싱입니다. 프롬프트 캐싱은 동일한 입력 토큰이 반복될 때 캐시를 활용해 재처리 비용을 줄이는 기법입니다. 반면 컨텍스트 압축은 실제로 전달하는 토큰 수 자체를 줄이는 기법입니다. 두 기법은 상호 보완적으로 사용할 수 있습니다. 시스템 프롬프트처럼 고정된 긴 텍스트는 캐싱을 적용하고, 변하는 대화 기록은 압축을 적용하면 비용을 복합적으로 절감할 수 있습니다.
장기 실행 AI 에이전트에서 컨텍스트 압축은 특히 중요합니다. 코드베이스 분석, 장시간 리서치, 다단계 작업 수행처럼 수십~수백 번의 도구 호출이 이어지는 경우 컨텍스트가 빠르게 한도에 도달합니다. 이때 압축 없이는 에이전트가 중간에 멈추거나 오류를 반환합니다. 잘 설계된 에이전트 시스템은 작업 진행 상황 요약, 완료된 서브태스크 결과 압축, 핵심 발견사항만 유지하는 방식으로 긴 작업을 끊기지 않게 이어갑니다. 결국 컨텍스트 압축은 단순한 비용 절감 기법을 넘어, 실용적인 AI 에이전트를 만들기 위한 필수 설계 요소입니다.
컨텍스트 압축 전략을 선택할 때는 사용 사례의 특성을 먼저 파악해야 합니다. 고객 지원 챗봇처럼 대화가 짧고 독립적인 경우에는 슬라이딩 윈도우만으로도 충분합니다. 반면 장기 프로젝트 협업 에이전트처럼 이전 결정과 맥락이 계속 이어져야 하는 경우에는 중요도 기반 선택적 보존 방식이 적합합니다. 중요도 판단 자체를 LLM에게 맡기면 어떤 정보를 유지할지 더 정교하게 결정할 수 있지만, 판단 과정에서 추가 토큰 비용이 발생한다는 점도 고려해야 합니다.
컨텍스트 압축의 품질을 검증하는 방법도 중요합니다. 압축 전후 AI의 응답 품질을 비교하거나, 핵심 사실에 대한 질문을 던져 압축된 컨텍스트에서도 올바른 답변이 나오는지 확인합니다. 자동화된 회귀 테스트를 구성해 압축 로직 변경이 응답 품질에 미치는 영향을 지속적으로 모니터링하는 것이 좋습니다. 압축률과 응답 품질을 함께 추적하면 최적 압축 수준을 데이터 기반으로 결정할 수 있습니다.
관련 글
아래 글들은 컨텍스트 압축가 실제 문맥에서 어떻게 쓰이는지 보여주는 참고 자료입니다. glossary에서 개념을 잡고 관련 글로 넘어가면 이해가 훨씬 쉬워집니다.
