My AI Smarteasy와 글 읽기 – 프롬프트 엔지니어링과 컨텍스트 엔지니어링
[프롬프트 강의] 프롬프트 엔지니어링과 컨텍스트 엔지니어링 – YouTube
프롬프트 엔지니어링과 컨텍스트 엔지니어링 완벽 해부 (feat. 저스틴)
안녕하세요, 여러분! AI에 대한 관심이 뜨거운 요즘, 여러분의 궁금증을 시원하게 풀어줄 일타강사 저스틴입니다. 오늘 우리는 AI의 핵심 기술인 프롬프트 엔지니어링과 컨텍스트 엔지니어링에 대해 깊이 파헤쳐 볼 겁니다. 특히, 최근 ‘프롬프트 엔지니어가 사라진다’는 이야기가 나오면서 더욱 중요해진 컨텍스트 엔지니어링에 대해 명확히 정리해 드릴게요. 자, 그럼 시작해 볼까요?
1. 프롬프트 엔지니어링 vs 컨텍스트 엔지니어링: 핵심 개념 정리
프롬프트 엔지니어링은 컨텍스트 엔지니어링의 하위 기술이라고 생각하시면 이해하기 쉬울 거예요. 컨텍스트 엔지니어링에서 프롬프트는 매우 중요한 요소이며, 프롬프트를 미세하게 조정하여 LM(Language Model)이 컨텍스트를 더 잘 이해하도록 만드는 기술이 바로 프롬프트 엔지니어링입니다.
최근 앤드류 카파시(Andrej Karpathy)는 “프롬프트 엔지니어링은 끝났다(Prompt Engineering is Over)”라고 선언하며 컨텍스트 엔지니어링의 중요성을 강조했습니다. 그는 프롬프트 엔지니어링을 “LLM에 일상적으로 입력하는 짧은 지시문” 정도로 생각하는 경향이 있지만, 산업 현장에서는 프롬프트 단에서 컨텍스트를 주입하거나 튜닝하는 행위, 즉 컨텍스트 엔지니어링이 더 중요하다는 점을 지적했습니다.
컨텍스트 엔지니어링은 LM이 답변을 더 잘 할 수 있도록 맥락을 정교하게 채워 넣는 예술이자 과학입니다. 여기서 중요한 것은 “맥락(Context)”입니다. 단순히 질문을 잘 던지는 것을 넘어, AI가 답변을 생성하는 데 필요한 모든 정보를 효과적으로 제공하는 것이죠.
2. 컨텍스트 엔지니어링, 왜 중요할까요?
컨텍스트 엔지니어링은 LM의 한계를 극복하는 데 중요한 역할을 합니다. LM은 편향, 환각(Hallucination) 등의 문제점을 가지고 있는데, 컨텍스트를 적절히 제공함으로써 이러한 경향을 줄일 수 있습니다.
하지만 주의해야 할 점도 있습니다. 컨텍스트를 너무 많이 넣으면 “Lost in the Middle” 현상, 즉 중간에 있는 정보를 제대로 처리하지 못하는 현상이 발생할 수 있습니다. 또한, 토큰 비용이 증가하는 문제도 발생하죠. 따라서 필요한 맥락만 정확하게 주입하는 것이 중요합니다.
이러한 맥락을 잘 활용하는 것은 결코 쉬운 일이 아닙니다. LM의 심리나 정신에 대한 직관적인 감각, 즉 **직감(Intuition)**이 필요합니다. 프롬프트를 넣고 답변을 보면서 어떤 부분을 고쳐야 할지, 어떤 포맷으로 컨텍스트를 넣어야 할지 경험적으로 알아내는 능력이 중요합니다.
컨텍스트 엔지니어링은 LM 앱 전체를 조율하는 복잡한 소프트웨어의 작은 부분에 불과합니다. 문제를 적절하게 쪼개고, 컨텍스트 윈도우를 효율적으로 활용하고, 적합한 LM을 선택하고, 생성 검증 플로우를 처리하는 등 다양한 작업들이 컨텍스트 엔지니어링과 함께 이루어져야 합니다.
3. 컨텍스트 엔지니어링, 어떻게 활용할까요?
컨텍스트 엔지니어링이 중요한 이유는, 같은 모델을 사용하더라도 컨텍스트를 어떻게 제공하느냐에 따라 답변이 달라지기 때문입니다. 예를 들어, 이메일을 작성하는 경우, 어떤 컨텍스트를 제공하느냐에 따라 시작 문구, 내용 등이 달라질 수 있습니다.
**RAG(Retrieval-Augmented Generation)**는 컨텍스트를 제공하는 보편적인 방법입니다. RAG는 LM이 답변하기 전에 문서나 로우 데이터를 청킹(Chunking)하여 검색을 더 잘하게 하거나, 문서 조각을 참고하게 하여 모델에게 피드를 제공하는 방식입니다.
최근에는 에이전트(Agent)를 활용한 에이전틱 RAG로 발전하고 있습니다. 에이전틱 RAG는 모델에게 여러 소스를 피드로 제공하는 방식으로, 툴(Tool)을 사용하여 다양한 소스를 참고하게 합니다.
컨텍스트 엔지니어링에서는 최종 목표(예: 이메일 생성)를 달성하기 위해 다양한 툴을 활용합니다. 예를 들어, 캘린더, 이메일, 미팅 노트 등의 툴을 사용하여 맥락을 레이어 형태로 제공하고, 각 툴에 맞는 후속 행위들을 수행할 수 있습니다.
4. 프롬프트 엔지니어링 vs 컨텍스트 엔지니어링: 5가지 차이점 비교
구분 | 프롬프트 엔지니어링 | 컨텍스트 엔지니어링 |
---|---|---|
정의 | 지시문 자체를 설계하고 최적화하는 과정 | LLM이 작업을 수행하려고 할 때 참고해야 하는 정보와 설계 및 관리 |
범위 | 단일/복합적인 프롬프트, 한계 존재 | 시스템 전체, 다양한 정보 소스 및 도구 사용, 상태 포함 |
예시 | “어떻게 질문/문장을 작성해야 더 좋은 답을 얻을 수 있을까?” | “어떤 정보를 어떻게 조합해 LLM에게 제공할 것인가?” |
목표 | 원하는 답변을 유도 | 상황에 따라 즉석에서 만들어지거나, 최적의 정보 조립 |
한계 | 프롬프트 자체의 한계, RAG 시스템 오류 시 무력화 | 정보 과다, 우선순위/구조화/시스템 통합 등 복잡한 문제 해결 필요 |
프롬프트 엔지니어링과 컨텍스트 엔지니어링, 각각 잘못 작업했을 때의 결과는 어떨까요?
- 프롬프트 엔지니어링 실패: 목표 결과물 미달, 의도와 다른 결과, 가이드라인 미준수, 이상하거나 두루뭉술한 결과, 작은 변화에 무한 반복 작업
- 컨텍스트 엔지니어링 실패: 대화 맥락 상실, 오염/편향된 결과, 일반화된 답변, 쓸모없는 결과, RAG 오류, 메모리 누수, 툴 체이닝 실패
5. 결론: 균형 잡힌 접근이 중요합니다
결국, 컨텍스트 엔지니어링이 중요한 흐름이지만, 프롬프트 엔지니어링 또한 간과할 수 없는 핵심 요소입니다. 두 가지를 균형 있게 활용해야만 LLM을 효과적으로 활용하고, 현업에 적용 가능한 AI를 만들 수 있습니다.
오늘 강의를 통해 프롬프트 엔지니어링과 컨텍스트 엔지니어링에 대한 여러분의 이해가 높아졌기를 바랍니다. 앞으로도 AI에 대한 유익한 정보들을 꾸준히 제공할 예정이니, 많은 관심 부탁드립니다!
참고: 본 강의 내용은 2025년 7월 6일에 게시된 “[프롬프트 강의] 프롬프트 엔지니어링과 컨텍스트 엔지니어링” 영상 자료를 기반으로 작성되었습니다.