AI가 답할 때 "무엇을 보고 있는가"를 설계하는 기술
프롬프트 엔지니어링이 "AI에게 뭐라고 말할까"였다면, 컨텍스트 엔지니어링(Context Engineering)은 한 단계 더 위 — "AI가 답을 만들 때 머릿속에 어떤 정보가 들어가 있어야 하는가"를 설계하는 기술이다. 2025년 들어 업계가 가장 주목하는 흐름이다.
왜 갑자기 이게 중요해졌나
ChatGPT가 처음 나왔을 때는 "질문 하나 → 답변 하나"의 단순한 패턴이었다. 그러나 Claude Code, Cursor 같은 에이전트형 AI가 대중화되면서 상황이 완전히 달라졌다.
단순 챗봇 | 에이전트 AI |
|---|---|
사용자가 직접 모든 맥락을 입력 | 시스템이 파일·도구·기록을 자동으로 모음 |
컨텍스트 < 1만 토큰 | 컨텍스트 10만~100만 토큰 |
한 번에 끝 | 수십~수백 번의 호출이 연속 |
프롬프트가 곧 컨텍스트 | 컨텍스트가 곧 프로그램 |
에이전트가 똑똑한지 멍청한지는 그 순간 컨텍스트에 무엇이 들어있느냐에 거의 100% 달려있다. 그래서 "컨텍스트를 어떻게 채울 것인가"가 새로운 엔지니어링 분야가 됐다.
Andrej Karpathy의 정의 (2025)
"Context engineering is the delicate art and science of filling the context window with just the right information for the next step."
— 컨텍스트 엔지니어링은 다음 단계에 꼭 필요한 정보로 컨텍스트 윈도우를 채우는 섬세한 기술이자 과학이다.
1. 컨텍스트는 "책상"이다
Part 4에서 컨텍스트 윈도우를 "AI의 책상 크기"에 비유했다. 컨텍스트 엔지니어링은 그 책상 위에 무엇을 어떻게 올려놓을지 정리하는 일이다.
비유: 신입사원에게 일 시키기
천재 신입사원에게 "오늘 우리 회사 자료 정리해줘"라고 시킨다고 하자. 두 가지 방식이 있다.
방식 A (나쁜 컨텍스트) | 방식 B (좋은 컨텍스트) |
|---|---|
회사 자료 전체를 책상에 쏟아부음 | 오늘 필요한 자료 5건만 정리해서 줌 |
"알아서 찾아봐" | "이 5건의 패턴을 따라 정리해줘" |
신입은 어디서 시작할지 모름 | 명확한 시작점과 예시 |
중요한 정보를 놓침 | 핵심에 집중 |
AI도 똑같다. "다 줘"가 아니라 "필요한 것만 잘 골라 줘"가 핵심이다.
2. 컨텍스트 엔지니어링의 5가지 핵심 요소
flowchart TB
C["📋 컨텍스트 윈도우<br/>(AI의 책상)"]
S["① 시스템 지시<br/>(역할, 규칙)"]
H["② 대화 이력<br/>(이전 메시지)"]
R["③ 외부 검색 결과<br/>(RAG · 도구 호출)"]
F["④ 관련 파일<br/>(코드, 문서)"]
M["⑤ 메모리<br/>(장기 지식)"]
S --> C
H --> C
R --> C
F --> C
M --> C
style C stroke:#5e35b2,stroke-width:4px① 시스템 지시 (System Instructions)
AI의 역할과 규칙을 정해주는 가장 위쪽 메시지. "당신은 코드 리뷰어다", "한국어로 답한다" 같은 기본 톤이 여기서 결정된다. Claude Code의 CLAUDE.md가 대표적 — 매번 자동으로 컨텍스트에 들어간다.
② 대화 이력 (Conversation History)
지금까지 사용자와 AI가 주고받은 메시지들. 그대로 두면 컨텍스트가 폭발하므로 요약(compaction)이나 잘라내기(truncation) 전략이 필요하다.
③ 외부 검색 결과 (Retrieval)
RAG(Retrieval-Augmented Generation)가 여기 속한다. 사용자 질문과 관련된 문서·코드·DB 레코드를 미리 가져와 컨텍스트에 끼워 넣는다.
검색 방식 | 설명 | 사용처 |
|---|---|---|
키워드 검색 | grep, BM25 같은 전통적 방식 | 코드베이스 검색 |
의미 검색 (Vector) | 임베딩으로 비슷한 의미의 문서 찾기 | 문서 QA, 위키 |
하이브리드 | 키워드 + 의미 검색 조합 | 최고 정확도 |
④ 관련 파일·도구 결과
사용자가 @filename으로 참조한 파일 내용, !command 실행 결과 등. 읽은 파일이 늘어날수록 컨텍스트가 무거워지므로 무엇을 읽고 무엇은 안 읽을지 판단이 중요하다.
⑤ 메모리 (Memory)
대화가 끝나도 사라지지 않는 장기 정보. Claude Code의 메모리 시스템, ChatGPT의 "기억 관리", 에이전트의 외부 메모리 DB 등이 이 범주.
3. 컨텍스트 엔지니어링의 실전 기법
기법 1: 압축 (Compaction)
대화가 길어지면 이전 대화를 요약해 자리를 비운다. Claude Code의 /compact 명령어가 대표적.
대화 100턴 후 컨텍스트: ████████████████ (150K 토큰, 위험)
↓ /compact
요약 적용 후: ███░░░░░░░░░░░░░ ( 30K 토큰, 여유)기법 2: 선별적 첨부 (Just-in-Time Context)
필요할 때만 파일·도구 결과를 컨텍스트에 넣는다. 처음부터 전체 코드베이스를 다 넣지 않는다.
❌ 나쁨: 시작부터 100개 파일 전부 첨부
→ AI가 "어디부터 봐야 할지" 헤맨다
✓ 좋음: 사용자 요청 분석 → 관련 5개 파일만 첨부
→ AI가 명확한 출발점에서 시작기법 3: 컨텍스트 우선순위
Lost in the Middle 현상 때문에, AI는 컨텍스트의 앞과 뒤를 가장 잘 기억한다.
같은 정보, 위치만 다를 때 AI의 회상 정확도
→ 핵심 지시·정답은 컨텍스트의 맨 앞이나 맨 뒤에 배치한다.
기법 4: 시스템 프롬프트 캐싱
같은 시스템 지시를 매번 다시 보내지 말고 캐싱해서 비용·지연을 줄인다. Anthropic의 Prompt Caching, OpenAI의 prompt caching 등이 이 기법.
첫 호출: [시스템 50K] + [질문 1K] = 51K 토큰 비용 (캐시 저장분은 약 1.25배 할증)
캐시 후: [캐시히트 50K × 0.1] + [질문 1K] ≈ 6K 토큰 비용 (약 88% 절감)4. 긴 컨텍스트 시대의 함정
주요 모델이 100만 토큰을 기본 지원하고 Llama 4 Scout는 1천만 토큰까지 처리한다고 해서 "이제 다 때려넣으면 되겠네"가 답이 되는 건 절대 아니다.
긴 컨텍스트에서도 컨텍스트 엔지니어링이 필요한 이유
Lost in the Middle: 중간 정보 회상률이 급격히 떨어진다
신호 vs 잡음: 관련 없는 정보가 많을수록 AI가 헷갈린다
비용: 토큰당 과금이라 100만 토큰을 매번 채우면 매우 비싸다
속도: 컨텍스트가 길수록 응답이 느려진다
→ "있는 것을 다 넣는다"가 아니라 "필요한 것만 정확히 넣는다"가 좋은 컨텍스트 엔지니어링이다.
5. 도구로서의 컨텍스트 엔지니어링 — Claude Code 사례
Claude Code는 컨텍스트 엔지니어링의 거의 모든 기법을 자동으로 적용해주는 도구다.
기법 | Claude Code에서의 구현 |
|---|---|
시스템 지시 |
|
선별적 첨부 |
|
검색 |
|
압축 |
|
메모리 | 글로벌 |
캐싱 | Anthropic 프롬프트 캐싱 자동 사용 |
→ 사용자는 "무엇을 시킬지"만 고민하고, "어떻게 컨텍스트를 채울지"는 Claude Code가 대신해준다. 다음 장의 하네스 엔지니어링이 바로 이 자동화를 다룬다.
정리
컨텍스트 엔지니어링 = AI가 답할 때 보는 정보를 설계하는 기술
5가지 요소: 시스템 지시 · 대화 이력 · 검색 결과 · 파일·도구 · 메모리
핵심 기법: 압축, 선별적 첨부, 우선순위 배치, 캐싱
컨텍스트가 커진다고 컨텍스트 엔지니어링이 사라지는 게 아니라 더 중요해진다
Claude Code는 이 기법들을 자동으로 적용해주는 도구
다음 장에서는 한 단계 더 위 — 하네스 엔지니어링, 즉 AI 호출을 둘러싼 전체 시스템 설계를 본다.