효과적인 컨텍스트 엔지니어링을 위해서는 컨텍스트를 체계적으로 분류하고 관리해야 한다. 필자는 29개 프로젝트의 경험을 바탕으로, AI에게 제공해야 하는 컨텍스트를 네 가지 차원으로 정리했다. 이 프레임워크는 제2장에서 소개한 프롬프트 5요소(맥락, 목표, 제약, 예시, 형식)를 프로젝트 차원으로 확장한 것이다.
Domain Context: 문제 영역 이해
Domain Context는 AI가 '무엇을' 만들어야 하는지의 배경 지식이다. 아무리 뛰어난 개발자라도 보험 업무를 모르면 보험 시스템을 제대로 만들 수 없듯, AI도 도메인 지식 없이는 적절한 코드를 생성할 수 없다.
필자의 서울시 야경명소 추천 AI 프로젝트를 보자. 이 프로젝트는 단순히 '추천 시스템을 만들어줘'라고 할 수 없었다. AI에게 서울시 공공데이터 포털의 API 구조, 야경명소의 분류 체계(한강 야경, 도심 야경, 산 야경 등), 사용자의 위치 기반 추천 로직 등 도메인 특화 지식을 제공해야 했다. RAG(Retrieval-Augmented Generation) 아키텍처를 선택한 것도 이 도메인 컨텍스트를 효과적으로 관리하기 위함이었다.
Domain Context를 효과적으로 전달하는 방법으로는 다음과 같은 것들이 있다. 첫째, 도메인 용어 사전을 만들어 AI에게 제공한다. 둘째, 비즈니스 규칙을 코드 주석이나 별도 문서로 명시한다. 셋째, 실제 데이터 샘플을 보여주어 AI가 데이터 구조를 이해하게 한다. 넷째, 기존 시스템의 화면이나 프로세스 흐름을 설명한다.
Technical Context: 기술 스택과 제약
Technical Context는 AI가 '어떻게' 만들어야 하는지의 기술적 환경이다. 이것은 AI의 '환각(Hallucination)' 문제와 직접적으로 연관된다. AI가 존재하지 않는 라이브러리 메서드를 호출하거나, 사용 중인 프레임워크 버전에서 지원하지 않는 기능을 사용하는 것은 대부분 Technical Context의 부재에서 비롯된다.
LayoutMaster 프로젝트의 프롬프트 엔진이 대표적인 예다. 이 시스템에서는 '120B 모델이 엉뚱한 코드를 짜지 않게 제어하는 핵심 모듈'로서, 프롬프트에 다음과 같은 기술적 제약을 주입했다
특히 VDI(가상 데스크톱 인프라) 환경에서의 개발은 Technical Context의 중요성을 극명하게 보여준다. 필자의 C# Code Reviewer 프로젝트는 폐쇄망에서 동작해야 했기 때문에, 외부 API 호출이 불가능하고 사내 호스팅 LLM(Phi-3-mini)만 사용할 수 있다는 기술적 제약이 핵심 컨텍스트였다. 이 정보 없이는 AI가 아무리 좋은 코드 리뷰 로직을 생성해도, 실제 환경에서는 동작하지 않았을 것이다.
Project Context: 프로젝트 목표와 단계
Project Context는 '지금 어디에 있고, 어디로 가고 있는가'에 대한 정보다. 프로젝트의 현재 상태, 아키텍처 결정 이력, 다음 마일스톤, 이미 시도하고 실패한 접근법 등이 포함된다.
서울시 야경명소 프로젝트의 바이브 코딩 워크플로우가 이를 잘 보여준다. 이 프로젝트에서 필자는 4단계 접근법을 따랐다: (1) 개발 계획서 작성 및 수정 → (2) 상세 개발 Task 작성 → (3) Task별 프롬프트 작성 → (4) 프롬프트 기반 프로젝트 수행. 각 단계에서 AI에게 현재 어떤 단계에 있는지, 이전 단계에서 어떤 결정이 내려졌는지를 명확히 전달했다. 그리고 각 Task는 DoD(Definition of Done) 방식으로 완료 기준을 정의하여, AI도 무엇이 '완료'인지를 알 수 있게 했다.
특히 중요한 것은 '이미 시도한 접근법'의 공유다. AI에게 '이전에 A 방식을 시도했지만 B 이유로 실패했다'는 정보를 제공하면, AI는 같은 실수를 반복하지 않는다. 이것은 인간 팀에서도 마찬가지다. 새로 합류한 팀원에게 '우리가 왜 이 아키텍처를 선택했는지'를 설명하지 않으면, 그 팀원은 이미 검토하고 기각한 대안을 다시 제안하게 된다.
Team Context: 팀 규약과 표준
Team Context는 '이 조직에서는 어떻게 일하는가'에 대한 정보다. 코딩 컨벤션, 네이밍 규칙, 코드 리뷰 기준, Git 브랜치 전략, 문서화 수준 등이 포함된다. 이는 혼자 개발하는 경우에도 중요한데, AI를 팀원으로 간주하면 '팀 표준'을 명확히 정의하고 공유해야 하기 때문이다.
필자의 프로젝트들에서 Team Context의 구체적인 예를 살펴보면 다음과 같다.
네 가지 차원의 컨텍스트는 서로 독립적이지 않다. 오히려 유기적으로 연결되어 있다. Domain Context가 'What'을, Technical Context가 'How'를, Project Context가 'When/Where'를, Team Context가 'Who/Why'를 정의한다고 보면, 이 네 차원이 합쳐져야 비로소 AI가 완전한 그림을 그릴 수 있다.