프롬프트 중심 사고에서 컨텍스트 설계로의 패러다임 전환을 살펴보고, 컨텍스트 엔지니어링의 정의와 5가지 핵심 전략을 개괄합니다.
2023년부터 시작된 프롬프트 엔지니어링(Prompt Engineering) 열풍은 AI 활용의 첫 번째 물결이었습니다. "마법의 프롬프트"를 찾기 위해 수많은 템플릿과 기법이 공유되었고, 프롬프트 하나로 모델의 출력을 극적으로 바꿀 수 있다는 사실은 많은 사람들을 흥분시켰습니다.
하지만 실무에서 AI를 본격적으로 활용하기 시작하면서, 프롬프트만으로는 해결할 수 없는 벽에 부딪히게 됩니다.
// 프롬프트만으로 코드를 수정하는 접근
const prompt = `
이 함수의 버그를 찾아 수정해주세요:
${buggyFunction}
`;
// 문제: 모델은 이 함수만 봅니다.
// - 이 함수가 호출되는 맥락은?
// - 관련된 타입 정의는?
// - 프로젝트의 코딩 컨벤션은?
// - 이전에 유사한 버그를 어떻게 해결했는지?프롬프트 엔지니어링은 "무엇을 어떻게 물어볼 것인가"에 집중합니다. 하지만 정작 모델이 좋은 답을 내기 위해 필요한 것은 "물어보는 방식"이 아니라, "모델이 참조할 수 있는 정보의 품질과 구조"였습니다.
Andrej Karpathy는 이를 명확하게 지적했습니다. "프롬프트 엔지니어링이라는 이름은 이 분야의 본질을 담지 못한다. 실제로 우리가 하는 일은 컨텍스트 엔지니어링이다."
컨텍스트 엔지니어링(Context Engineering)에서 말하는 컨텍스트는 단순히 프롬프트 텍스트를 의미하지 않습니다. 모델이 추론 시점에 접근할 수 있는 모든 정보의 총체를 의미합니다.
구체적으로, AI 코딩 에이전트의 컨텍스트는 다음 요소들로 구성됩니다.
| 컨텍스트 요소 | 설명 | 예시 |
|---|---|---|
| 시스템 프롬프트 | 모델의 역할과 행동 규칙 | "TypeScript strict 모드를 사용하세요" |
| 코드베이스 | 현재 프로젝트의 소스 코드 | 관련 파일, 타입 정의, 테스트 |
| 프로젝트 설정 | 컨텍스트 파일과 규칙 | CLAUDE.md, .cursorrules |
| 도구 정의 | 에이전트가 사용할 수 있는 도구 | 파일 읽기, 검색, 터미널 실행 |
| 도구 실행 결과 | 도구 호출의 반환값 | grep 결과, 빌드 로그 |
| 대화 히스토리 | 이전 대화 내용 | 사용자 요청과 이전 응답 |
| 외부 지식 | 문서, API 레퍼런스 등 | MCP 서버를 통한 외부 데이터 |
이 모든 요소가 모델의 컨텍스트 윈도우(Context Window)에 들어가며, 이 정보의 품질과 구조가 모델 출력의 품질을 직접적으로 결정합니다.
동일한 모델, 동일한 프롬프트를 사용하더라도 컨텍스트에 따라 결과는 극적으로 달라집니다. 이를 이해하기 위해 간단한 실험을 생각해 봅시다.
시나리오: "사용자 인증 미들웨어를 작성해주세요"라는 동일한 요청
컨텍스트 A에서는 모델이 일반적인 패턴을 추측해서 작성합니다. Express인지 Next.js인지, JWT인지 세션 기반인지, 에러 처리 방식은 어떤지 모두 모델이 임의로 결정합니다.
컨텍스트 B에서는 프로젝트의 기존 미들웨어 패턴, 인증 라이브러리, 에러 처리 컨벤션, 타입 정의를 모두 참조합니다. 결과물은 프로젝트에 바로 통합할 수 있는 코드가 됩니다.
컨텍스트 엔지니어링의 핵심 통찰은 단순합니다. 모델은 자신이 보지 못한 정보에 대해서는 추론할 수 없습니다. 아무리 뛰어난 추론 능력을 가진 모델이라도, 필요한 정보가 컨텍스트에 없으면 할루시네이션(Hallucination)이나 일반적인 답변으로 빠질 수밖에 없습니다.
컨텍스트 엔지니어링은 다섯 가지 핵심 전략으로 구성됩니다. 이 시리즈 전체에서 이 전략들을 깊이 있게 다루게 됩니다.
관련 있는 정보를 정확하게 찾아 컨텍스트에 포함시키는 전략입니다. 코드베이스에서 수천 개의 파일 중 현재 작업에 관련된 파일만 골라내는 것이 핵심입니다.
// 나쁜 선택: 전체 코드베이스를 덤프
const context = await readEntireCodebase(); // 수만 줄
// 좋은 선택: 관련 파일만 정밀하게 선택
const context = await selectRelevantFiles({
currentFile: "src/auth/middleware.ts",
dependencies: await traceDependencies("src/auth/middleware.ts"),
relatedTests: await findRelatedTests("src/auth/middleware.ts"),
recentChanges: await getRecentChanges("src/auth/"),
});선택한 정보의 토큰 수를 줄이면서 핵심 의미를 보존하는 전략입니다. 토큰 한계와 비용을 모두 최적화합니다.
컨텍스트 내에서 정보를 어떤 순서로 배치할 것인가의 전략입니다. 어텐션 메커니즘(Attention Mechanism)의 특성상, 정보의 위치가 모델의 주의력에 영향을 미칩니다.
멀티에이전트 시스템에서 각 에이전트에게 필요한 컨텍스트만 격리하여 전달하는 전략입니다. 불필요한 정보로 인한 혼란을 방지합니다.
정보를 어떤 형식으로 구조화할 것인가의 전략입니다. XML, 마크다운, JSON 등 포맷에 따라 모델의 이해도가 달라집니다.
컨텍스트 엔지니어링은 프롬프트 엔지니어링을 부정하는 것이 아닙니다. 프롬프트 엔지니어링을 포함하고 확장하는 상위 개념입니다.
| 측면 | 프롬프트 엔지니어링 | 컨텍스트 엔지니어링 |
|---|---|---|
| 초점 | 질문을 어떻게 구성할 것인가 | 모델이 접근하는 전체 정보를 어떻게 설계할 것인가 |
| 범위 | 단일 프롬프트 텍스트 | 코드베이스, 도구, 히스토리, 메타데이터 전체 |
| 대상 | 사람이 직접 작성하는 텍스트 | 시스템이 자동으로 조립하는 정보 파이프라인 |
| 시점 | 요청 시점 | 설계 시점 + 요청 시점 + 실행 시점 |
| 재현성 | 프롬프트 공유로 부분 재현 | 인프라로 코드화하여 완전 재현 |
프롬프트 엔지니어링이 "모델에게 잘 말하는 기술"이라면, 컨텍스트 엔지니어링은 "모델이 잘 일할 수 있는 환경을 구축하는 기술"입니다.
2026년 현재, 컨텍스트 엔지니어링은 이미 산업 전반에 걸쳐 핵심 역량으로 자리 잡았습니다.
도구 생태계의 성숙: Claude Code, Cursor, GitHub Copilot, Windsurf 등 주요 AI 코딩 도구들은 모두 정교한 컨텍스트 엔지니어링 시스템을 내장하고 있습니다. 시맨틱 인덱싱(Semantic Indexing), 코드맵(Codebase Map), 실시간 지식 그래프(Knowledge Graph) 등의 기술이 상용화되었습니다.
컨텍스트 파일의 표준화: CLAUDE.md, AGENTS.md 같은 컨텍스트 파일이 README.md처럼 프로젝트의 표준 구성 요소가 되어가고 있습니다. Linux Foundation이 AGENTS.md 표준화를 지원하면서 이 흐름은 더욱 가속화되었습니다.
멀티에이전트 시대: 1M 토큰 이상의 컨텍스트 윈도우가 보편화되면서, 각 에이전트에게 격리된 대규모 컨텍스트를 제공하는 멀티에이전트 아키텍처가 실용화되었습니다.
학술 연구의 발전: "Codified Context: Infrastructure for AI Agents in a Complex Codebase"와 같은 논문에서 컨텍스트를 일급 엔지니어링 산출물(first-class engineering artifact)로 다루는 접근이 제안되었습니다. 버전 관리되고, 테스트되며, 측정 가능한 컨텍스트의 개념이 확립되고 있습니다.
컨텍스트 엔지니어링은 특정 도구나 모델에 종속되지 않는 범용적인 기술입니다. Claude Code에서 배운 원칙은 Cursor에서도, GitHub Copilot에서도, 자체 구축한 에이전트 시스템에서도 동일하게 적용됩니다.
이 시리즈는 컨텍스트 엔지니어링의 이론과 실전을 10개 장에 걸쳐 체계적으로 다룹니다.
컨텍스트 엔지니어링은 "AI 에이전트의 전체 정보 생태계를 설계하는 분야"입니다. 프롬프트 하나에 집중하는 것이 아니라, 모델이 작업 시 참조하는 코드베이스, 도구 정의, 프로젝트 메타데이터, 대화 히스토리 등 모든 정보를 체계적으로 설계합니다.
핵심은 다섯 가지 전략입니다: 선택(무엇을 포함할 것인가), 압축(어떻게 줄일 것인가), 정렬(어떤 순서로 배치할 것인가), 격리(누구에게 줄 것인가), 포맷(어떤 형식으로 전달할 것인가).
다음 장에서는 AI 코딩 도구들이 코드베이스를 이해하기 위해 사용하는 리포지토리 인텔리전스 기술을 살펴봅니다. 시맨틱 인덱싱, 코드맵, 실시간 지식 그래프 등 각 도구의 접근 방식을 비교하고, 에이전트 탐색과 정적 검색의 차이를 분석합니다.
이 글이 도움이 되셨나요?
관련 주제 더 보기
AI 코딩 도구들이 코드베이스를 이해하는 방법을 비교합니다. 시맨틱 인덱싱, 코드맵, 실시간 지식 그래프, 에이전트 탐색 전략을 심층 분석합니다.
CLAUDE.md와 AGENTS.md 컨텍스트 파일의 설계 원칙, 효과적인 구조화 방법, 컨텍스트 블로트의 위험성과 대응 전략을 심층 분석합니다.
코드베이스에서 관련 파일을 정밀하게 선택하는 기법을 다룹니다. @-멘션 시스템, RAG 기반 코드 검색, 의존성 그래프 추적, 변경 영향 분석을 분석합니다.