2026년, AI 개발 분야에서 가장 주목받는 개념인 Context Engineering (컨텍스트 엔지니어링).
'프롬프트 엔지니어링은 끝났다. 이제부터는 Context Engineering이다'라는 말이 나올 정도가 되었습니다.
본 글에서는 제가 만든 contextforge라는 47KB의 단일 Python 파일을 사용하여 Context Engineering을 실천하는 방법을 설명합니다.
프롬프트 엔지니어링: LLM에 보내는 '지시문(Instruction)'을 최적화하는 것
Context Engineering: LLM에 보내는 '전체 컨텍스트(Overall Context)'를 최적화하는 것
차이점을 예시로 설명합니다:
❌ 프롬프트 엔지니어링:
"코드를 리뷰해 줘"
✅ Context Engineering:
...
Context Engineering은 **'무엇을 물어볼까'가 아니라 '무엇을 보여줄까'**를 설계하는 기술입니다.
이유는 세 가지입니다:
LLM에 주입하기 쉽다 — 1개의 파일이라면 컨텍스트에 담기 쉽습니다 -
의존성 제로(Zero Dependency) — pip install가 필요 없습니다.
python contextforge.py만으로 바로 작동합니다.
- 결정론적(Deterministic) — 동일한 입력 → 동일한 출력. LLM의 무작위성에 의존하지 않습니다.
47KB라는 기술적 의미:
GPT-4의 컨텍스트 윈도우는 128K 토큰(약 500KB)입니다. Claude의 경우 200K 토큰(약 800KB)입니다.
47KB는 LLM의 컨텍스트에 통째로 담아도 여유가 있는 크기입니다.
즉, contextforge 자체의 코드를 LLM에게 보여주면—
"이 코드를 읽고 버그를 찾아줘"
"이 코드를 읽고 테스트를 작성해 줘"
"이 코드를 읽고 리팩토링 해 줘"
——코드 자체가 자신에 대한 설명서가 됩니다. 이것이 47KB의 진정한 의미입니다.
의존 라이브러리가 없기 때문에 외부 파일을 별도로 불러올 필요도 없습니다.
1개의 .py 파일 = LLM에게 완결된 하나의 세계를 제공합니다.
→ LLM은 문맥 부족으로 엉뚱한 리뷰를 반환합니다.
from contextforge import ContextForge
cf = ContextForge(project_root="/path/to/project")
# 프로젝트 전체에서 관련 컨텍스트를 자동 추출
...
출력되는 컨텍스트:
- 대상 파일의 코드
- 관련된 모델 및 서비스의 코드
- 프로젝트 고유의 코딩 규약
- 테스트 코드 (품질 기준 추측용)
컨텍스트 윈도우에 맞게 중요도 순으로 잘라집니다.
이것들은 TDD(Test Driven Development)의 '레드 → 그린 → 리팩토링'과 같이, Context Engineering에도 재현 가능한 절차가 있습니다. 다음 5가지만 의식해도 LLM 답변 정확도가 체감될 정도로 달라집니다.
모든 정보를 던지지 않는다. 작업에 필요한 정보만 선택:
# ❌ 모든 파일 투입 (불필요한 것이 많음)
context = all_files_in_project()
# ✅ 관련 파일만 (정확도가 높아짐)
...
LLM은 처음과 마지막 정보를 잘 기억합니다 (primacy/recency effect):
# 최중요: 시스템 프롬프트 (맨 앞)
# 다음으로: 대상 코드
# 맨 뒤에: 구체적인 지시
...
컨텍스트 윈도우에는 상한선이 있습니다:
# GPT-4: 128K tokens
# Claude: 200K tokens
# 하지만 너무 길면 정확도가 떨어집니다.
...
Markdown 구조로 LLM이 이해하기 쉬운 형식으로:
## Project: atelier-kyo-manager
## Target: price_scraper.py
## Related Models: Product, PriceHistory
...
동일한 입력 → 동일한 컨텍스트. LLM의 무작위성과 분리합니다:
# 결정론적: 입력이 같으면 항상 같은 출력
context_v1 = cf.generate(target="app.py")
context_v2 = cf.generate(target="app.py")
...
contextforge 자체도 TDD로 개발되었습니다:
Phase 0-3 TDD 완료
커버리지 86%
Gradio UI에서 인터랙티브 테스트 가능
| 도구 | 접근 방식 | 의존성 | 결정론적 |
|---|
| contextforge | 단일 파일/AST 분석 | 제로(Zero) | O |
| ... | | | |
| contextforge의 강점은 의존성 제로, 결정론적, 경량화입니다. CI/CD 파이프라인에도 통합하기 쉽습니다. | | | |
- Claude Code 설정의 3계층 설계 — CLAUDE.md를 어떻게 분할할 것인가 — 컨텍스트 최적화 실전 설계
- MCP 서버 15개의 비우기 기준 — 컨텍스트 압박의 요인과 축소 방법
- SSOT 300건의 의사결정 로그에서 배운 교훈 — 정보 정리 노하우
이 글은 Claude Code (GLM-5.1)와 함께 작성했습니다.
본 기사는 개인 Zenn에서도 공개하고 있습니다.