프롬프트는 한 번의 질문이지만, 컨텍스트는 지속되는 관계다.
프롬프트 엔지니어링과 컨텍스트 엔지니어링의 차이를 가장 명확하게 보여주는 것이 '단발성 질문'과 '지속적 대화'의 차이다. ChatGPT나 웹 기반 AI를 사용할 때, 우리는 주로 단발성 질문을 한다. 하나의 질문에 하나의 답을 기대한다. 이 상호작용에서는 프롬프트의 품질이 결정적이다.
하지만 실제 소프트웨어 프로젝트는 다르다. 몇 시간, 며칠, 때로는 몇 주에 걸쳐 AI와 지속적으로 대화해야 한다. 이때 중요해지는 것은 개별 프롬프트가 아니라, 대화의 전체적인 맥락이 얼마나 잘 유지되고 관리되느냐다.
Claude Code나 Google Antigravity 같은 최신 AI 코딩 도구들은 이 점에서 기존 챗봇과 근본적으로 다르다. 이들은 프로젝트의 파일 시스템에 직접 접근하고, 수만 줄의 코드베이스를 통째로 이해하며, 이전 대화의 맥락을 기억한다. 마치 시니어 개발자와 페어 프로그래밍을 하듯, 지속적인 대화를 통해 코드를 점진적으로 개선해 나갈 수 있다.
2023년, AI 코딩의 초기 시대에 모든 관심은 프롬프트 엔지니어링(Prompt Engineering)에 집중되어 있었다. '어떻게 질문해야 좋은 답을 얻을 수 있을까?'가 핵심 화두였다. 개발자들은 마법의 주문을 찾듯 프롬프트 템플릿을 수집하고, '당신은 시니어 개발자입니다'와 같은 역할 부여(Role Playing) 기법을 공유했다. 물론 이러한 노력은 의미가 있었다.
그러나 2025년에 이르러, 실제 프로젝트에서 AI와 협업해본 개발자들은 깨닫기 시작했다. 개별 프롬프트의 품질보다 더 중요한 것이 있다는 사실을. 그것은 바로 AI에게 제공하는 전체 맥락(Context)의 설계와 관리다. 이것이 '컨텍스트 엔지니어링(Context Engineering)'이라는 새로운 개념이 부상한 배경이다.
비유하자면, 프롬프트 엔지니어링은 회의에서 '좋은 질문'을 하는 기술이다. 분명 중요하다. 하지만 컨텍스트 엔지니어링은 그 회의가 열리기 전에 참석자에게 배경 자료를 미리 보내고, 회의실에 관련 문서를 비치해두고, 이전 회의 결정사항을 요약해서 공유하는 것에 해당한다. 아무리 좋은 질문을 해도, 참석자가 배경 지식이 없으면 좋은 답이 나올 수 없다.
이 표에서 가장 중요한 차이는 '시간축'이다. 프롬프트 엔지니어링은 본질적으로 무상태(Stateless)다. 매번 새로운 질문을 던지고, 매번 새로운 답을 받는다. 반면 컨텍스트 엔지니어링은 상태 유지(Stateful)를 지향한다. 프로젝트의 역사, 결정사항, 코딩 규약, 도메인 지식이 대화 전반에 걸쳐 유지되어야 한다. 이것이 바이브 코딩에서 AI를 단순한 '코드 생성기'가 아닌 '협업 파트너'로 만드는 핵심이다.
왜 '컨텍스트'인가
필자가 29개 이상의 프로젝트를 바이브 코딩으로 수행하면서 깨달은 가장 중요한 통찰은 이것이다. AI의 출력 품질은 프롬프트의 화려함이 아니라, 제공된 컨텍스트의 풍부함에 비례한다. 같은 프롬프트라도 컨텍스트의 유무에 따라 결과물의 품질은 극적으로 달라진다.
LayoutMaster 프로젝트를 예로 들어보자. C# WinForms UI를 자동 생성하는 이 프로젝트에서 필자는 AI에게 단순히 '검색 화면을 만들어줘'라고 요청하지 않았다. 대신 사내 표준 화면(Golden Sample)의 코드를 제공하고, DevExpress 컨트롤의 사용 규칙을 명시하고, 네임스페이스와 클래스 구조를 지정했다. 결과는 놀라웠다. AI는 사내 코딩 컨벤션을 정확히 따르는 코드를 생성했고, 존재하지 않는 속성을 '환각(Hallucination)'하는 현상도 크게 줄었다.
이것은 인간 조직에서도 마찬가지다. 신입 개발자에게 '로그인 기능 만들어주세요'라고만 말하는 팀장과, 기존 코드베이스를 보여주고 코딩 컨벤션 문서를 공유하며 아키텍처 결정 배경을 설명해주는 팀장. 누구의 팀원이 더 좋은 결과물을 만들겠는가? AI도 다르지 않다.
단발성 질문 vs 지속적 대화의 차이
프롬프트 엔지니어링과 컨텍스트 엔지니어링의 차이를 가장 명확하게 보여주는 것이 '단발성 질문'과 '지속적 대화'의 차이다. ChatGPT나 웹 기반 AI를 사용할 때, 우리는 주로 단발성 질문을 한다. 하나의 질문에 하나의 답을 기대한다. 이 상호작용에서는 프롬프트의 품질이 결정적이다.
하지만 실제 소프트웨어 프로젝트는 다르다. 몇 시간, 며칠, 때로는 몇 주에 걸쳐 AI와 지속적으로 대화해야 한다. 이때 중요해지는 것은 개별 프롬프트가 아니라, 대화의 전체적인 맥락이 얼마나 잘 유지되고 관리되느냐다.
Claude Code나 Google Antigravity 같은 최신 AI 코딩 도구들은 이 점에서 기존 챗봇과 근본적으로 다르다. 이들은 프로젝트의 파일 시스템에 직접 접근하고, 수만 줄의 코드베이스를 통째로 이해하며, 이전 대화의 맥락을 기억한다. 마치 시니어 개발자와 페어 프로그래밍을 하듯, 지속적인 대화를 통해 코드를 점진적으로 개선해 나갈 수 있다.
필자의 Jira/Confluence 지식 검색 프로젝트가 좋은 예다. 이 프로젝트에서 Claude Code는 단순히 코드를 생성하는 것이 아니라, LangGraph 워크플로우의 구조를 이해하고, Ollama와 BGE-M3 임베딩 모델의 설정을 파악하고, Docker 환경 구성까지 분석하여 문제를 해결했다. 처음 Windows 환경에서 잘 되지 않던 문제가 Mac으로 옮겨서 Claude Code를 실행하니, 여러 환경까지 분석해서 해결해주었다. 이는 단발성 질문으로는 절대 달성할 수 없는 수준의 협업이었다.