💡 AI를 잘 다루는 두 가지 핵심 역량 — 프롬프트 엔지니어링컨텍스트 엔지니어링. 비슷해 보이지만 범위와 철학이 완전히 다릅니다. 이 글에서 두 개념을 명확히 정리하고, 실전에서 언제 무엇을 써야 하는지 알아봅니다.


1. 등장 배경 — 왜 지금 이 개념인가?

AI 활용이 일상화되면서 "AI를 얼마나 잘 다루느냐"가 핵심 역량이 되었습니다.

초기 GPT-3 시대에는 프롬프트 엔지니어링이 AI 활용 능력의 전부였습니다. "어떻게 말하면 AI가 잘 대답하나?"에 집중했죠.

하지만 LLM이 점점 더 복잡한 작업을 수행하게 되고, 에이전트(Agent) 기반 시스템이 등장하면서 새로운 개념이 주목받기 시작했습니다. 바로 컨텍스트 엔지니어링입니다.

🔑 핵심 질문: 프롬프트 엔지니어링과 컨텍스트 엔지니어링은 어떻게 다른가?

2. 프롬프트 엔지니어링 (Prompt Engineering)

한 줄 정의: "모델에게 무엇을, 어떻게 말할 것인가를 설계하는 기술"

LLM에 전달하는 입력 텍스트(프롬프트) 자체를 정교하게 설계하여 원하는 출력을 이끌어내는 기법입니다.

핵심 특징

  • 범위: 단일 프롬프트 또는 몇 개의 메시지 교환
  • 초점: 지시문의 표현, 어조, 구조, 예시 제공 방식
  • 목표: 정확하고 일관된 출력 유도
  • 토큰 범위: 수백 ~ 수천 토큰

주요 기법

기법 설명 예시
Zero-shot 예시 없이 바로 지시 "이 문장을 요약해줘"
Few-shot 예시를 제공해 패턴 학습 입력→출력 예시 2~3개 제시
Chain-of-Thought 단계적 추론 유도 "단계별로 생각해줘"
Role Prompting 역할 부여 "당신은 시니어 Java 개발자입니다"
Negative Prompting 하지 말 것 명시 "절대 코드 없이 설명하지 마세요"

실전 예시

# 역할 + 형식 지정 + 예시 제공 (Few-shot)

당신은 Spring Boot REST API 설계 전문가입니다.
아래 기능 설명을 보고 엔드포인트를 설계해주세요.

[예시]
기능: 사용자 목록 조회
→ GET /api/users → { users: [...] }

[요청]
기능: 특정 게시글 상세 조회
→ ?
프롬프트 엔지니어링의 강점: 추가 인프라 없이 즉시 적용 가능. 빠른 실험과 프로토타이핑에 최적화.

3. 컨텍스트 엔지니어링 (Context Engineering)

한 줄 정의: "모델이 최적의 판단을 내리도록 컨텍스트 윈도우 전체를 설계하는 기술"

단순히 "어떻게 말할까"를 넘어서, 모델이 처리하는 전체 정보 환경을 설계합니다. 시스템 프롬프트, 대화 이력, 외부 문서, 도구 결과, 메모리 등 모델이 보는 모든 것을 구성하는 공학적 접근입니다.

핵심 특징

  • 범위: 컨텍스트 윈도우 전체 (수만 ~ 수십만 토큰)
  • 초점: 정보의 선택, 배치, 압축, 우선순위
  • 목표: 모델이 올바른 판단을 내릴 수 있는 정보 환경 구성
  • 핵심 역량: 시스템 설계 능력

주요 구성 요소

  • System Prompt: 모델의 역할, 규칙, 제약을 장기적으로 정의
  • RAG (Retrieval-Augmented Generation): 관련 문서를 동적으로 주입
  • Memory 관리: 장기/단기 메모리 설계 (대화 요약, 사용자 프로필 등)
  • Tool Use 결과 주입: 검색·DB 조회·API 호출 결과를 컨텍스트로 삽입
  • Multi-turn 이력 관리: 어디까지 대화를 유지할 것인지 설계
  • Agent 워크플로우 상태 전달: 이전 서브에이전트 결과를 다음 단계로 전달

실전 예시 — Claude Code의 CLAUDE.md

Claude Code를 써보셨다면 이미 컨텍스트 엔지니어링을 경험한 것입니다. CLAUDE.md가 바로 컨텍스트 엔지니어링의 대표 사례입니다.

# CLAUDE.md — 컨텍스트 엔지니어링 실제 사례

## 프로젝트 개요
- 학사행정 시스템 (Spring Boot + MariaDB)
- 배포 환경: Docker Compose

## 코딩 규칙
- 변수명은 camelCase 사용
- 모든 서비스 클래스에 @Transactional 적용

## 현재 작업 중인 모듈
- 수강신청 API (EnrollmentController.java)

## 절대 금지
- 프로덕션 DB에 직접 쿼리 실행 금지
- System.out.println 사용 금지 (로거 사용)

이 파일 하나로 모델은 매번 설명 없이도 프로젝트의 전체 맥락을 파악하고 작업합니다. 이것이 컨텍스트 엔지니어링의 핵심입니다.

컨텍스트 엔지니어링의 강점: 복잡한 장기 작업에서 모델의 일관성과 정확도를 극적으로 높임. 에이전트 시스템의 핵심 설계 원칙.

4. 핵심 비교 분석

구분 🟣 프롬프트 엔지니어링 🟢 컨텍스트 엔지니어링
범위 단일 입력 메시지 컨텍스트 윈도우 전체
초점 지시문의 표현과 구조 정보 환경 전체 설계
시간적 관점 요청 시점 (정적) 지속적·동적 구성
주요 기법 CoT, Few-shot, Role RAG, Memory, Tool Use, Agent
토큰 규모 수백 ~ 수천 토큰 수만 ~ 수십만 토큰
적용 대상 단순 Q&A, 텍스트 생성 에이전트, 복잡한 워크플로우
핵심 역량 언어적 표현력 시스템 설계 능력
등장 시기 GPT-3 시대 (2020~) 긴 컨텍스트·에이전트 시대 (2023~)
인프라 필요 불필요 RAG, 벡터 DB, 메모리 시스템 등

5. 포함 관계 — 대립이 아니다

두 개념을 경쟁 관계로 보는 시각이 있지만, 실제로는 포함 관계입니다.

┌─────────────────────────────────────────────┐
│ Context Engineering │
│ │
│ ┌────────────────────────────────┐ │
│ │ Prompt Engineering │ │
│ │ (시스템 프롬프트 작성 포함) │ │
│ └────────────────────────────────┘ │
│ │
│ + RAG + Memory + Tool Results │
│ + 대화 이력 관리 + Agent 상태 전달 │
└─────────────────────────────────────────────┘

좋은 컨텍스트 엔지니어는 반드시 프롬프트 엔지니어링 능력도 갖추어야 합니다. 시스템 프롬프트를 잘 작성하는 것 자체가 프롬프트 엔지니어링이기 때문입니다.

💡 비유: 프롬프트 엔지니어링이 "좋은 질문을 던지는 기술"이라면, 컨텍스트 엔지니어링은 "좋은 질문을 던질 수 있도록 환경 전체를 세팅하는 기술"입니다.

6. 언제 무엇을 써야 하나?

🟣 프롬프트 엔지니어링이 적합한 경우

  • 단발성 질문/답변 (챗봇 Q&A)
  • 텍스트 분류, 요약, 번역 등 단순 작업
  • 프로토타이핑 단계에서 빠른 실험
  • 소규모 자동화 스크립트
  • 블로그 초안 생성, 이메일 작성 등 1회성 요청

🟢 컨텍스트 엔지니어링이 적합한 경우

  • 멀티턴 대화 시스템 (고객 상담 AI)
  • 에이전트 기반 시스템 (Claude Code, MCP 워크플로우)
  • RAG 시스템 — 사내 문서 검색 + 답변
  • 코드 생성 도우미 — 프로젝트 전체 구조 인식 필요
  • 장기적인 프로젝트 협업 AI
  • Google Calendar·Gmail·Drive 같은 MCP 연동 시스템
실무 팁: 처음에는 프롬프트 엔지니어링으로 시작하고, 작업이 복잡해지거나 반복될수록 컨텍스트 엔지니어링으로 확장하세요.

📌 마무리 요약

  • 🟣 프롬프트 엔지니어링 = "잘 말하는 기술" → 표현과 구조 최적화, 단일 입력 중심
  • 🟢 컨텍스트 엔지니어링 = "잘 보여주는 기술" → 정보 환경 전체 설계, 시스템 중심
  • 🔗 두 개념은 대립이 아닌 포함 관계 — 컨텍스트 엔지니어링이 프롬프트 엔지니어링을 포함
  • 📈 LLM을 에이전트/시스템으로 활용할수록 컨텍스트 엔지니어링의 중요도가 높아짐
  • 💡 두 역량 모두 AI 시대의 핵심 경쟁력 — 함께 발전시켜야 함

 

 

+ Recent posts