AI 활용의 초창기에는 프롬프트 엔지니어링이 주목받았습니다. 어떻게 '질문'을 잘 써야 원하는 답을 얻는가에 집중했지요. 이제는 그 단계를 넘어 '콘텍스트 엔지니어링(Context Engineering)'이 더 중요한 기술로 자리 잡고 있습니다. 단순히 문장을 다듬는 게 아니라, 모델이 제대로 일할 수 있는 환경과 자료를 설계하는 일이 중요하다고 하는데요. 함께 알아보시죠!
프롬프트에서 콘텍스트로
프롬프트 엔지니어링은 '질문을 잘 쓰는 기술'입니다. 아래 예시 프롬프트를 살펴볼까요?
"좋은 마케팅 전략 알려줘"
"나는 대학생 대상 스타트업을 운영 중이고, 예산은 월 100만 원, 온라인 홍보만 가능해. 이 상황을 고려해서, 마케팅 전략을 짜줘"
좀 더 구체적인 후자의 답이 훨씬 쓸모 있겠지요? 하지만 여전히 모델은 질문만 보고 판단하는 단계에 머무릅니다. 여기서 콘텍스트 엔지니어링과의 차이가 나오는데요. 콘텍스트 엔지니어링은 모델이 답을 내기 전, 질문에 도움이 되는 앞뒤 맥락(콘텍스트), 즉 정보와 도구를 풍부하고 정확하게 전달하는 시스템을 의미합니다.
콘텍스트란 무엇일까?
지침(Instructions): 모델의 역할, 말투, 규칙
사용자 요청(User Prompt): 지금 당장의 질문
대화 히스토리(Short-term Memory): 지금까지의 대화 맥락
장기 메모리(Long-term Memory): 사용자 선호, 과거 프로젝트 기록
검색된 정보(RAG): 문서, 데이터베이스, 웹에서 가져온 최신 지식
도구(Tools): 일정 확인, 메일 발송 같은 실행 기능
출력 형식(Output Format): JSON, 표, 요약문 등 원하는 결과 형태
이처럼 콘텍스트는 단순한 문장 하나가 아니라, AI가 문제를 풀 수 있도록 마련된 작업 환경 전체입니다. 맥락을 얼만큼 아느냐에 따라 받을 수 있는 도움의 질이 달라질 수 있는데요. 에이전트를 사용할 경우, 그 차이는 더욱 극적으로 달라집니다. 예시를 통해 살펴보겠습니다.
<질문: "내일 나 회의 일정 되나?">
콘텍스트가 빈약한 경우:
👉🏼 "내일 가능합니다. 몇 시로 할까요?"콘텍스트가 풍부한 경우:
(입력 전에 시스템이 캘린더, 과거 대화, 상대와의 관계, 예약 도구를 모아서 함께 전달)
👉🏼 "내일은 꽉 찼습니다. 대신 목요일 오전은 비어있어요. 초대 보냈습니다."
둘 다 같은 모델이지만 전자는 일정을 체크하고 다시 시간을 정하는 과정을 거쳐야 하는 한편, 후자는 한 번의 질문으로 원하는 결과를 얻을 수 있습니다. 즉, 모델이 아닌, 맥락을 제공하는 시스템으로 결과가 갈리는 것이지요.

프롬프트와 콘텍스트 엔지니어링의 차이. 출처: Addy Osmani.
프롬프트 엔지니어링은 '이렇게 말하면, LLM이 내 말을 들어주지 않을까?'라는 질문에 답하는, 말을 잘하는 기술이라면, 콘텍스트 엔지니어링은 '이 시스템에 어떤 정보나 도구를 제공해야 할까?'라는 질문에 답하는, 시스템을 설계하는 기술이라고 볼 수 있습니다.

이런 이야기, 매주 받아보고 싶다면?
콘텍스트 엔지니어링의 3원칙
1) 시스템적으로 접근하기
콘텍스트 엔지니어링은 ‘질문을 잘 쓰는 법’이 아니라, 정보를 준비하고 다듬는 공정 전체를 설계하는 일입니다. 회의 일정을 잡는 에이전트를 만든다고 해볼까요?
먼저 요청의 의도를 파악하고,
필요한 데이터(내 캘린더, 상대방의 캘린더, 과거 대화 기록)를 모은 다음,
짧게 요약해서 모델이 바로 이해할 수 있도록 정리하고,
적절한 순서로 배열해 모델에 전달합니다.
2) 상황에 따라 동적으로 만들기
어떤 정보를 넣어야 하는지는 요청의 성격에 따라 달라집니다.
일정 확인: 캘린더, 연락처
기술 질문: 문서, 위키, 최신 업데이트
고객 응대: 과거 대화, 고객 프로필
즉, 모든 프롬프트에 같은 정보를 집어넣는 게 아니라, 필요할 때 필요한 맥락만 선택적으로 제공하는 게 중요합니다. 불필요한 데이터를 다 넣으면 모델이 집중하지 못하고, 시간도 오래 걸리며 비용도 많이 들 수 있습니다.
3) 적절한 형식 선택하기
실무를 위한 체크리스트
✅ 모델에게 역할과 규칙을 명확히 알려주기
✅ 대화 기록은 요약본으로 제공하고, 장기 메모리에 사용자 정보를 축적하기
✅ 검색은 ‘관련도 높은 최소한의 정보’만 요약해 주기
✅ 사용할 수 있는 도구의 입력·출력 형식을 짧게 정의해주기
✅ 바로 활용할 수 있도록 출력 형식을 지정하기
✅ 어떤 맥락이 효과적이었는지 관찰하고 개선하기
콘텍스트 엔지니어링은 친절하고 야무진 사수를 떠오르게 합니다. 필요한 내용과 사용하면 좋을 플랫폼을 미리 정리한 후, 후임에게 정확하게 전달하는 모습인데요. 프롬프트 엔지니어링과 콘텍스트 엔지니어링은 다른 듯 하지만 누가, 어떻게 사용하느냐에 따라 결과물이 달라진다는 점은 같습니다. AI를 잘 쓰기 위해, 이제는 질문을 다듬는 데서 멈추지 말고 환경 설계에 집중해야 합니다.