Context Engineering — 에이전트 품질을 결정하는 진짜 레버

7 min read
AIContext EngineeringLLMAgent
Context Engineering — 에이전트 품질을 결정하는 진짜 레버

"프롬프트를 잘 쓰면 된다"는 시대는 지났다. 이제 경쟁력은 컨텍스트를 잘 설계하느냐에서 갈린다.

Context Engineering은 LLM에게 전달되는 전체 정보 환경을 의도적으로 구성하는 실천이다. 시스템 프롬프트 한 줄이 아니라, 대화 이력·도구 응답·문서·메모리까지 모두 포함된다.

프롬프트 엔지니어링과 뭐가 다른가

항목프롬프트 엔지니어링컨텍스트 엔지니어링
단위단일 입력 문자열입력 전체 환경
범위한 턴세션 전체
변수문구·예시문구 + 메모리 + 검색 + 도구
평가출력 품질태스크 완결률
책임프롬프트 작성자시스템 아키텍트

비유하면 프롬프트 엔지니어링은 요리사에게 레시피를 주는 일이고, 컨텍스트 엔지니어링은 주방 전체를 설계하는 일이다. 재료 배치, 도구 접근성, 화구 순서까지 모두 해당한다.

컨텍스트의 4가지 구성요소

1. Instruction Context — 지시 정보

시스템 프롬프트, 역할, 출력 형식 규칙 등.

instruction 예시
너는 고객 지원 에이전트다.
답변은 3문장 이내로, 존댓말로 작성한다.
고객 개인정보는 절대 반복해서 노출하지 않는다.

2. State Context — 상태 정보

현재 대화 이력, 이전 도구 호출 결과, 사용자 선호 설정. 세션이 길어질수록 이 부분이 비대해진다.

3. Knowledge Context — 지식 정보

RAG로 검색된 문서, 코드베이스 발췌, 제품 매뉴얼. 에이전트가 "사실"을 근거로 말하게 만든다.

[💡 잠깐! 이 용어는?] RAG(Retrieval-Augmented Generation): 질의에 맞는 외부 지식을 검색해서 LLM 입력에 붙이는 패턴. 모델이 최신 정보나 사내 데이터를 참고할 수 있게 해준다.

4. Tool Context — 도구 정보

사용 가능한 도구 스키마, 이전 호출 결과, 에러 메시지. MCP 서버 연결이 여기 포함된다.

컨텍스트 윈도우 관리 전략

긴 세션에서 컨텍스트가 폭발하는 걸 막는 네 가지 전략이다.

context-manager.js
function trimContext(messages, maxTokens) {
  const system = messages.filter(m => m.role === 'system')
  const recent = messages.slice(-10)
  const summary = summarizeOld(messages.slice(0, -10))
 
  return [...system, { role: 'system', content: summary }, ...recent]
}

1. Sliding Window — 최근 N개만 유지. 간단하지만 앞부분 정보 유실 위험.

2. Summarization — 오래된 내용을 요약으로 대체. 토큰은 아끼지만 디테일 손실.

3. Semantic Compression — 중요도 점수로 필터링. 품질 좋지만 구현 복잡.

4. External Memory — 벡터 DB에 저장하고 필요할 때만 검색. 세션 간 영속성도 확보.

대부분의 프로덕션 에이전트는 이 네 가지를 조합해서 쓴다.

실전 패턴

계층적 컨텍스트

역할마다 다른 컨텍스트를 주는 구조다.

레이어내용빈도
Global회사 톤, 금지 사항항상
Session사용자 프로필, 현재 작업세션마다
Turn직전 메시지, 도구 응답매 턴
Tool도구 스키마, 최근 에러호출 시점

컨텍스트 오염 감지

에이전트가 엉뚱한 답을 내놓을 때, 프롬프트가 아니라 컨텍스트에 독이 들어간 경우가 많다. 이전 도구 응답의 에러, 무관한 검색 결과, 사용자의 오탈자가 누적된다.

포인트: 에이전트 품질이 떨어지면 모델을 바꾸기 전에 컨텍스트를 먼저 감사하라.

측정과 개선

컨텍스트 품질을 측정할 만한 지표는 이렇다.

  • 토큰 효율성: 전체 대비 실제 사용된 정보 비율
  • 관련성 점수: 포함된 문서 조각의 질의 관련도
  • 오염 빈도: 무관한 정보가 응답에 섞이는 비율
  • 재검색 비율: 같은 정보를 다시 찾는 빈도

정리

  • 프롬프트 한 줄보다 컨텍스트 전체 환경이 품질을 결정한다
  • 구성요소는 지시·상태·지식·도구 네 레이어로 나눌 수 있다
  • 긴 세션에서는 윈도우·요약·압축·외부 메모리 조합이 필요하다
  • 에이전트 품질 저하 시 모델보다 컨텍스트 감사가 먼저다

프롬프트 엔지니어는 개별 쿼리를 다루고, 컨텍스트 엔지니어는 에이전트의 정보 생태계를 다룬다. 앞으로 AI 제품 경쟁력은 이 생태계의 설계 깊이에서 갈린다.


참고:

관심 있을 만한 포스트

에이전틱 워크플로우의 멘탈 프레임워크 — AI에게 일을 맡기는 사고 체계

AI 에이전트에게 작업을 위임할 때 필요한 5단계 사고 모델을 정리한다.

AIAgentic Workflow

뱅크샐러드의 LLM 코드 안전화 — DSL로 Vibe Coding을 프로덕션에 쓰는 법

LLM이 생성한 코드를 프로덕션에서 안전하게 실행하기 위해 뱅크샐러드가 선택한 DSL 기반 전략을 해부한다.

AILLM

Cursor Rules 47종 모음 — 16개 프레임워크용 AI 코딩 규칙

React, Next.js, Django 등 주요 프레임워크에 맞춘 Cursor 룰 파일의 구조와 선택 기준을 정리한다.

CursorAI

Factory Model — 코딩 에이전트가 바꾼 소프트웨어 엔지니어링의 구조

Addy Osmani가 제안한 '공장 모델'로 AI 코딩 시대의 엔지니어 역할 변화를 짚는다.

AICoding Agent

GenUI vs. Vibe Coding — AI가 UI를 결정할 때와 내가 결정할 때

AI가 인터페이스를 생성하는 두 접근법의 핵심 차이와 각각이 적합한 맥락을 분석한다.

GenUIVibe Coding

배민 다국어 서비스 — 5년 백로그를 LLM으로 19일에 끝낸 이야기

5년간 미루던 다국어 번역 파이프라인을 Claude Haiku에서 Amazon Nova로 전환하며 19일 만에 완성한 우아한형제들의 기술 스택과 구현 구조.

LLM다국어

하네스 엔지니어링 — 팀을 위한 AI 개발 환경을 설계하는 방법

프롬프트를 잘 쓰는 게 아니라 AI가 일하는 환경을 설계하는 것. 우아한형제들이 Rules와 Skills로 팀 맞춤형 AI 워크플로를 구축한 사례.

AIClaude Code

VS Code 1.115 — 에이전트 앱 프리뷰와 터미널 도구 확장

병렬 에이전트 세션 관리를 위한 VS Code Agents App과 백그라운드 터미널 자동화 기능이 추가된 1.115 릴리즈를 살펴본다.

VS Code에이전트