brunch

프롬프트의 진화 - 컨텍스트 엔지니어링이란?

프롬프트 엔지니어링 vs 컨텍스트 엔지니어링

by 알바트로스

얼마 전 캐나다의 컴퓨터 과학자 Andrej Karpathy가 자신의 X 계정에 올린 글에 '컨텍스트 엔지니어링(Context Engineering)이라는 단어가 처음 등장합니다. 그는 프롬프트 엔지니어링(Prompt Engineering)이 LLM에게 비교적 간단한 태스크 수행을 하도록 지시하는 일종의 '지시문 작성'의 수준에 그치는 개념인 반면에, 컨텍스트 엔지니어링(Context Engineering)은 LLM이 다양한 데이터와 도구를 통해 태스크 전반에 걸쳐있는 일종의 '문맥(Context)'을 이해하게 하여 보다 정교한 작업 수행이 가능하게 하는 프롬프트 엔지니어링의 상위 개념이라고 말하고 있습니다.


이와 함께 컨텍스트 엔지니어링이라는 단어가 AI 엔지니어와 관계자들 사이에서 유행하기 시작했습니다. 이 새로운 개념을 둘러싼 의견 중에는 기존의 프롬프트 엔지니어링을 한물간 기술처럼 취급하거나 프롬프트 엔지니어라는 직업 자체가 사라질 것이라고 주장하는 일명 '프롬프트 회의론자'들의 목소리도 높아지고 있습니다.


1750898834503?e=1755129600&v=beta&t=F41NN2XyXT02LGPyGOQWygOl6d2ubyJmpwi5oWk2v-o 출처 : Andrej Karpathy X

그러나 사실 현업 AI 엔지니어의 입장에서 콘텍스트 엔지니어링은 사실 무언가 새로운 개념인 것처럼 느껴지지는 않습니다. 그보다는 Agentic AI의 당연한 발전 수순처럼 느껴집니다. 컨텍스트 엔지니어링이라는 개념은 결국 LLM 성능 및 추론능력의 발전과 더불어 MCP나 A2A와 같이 다양한 데이터 소스를 편리하게 연동하고 활용할 수 있는 프로토콜의 발전과 함께 자연스럽게 등장한 종합적인 테크닉이기 때문입니다. 이번 시간에는 컨텍스트 엔지니어링이 기존의 프롬프트 엔지니어링과 어떤 점에서 다르고, 왜 주목받고 있는지 자세히 살펴보도록 하겠습니다.



1. Context Engineering이란? - 기존의 Promt Engineering과는 무엇이 다른가?


글의 서두에 설명했듯이 컨텍스트 엔지니어링은 무언가 완전히 새로운 개념은 아닙니다. 기존의 프롬프트 엔지니어링이 LLM의 단편적인 입출력에만 초점을 맞추었다면, 컨텍스트 엔지니어링은 RAG 파이프라인과 다양한 데이터 소스 API와의 연동을 고려하여 AI 시스템의 전체적인 흐름과 구조를 설계한다는 점에서 크게 다릅니다.

prompt-engineering-vs-prompt-engineering-27beae2f94cf2d28f0ec3930816dc5c6.png 출처 : 프롬프트 해커 대니

프롬프트 엔지니어링은 컨텍스트 엔지니어링의 일부입니다. 즉, 프롬프트 엔지니어링은 콘텍스트 엔지니어링에서도 여전히 중요하지만, 콘텍스트 엔지니어링을 할 때에는 단순히 프롬프트 엔지니어링을 할 때보다 고려해야 할 점들이 많습니다. 프롬프트 엔지니어링에서는 정확한 지시문(Instruction) 작성이나 제한사항(Restriction) 그리고 몇 가지 예를 통해 지시하는 퓨샷(Fewshot Training)과 같이 프롬프트 자체에 대한 고민만 하면 되었지만, 콘텍스트 엔지니어링은 만들고자 하는 'AI 시스템' 전체에 대해 생각해야 할 필요가 있습니다.


context-engineering-fb3fd5541288d09ff09a804a543349e7.png 출처 : 프롬프트 해커 대니


예를 들어, 어떤 특정한 업무 도메인에서 LLM이 보다 정밀하고 상황에 맞는 답변을 제공해야 할 경우, 단순히 잘 구성된 프롬프트만으로는 한계가 있습니다. 이때 컨텍스트 엔지니어링은 외부의 관련 문서, DB 질의 결과, 사용자 이력, MCP를 통한 시간 정보 API와 업무 절차서 등 다양한 맥락 정보를 사전에 수집하고, 이를 적절한 형식으로 LLM에 주입할 수 있는 구조를 설계하는 것을 포함합니다. 이 과정에서는 단순히 ‘무엇을 물어볼 것인가’뿐만 아니라, ‘LLM이 어떤 정보와 환경 속에서 그 질문을 받아들이게 할 것인가’를 설계해야 하므로 훨씬 더 복합적인 기술 역량과 도메인 이해가 요구됩니다.


또한, 컨텍스트 엔지니어링은 단순한 정적 정보의 주입을 넘어서, 동적인 상황에 맞게 문맥을 실시간으로 구성하고 조정하는 능력까지 포함합니다. 예를 들어 사용자의 실시간 입력에 따라 적절한 백엔드 데이터에 접근하여 최신 정보를 제공하거나, 이전 대화 이력에 따라 LLM의 반응을 조정하는 등의 작업이 여기에 해당합니다. 이는 자연스럽게 툴 사용 능력, 워크플로우 설계 능력, 그리고 시스템 아키텍처에 대한 이해를 요구하게 됩니다.


이처럼 컨텍스트 엔지니어링은 프롬프트를 '어떻게 구성할 것인가'에서 한 발 더 나아가, '어떤 정보 환경을 조성할 것인가'에 초점을 둡니다. 이를 위해서는 Retrieval-Augmented Generation(RAG), LangChain, LlamaIndex, Vector DB, Function Calling, API orchestration 등 다양한 기술이 통합적으로 활용됩니다.



2. 왜 지금 컨텍스트 엔지니어링이 주목받고 있는가?


컨텍스트 엔지니어링이 최근 들어 급부상하고 있는 이유는 간단합니다. LLM의 활용이 단순한 질문-응답을 넘어, 복잡한 에이전트 시스템과 비즈니스 자동화 영역으로 확장되고 있기 때문입니다. 이 과정에서 단순히 문장을 잘 짜는 능력만으로는 부족하고, AI가 보다 정밀한 의사결정을 하기 위해 필요한 정보 환경을 어떻게 구성할지에 대한 고민이 중요해진 것입니다.


더불어, GPT-4o나 Claude-4, Gemini-2.5 Pro와 같은 최신 LLM들이 이제 단순한 텍스트 응답뿐 아니라 툴 호출, 멀티모달 이해, 상태 추적까지 가능하게 되면서, 이들 모델과의 상호작용을 설계하는 컨텍스트 엔지니어링의 중요성은 더욱 커지고 있습니다. 이는 단순히 ‘무슨 질문을 할 것인가’가 아니라, ‘어떤 상태를 기반으로 어떤 정보 흐름을 만들어 낼 것인가’를 설계하는 일이며, 이는 곧 AI 시스템의 전반적인 UX와 성능을 좌우하는 핵심 역량이 됩니다.


3. 앞으로도 컨텍스트 엔지니어링이 중요해질까?


결론적으로, 컨텍스트 엔지니어링은 단지 새로운 유행어나 Buzzword에 머무르지는 않을 것 같습니다. 점점 더 복잡해지는 AI 활용 환경 속에서 LLM의 능력을 최대한으로 끌어내기 위한 실질적이고 전략적인 접근 방식이며, 앞으로의 AI 설계와 개발에서 중심적인 역할을 하게 될 것이기 때문입니다. 프롬프트 엔지니어링이 언어의 기술이었다면, 콘텍스트 엔지니어링은 시스템과 언어, 데이터, 사용자의 상호작용을 총체적으로 아우르는 설계의 기술이라고 할 수 있습니다.

keyword