콘텐츠로 이동

01-개념

01. 개념 — 프롬프트에서 컨텍스트로

섹션 제목: “01. 개념 — 프롬프트에서 컨텍스트로”

2025년 중반부터 실무자들은 “프롬프트 엔지니어링(Prompt Engineering)“이라는 말을 점점 덜 쓰고, 대신 “컨텍스트 엔지니어링(Context Engineering)“이라고 부르기 시작했다. Shopify CEO Tobi Lütke는 이렇게 정의했다.

“the art of providing all the context for the task to be plausibly solvable by the LLM.”

의역: “LLM이 그 일을 풀어낼 수 있을 만큼의 모든 맥락을 제공하는 기술.”

Andrej Karpathy는 같은 표현을 두고 “the delicate art and science of filling the context window”“컨텍스트 윈도우를 채우는 섬세한 예술이자 과학” 이라고 표현했다. Simon Willison의 정리에 따르면, “프롬프트 엔지니어링”은 챗봇에 글자를 치는 정도로 오해된 반면, “컨텍스트 엔지니어링”은 LLM 상호작용을 설계하는 본격적인 작업을 의미적으로 더 잘 담는다.

Anthropic 응용 AI 팀(Prithvi Rajasekaran 외)은 “Effective Context Engineering for AI Agents”(2025-09-29)에서 컨텍스트를 다음과 같이 정의한다.

“the set of tokens included when sampling from a large-language model”

의역: “거대 언어 모델에서 샘플링할 때 포함되는 토큰의 집합.”

같은 글은 컨텍스트 엔지니어링을 “strategies for curating and maintaining the optimal set of tokens (information) during LLM inference”“LLM 추론 동안 최적의 토큰(정보) 집합을 큐레이션하고 유지하는 전략” 으로 확장한다. 시스템 프롬프트를 넘어 도구, 외부 데이터, 멀티턴 대화 이력까지 모두 포함된다.

프롬프트 엔지니어링은 정적인 문자열을 잘 쓰는 일이라는 인식이 강했다. 그러나 실제 에이전트(Agent)는:

  • 시스템 프롬프트만이 아니라 도구 호출 결과, 파일 내용, 이전 턴 히스토리까지 매 추론마다 다시 조립한다.
  • 한 번에 끝나지 않고 수십~수백 턴 동안 컨텍스트가 누적된다.
  • 누적된 컨텍스트가 모델 행동을 좌우한다 — 좋은 방향으로도, 나쁜 방향으로도.

Drew Breunig의 표현을 빌리면 “Every token in the context influences the model’s behavior, for better or worse.”“컨텍스트의 모든 토큰은 좋게든 나쁘게든 모델 행동에 영향을 준다.” 그래서 “정적 문자열”이 아니라 “동적 시스템”을 설계해야 한다는 인식이 자리 잡았다.

Philipp Schmid의 한 문장 요약은 이 챕터 전체의 메타 원칙이다.

“Most agent failures are not model failures anymore, they are context failures.”

의역: “이제 에이전트의 실패 대부분은 모델 탓이 아니라 컨텍스트 탓이다.”