2026년 AI 개발의 핵심 패러다임 전환: 프롬프트 → 컨텍스트 → 하네스


1. 들어가며 - 왜 지금 하네스 엔지니어링인가? 

2022년에는 프롬프트 엔지니어링이 화제였습니다. "어떻게 질문하느냐"가 AI 품질을 결정한다고 했죠. 2025년에는 컨텍스트 엔지니어링으로 무게중심이 이동했습니다. Andrej Karpathy가 이 개념을 체계화하고, Shopify CEO 토비 루트케가 "LLM에게 작업을 풀 수 있도록 모든 맥락을 제공하는 기술"이라고 정의하면서 주목받기 시작했습니다.

그리고 2026년 초, 하네스 엔지니어링(Harness Engineering) 이라는 개념이 등장했습니다. Terraform과 Ghostty의 창시자 Mitchell Hashimoto가 명명하고, OpenAI 엔지니어링팀의 실제 사례가 공개되면서 빠르게 확산됐습니다.

이 글은 다음 분들을 위해 씁니다.

  • AI 코딩 에이전트(Claude Code, Copilot Workspace 등)를 실무에 활용 중인 개발자
  • 프롬프트를 열심히 다듬었는데 결과가 들쭉날쭉한 경험을 하신 분
  • "컨텍스트 엔지니어링"과 "하네스 엔지니어링"의 차이가 헷갈리는 분

2. 컨텍스트 엔지니어링이란? 

한 줄 정의

AI 모델이 추론하는 시점에 컨텍스트 창(Context Window)에 무엇을 담을지 설계하는 기술

등장 배경

프롬프트 엔지니어링의 한계는 명확했습니다. "지시문을 잘 쓰는 것"만으로는 복잡한 작업을 안정적으로 수행할 수 없었죠. 모델이 할루시네이션을 일으키는 가장 큰 이유는 모델이 멍청해서가 아니라, 잘못된 정보 위에서 올바르게 추론하기 때문입니다.

컨텍스트 엔지니어링은 이 문제를 "모델에게 무엇을 보여주느냐"로 해결합니다.

핵심 구성요소

요소 설명 예시
시스템 프롬프트 역할, 규칙, 제약 "너는 시니어 Spring Boot 개발자야"
RAG 관련 문서 주입 코드베이스 일부, API 문서
메모리 관리 대화 이력 선택적 유지 요약, 슬라이딩 윈도우
Few-shot 예시 패턴 제공 원하는 출력 형태 예시
도구 결과 주입 외부 조회 결과 포함 DB 조회 결과, API 응답

컨텍스트 엔지니어링의 범위

[단일 세션 / 단일 에이전트]

사용자 요청
    ↓
[컨텍스트 조립]
  - 시스템 프롬프트
  - RAG 검색 결과
  - 이전 대화 요약
  - 도구 결과
    ↓
모델 추론
    ↓
응답

핵심은 "모델이 보는 것"에 집중한다는 점입니다. 단일 추론, 단일 세션의 품질을 높이는 데 강력하지만, 에이전트가 여러 세션에 걸쳐 장시간 작업할 때의 신뢰성은 별개 문제입니다.


3. AI 하네스 엔지니어링이란? 

한 줄 정의

AI 에이전트를 감싸는 제어 시스템(환경) 전체를 설계하고 운영하는 공학 분야

핵심 공식

Agent = Model + Harness

모델이 CPU라면, 컨텍스트는 RAM, 하네스는 운영체제(OS) 입니다.

왜 등장했나?

OpenAI 엔지니어링팀은 2025년 하반기에 충격적인 실험을 시작했습니다. 인간이 코드를 한 줄도 쓰지 않고, Codex 에이전트만으로 프로덕션 제품을 만드는 것이었죠.

5개월 후 결과: 약 100만 줄의 코드, 1,500개 이상의 PR이 머지됐습니다.

이 팀이 배운 가장 중요한 교훈은 모델 성능이 아니었습니다. "에이전트가 실수할 때, 더 잘하라고 말하지 말고, 그 실수가 구조적으로 불가능하게 만들어라" 는 것이었습니다. 이것이 하네스 엔지니어링의 본질입니다.

하네스의 두 가지 핵심 컴포넌트

Guides (가이드) - 사전 제어

  • 에이전트가 행동하기 전에 작동
  • 허용된 행동 범위 정의
  • 예: CLAUDE.md 규칙, 아키텍처 제약, 커스텀 린터

Sensors (센서) - 사후 관찰

  • 에이전트가 실제로 한 일을 검증
  • 예: 테스트, CI/CD 파이프라인, 정적 분석, 로그
[다중 세션 / 다중 에이전트 환경]

┌─────────────────────────────────┐
│         HARNESS (하네스)         │
│                                 │
│  ┌──────────┐  ┌─────────────┐  │
│  │ Guides   │  │  Sensors    │  │
│  │(사전 제어)│  │ (사후 관찰) │  │
│  │- CLAUDE.md│  │- 테스트     │  │
│  │- 린터     │  │- CI 파이프  │  │
│  │- MCP 서버 │  │- 로그 수집  │  │
│  └────┬─────┘  └──────┬──────┘  │
│       │               │         │
│  ┌────▼───────────────▼──────┐  │
│  │     Context Engineering   │  │
│  │   (컨텍스트 엔지니어링)    │  │
│  └────────────┬──────────────┘  │
│               │                 │
│  ┌────────────▼──────────────┐  │
│  │        Model (LLM)        │  │
│  └───────────────────────────┘  │
└─────────────────────────────────┘

AI 팩토리(AI Factory)의 7개 레이어

하네스 엔지니어링이 성숙해지면 조직 단위의 AI 팩토리로 발전합니다.

레이어 내용
1. 인텐트 캡처 제품 요청, 버그 리포트, 로드맵 항목
2. 스펙 프레이밍 수락 기준·제약이 있는 구조화된 지시
3. 컨텍스트 레이어 레포 가이드, 규칙, 문서, API (← 컨텍스트 엔지니어링)
4. 실행 레이어 에이전트가 코드 편집·도구 호출
5. 검증 레이어 테스트, 정적 분석, CI, 사람 검토
6. 격리·권한 레이어 샌드박스, 비밀 경계, 승인 흐름
7. 피드백 레이어 프로덕션 텔레메트리 → 규칙 개선

4. 핵심 비교 분석 

한눈에 보는 비교표

항목 컨텍스트 엔지니어링 하네스 엔지니어링
핵심 질문 "무엇을 보여줄까?" "어떻게 안정적으로 작동시킬까?"
범위 컨텍스트 창(단일 추론) 에이전트 환경 전체
작동 시점 추론 시점 추론 전·중·후 모두
대상 단일 에이전트 단일 + 다중 에이전트
주요 수단 RAG, 프롬프트, 메모리 린터, CI, MCP, 피드백 루프
등장 시기 2025년 2026년 초
해결하는 문제 할루시네이션, 맥락 부족 비신뢰성, 아키텍처 위반, 상태 저하

세 개념의 진화 흐름

2022~2024           2025              2026
─────────────────────────────────────────────→
프롬프트 엔지니어링  컨텍스트 엔지니어링   하네스 엔지니어링
"무엇을 물어볼까?"  "무엇을 보여줄까?"   "어떤 환경을 만들까?"
단일 턴 최적화      단일 세션 최적화      시스템 레벨 최적화

신입사원 비유

개념 비유
프롬프트 엔지니어링 신입사원에게 오늘 할 일 지시
컨텍스트 엔지니어링 완벽한 온보딩 문서 제공
하네스 엔지니어링 코드베이스 구조 + CI 파이프라인 + 아키텍처 규칙 + 리뷰 프로세스 설계

온보딩 문서(컨텍스트)는 유용하고 필요하지만, 그것만으로는 부족합니다.
신입사원에게는 실수해도 시스템이 잡아주는 구조가 필요합니다.

자동차 비유 (가장 명쾌한 설명)

모델(LLM)      = 엔진
컨텍스트       = 연료 + 계기판 정보
하네스         = 핸들 + 브레이크 + 차선 + 경고등 + 정비 일정

엔진과 연료에만 집중해도 자동차는 굴러갑니다.
하지만 브레이크 없이 고속도로를 달리면 어떻게 될까요?


5. 두 개념의 관계 - 포함인가, 교집합인가? 

커뮤니티 내에서도 의견이 갈립니다. 양쪽 시각을 모두 정리합니다.

시각 ①: 하네스 ⊃ 컨텍스트 (주류 관점)

컨텍스트 엔지니어링은 하네스의 레이어 3에 해당합니다. 하네스가 컨텍스트 엔지니어링을 포함하고 조율합니다.

HARNESS
  └── Context Engineering  ← 여기가 컨텍스트 엔지니어링의 위치
  └── Tool Management
  └── Memory & State
  └── Safety Enforcement
  └── Feedback Loops

시각 ②: 컨텍스트 ⊃ 하네스 (일부 실무자 관점)

"하네스 설정 자체도 결국 컨텍스트를 어떻게 관리할지에 관한 것"이라는 시각. 하네스 엔지니어링을 컨텍스트 엔지니어링의 코딩 에이전트 특화 부분집합으로 봅니다.

📌 결론: 어떻게 보든 함께 씁니다

두 개념은 분리해서 쓸 수 없습니다. 하네스 안의 각 에이전트는 여전히 좋은 컨텍스트를 필요로 하고, 컨텍스트 엔지니어링이 아무리 잘 돼 있어도 피드백 루프·제약·검증이 없으면 다중 세션에서 무너집니다.


6. 실전 적용 - Claude Code / CLAUDE.md 예시

실제 Claude Code를 사용하는 개발 환경에서 두 개념이 어떻게 적용되는지 정리합니다.

컨텍스트 엔지니어링에 해당하는 것들

# CLAUDE.md (컨텍스트 엔지니어링 부분)

## 프로젝트 개요
Spring Boot 3.x + MariaDB + React 기반 대학 LMS 시스템

## 코드 스타일
- Java: 카멜케이스, 탭 대신 스페이스 4칸
- 패키지 구조: com.sdu.lms.{domain}.{layer}

## 자주 쓰는 패턴
- Repository: JPA + QueryDSL 병행
- DTO 변환: MapStruct 사용

## 현재 작업 컨텍스트
- 2026년 2학기 모집 사이트 UI 개선 중
- 외부 업체 낫에그와 협업 중
// 컨텍스트 엔지니어링: Few-shot 예시로 패턴 제공
// 에이전트에게 "우리 팀이 선호하는 응답 형태"를 직접 보여주기

// 좋은 예 (우리 팀 스타일)
public ApiResponse<CourseDto> getCourse(Long id) {
    return courseService.findById(id)
        .map(ApiResponse::success)
        .orElseThrow(() -> new ResourceNotFoundException("Course", id));
}

하네스 엔지니어링에 해당하는 것들

# CLAUDE.md (하네스 엔지니어링 부분)

## 절대 하지 말 것 (Guides - 제약)
- application.yml의 DB 비밀번호 직접 수정 금지
- /api/admin/** 엔드포인트 인증 로직 임의 변경 금지
- 마이그레이션 파일(V*.sql) 수정 금지 (새 파일 추가만 가능)

## 완료 기준 (Sensors - 검증)
- 모든 변경 후 반드시 ./gradlew test 실행
- 빌드 실패 시 수정 후 재시도
- 컨트롤러 추가 시 통합테스트 파일도 함께 생성

## 아키텍처 규칙 (구조적 제약)
- Controller → Service → Repository 방향만 허용
- Service가 Controller를 import하는 것 절대 금지
# 하네스 엔지니어링: 구조적 제약을 코드로 강제
# (커스텀 린터 예시 - 레이어 의존성 검사)

#!/bin/bash
# check-layer-dependency.sh
# CI에서 실행 - Service가 Controller를 import하면 빌드 실패

if grep -r "import.*controller" src/main/java/**/*Service.java; then
    echo "❌ 레이어 위반: Service가 Controller를 import하고 있습니다."
    exit 1
fi
echo "✅ 레이어 의존성 검사 통과"
# GitHub Actions - 하네스의 Sensor 역할
name: Agent Code Validation

on: [pull_request]

jobs:
  validate:
    steps:
      - name: 레이어 의존성 검사
        run: bash scripts/check-layer-dependency.sh

      - name: 테스트 실행
        run: ./gradlew test

      - name: 아키텍처 테스트 (ArchUnit)
        run: ./gradlew archTest

두 개념을 함께 적용한 CLAUDE.md 전체 구조

# CLAUDE.md

## [컨텍스트 영역] 프로젝트 이해
- 기술 스택, 도메인 지식, 코딩 컨벤션
- 현재 스프린트 목표, 알려진 이슈

## [컨텍스트 영역] 참고 문서 위치
- 설계 문서: docs/architecture/
- API 명세: docs/api/
- DB 스키마: docs/schema/

## [하네스 영역] 행동 제약 (Guides)
- 금지 행동 명시
- 승인 없이 변경 불가한 파일 목록
- 의존성 방향 규칙

## [하네스 영역] 완료 검증 (Sensors)
- 필수 실행 명령어
- 성공 기준
- 실패 시 대응 방법

7. 어떤 것부터 시작해야 할까? 

단계별 도입 순서

Phase 1: 컨텍스트 엔지니어링부터 (즉시 효과)

✅ CLAUDE.md 작성 - 프로젝트 개요, 코딩 스타일
✅ 자주 쓰는 패턴 예시 추가
✅ 현재 작업 컨텍스트 항상 업데이트

Phase 2: 하네스 기초 (1~2주)

✅ "절대 하지 말 것" 섹션 추가 (Guides)
✅ 완료 기준 명시 (Sensors)
✅ 에이전트가 같은 실수를 반복하면 → CLAUDE.md에 규칙 추가

Phase 3: 하네스 심화 (1개월)

✅ 커스텀 린터 작성 (아키텍처 규칙 강제)
✅ CI에서 에이전트 출력 자동 검증
✅ MCP 서버 연결 (도구 접근 관리)
✅ 서브에이전트로 컨텍스트 격리

핵심 원칙 하나

"에이전트가 같은 실수를 두 번 하면, 세 번째는 구조적으로 불가능하게 만들어라."
— Mitchell Hashimoto (하네스 엔지니어링 명명자)


8. 마무리

핵심 요약

개념 한 줄 요약
프롬프트 엔지니어링 무엇을 물어볼지 최적화
컨텍스트 엔지니어링 무엇을 보여줄지 최적화
하네스 엔지니어링 어떤 환경에서 작동할지 최적화

세 개념은 경쟁 관계가 아닙니다. 중첩된 레이어입니다. 좋은 AI 개발 워크플로우는 세 가지를 모두 포함합니다.

특히 Claude Code 같은 코딩 에이전트를 실무에 활용할수록, 컨텍스트를 아무리 잘 짜도 하네스 없이는 신뢰성을 담보할 수 없다는 것을 경험하게 됩니다. CLAUDE.md에 규칙을 쌓고, CI로 검증하고, 실패에서 구조적 제약을 도출하는 것—이것이 2026년 AI 시대의 핵심 엔지니어링 역량입니다.

+ Recent posts