"하네스 엔지니어링이란? (시리즈 1/6) — 같은 모델, 6배 성능 차이를 만드는 것"

핵심 명제: Agent = Model + Harness. 같은 모델·다른 하네스로 같은 벤치마크에서 최대 6배 성능 차이가 난다. 모델은 더 이상 차별화 변수가 아니다. 차별은 모델을 둘러싼 모든 것에서 일어난다.

2026년 4월에 GPT-5.5와 Claude Opus 4.7과 DeepSeek V4가 거의 같은 주에 출시됐다. 모두 SWE-bench Verified 80% 위에 있다. 이제 누가 "더 좋은 모델"이냐는 질문은 의미가 약해졌다. 진짜 질문은 "모델 위에 무엇을 올리는가"다.

이 시리즈 6편은 그 위에 올리는 것하네스(Harness) — 의 엔지니어링을 다룬다. 프롬프트 엔지니어링이 모델 입력을 다룬다면, 하네스 엔지니어링은 모델을 둘러싼 런타임 전체를 다룬다. 이 글은 시리즈의 1편으로, 정의·역사·중요성을 정리한다.

시리즈 전체 (6편)

  1. 하네스 엔지니어링이란 ← 이 글
  2. Context Engineering — 컨텍스트 윈도우, auto-compact, MCP 토큰 한도
  3. Memory Systems — 세션/장기 메모리, 벡터 vs SQL
  4. Tools & Sandboxing — Tool spec, MCP, VM 격리
  5. Multi-Provider Routing — 비용/품질 라우팅, fallback
  6. Evaluation & Ops — Eval harness, observability, runner

1. "하네스"라는 단어는 어디서 왔는가

자동차 엔진을 떠올려 보자. 엔진 자체는 강력하지만, 그것만으로는 차가 굴러가지 않는다. 변속기, 차대, 핸들, 브레이크, 계기판, 시트벨트 — 엔진을 둘러싼 모든 것이 있어야 운전 가능한 차가 된다.

LLM은 엔진이다. 엔진은 점점 더 강력해지지만 — 진짜 차이는 그 위에 어떤 섀시가 올라가느냐에서 갈린다.

Martin Fowler가 2026년 4월 2일에 발표한 글 "Harness engineering for coding agent users"는 이 단어를 깔끔하게 정의했다.

"Harness = everything in an AI agent except the model itself." (하네스는 AI 에이전트에서 모델 자체를 제외한 모든 것이다.)

좀 더 좁혀서, 코딩 에이전트 사용자 관점에서는:

"outer layer of guides and sensors that increase confidence in agent-generated code through feedforward controls and feedback loops" (에이전트 생성 코드의 신뢰도를 올리기 위한 가이드와 센서의 외층 — 피드포워드 컨트롤과 피드백 루프를 통해.)

이 정의는 기능이 아닌 역할로 하네스를 본다. 하네스는 도구나 프레임워크 이름이 아니라, 모델 주변에서 모델의 한계를 보완하고 신뢰성을 끌어올리는 모든 작업의 총칭이다.


2. 왜 갑자기 중요해졌는가 — 6배의 차이

산업·연구 보고서가 일관되게 보여준다: 고정된 모델을 둘러싼 wrapper의 차이가 동일 벤치마크에서 end-to-end 성능을 최대 6배 차이로 만든다.

같은 GPT-5.5를 쓰는 두 시스템 — 한쪽은 SWE-bench Verified 30%, 다른 쪽은 78%. 이 격차는 모델이 아니라 하네스 차이에서 온다.

4가지 변수 (논문 기반)

학술계는 이 격차를 만드는 요소를 다음 4가지로 정리한다 (arXiv 2604.07236):

  1. Permission / Authorization — 에이전트가 어떤 도구에 접근하는가, 언제 차단되는가
  2. Context Engineering — 무엇을 모델에게 보여주는가, 무엇을 자르는가, 어떻게 압축하는가
  3. Execution Isolation — 도구 실행이 다른 작업에 영향 주지 않게 격리되는가 (sandbox, VM)
  4. Persistence Design — 세션 간 상태가 어떻게 유지되는가 (CLAUDE.md, memory layers)

이 4가지를 잘하는 팀이 같은 모델로 압도적 결과를 낸다.


3. 두 가지 패턴 — Guides와 Sensors

Martin Fowler의 글이 가장 명료하게 정리한 분류다.

Guides (피드포워드)

모델이 행동하기 전에 steering. 좋은 초기 결과를 만들 확률을 높이는 모든 것.

  • CLAUDE.md 같은 프로젝트 컨텍스트 파일
  • 시스템 프롬프트의 코드 컨벤션 명시
  • 허용/금지 도구 목록
  • 사전 워크플로우 게이트 (brainstorming, writing-plans 등)

Sensors (피드백)

모델이 행동한 후에 self-correction을 가능케 하는 모든 것.

  • 자동 테스트 실행 → 실패 시 재시도
  • linter, type checker
  • 인퍼런셜 코드 리뷰 (별도 모델이 PR을 검사)
  • Architectural drift 감지

둘 다 필요하다

Fowler 인용: "Separately, you get either an agent that keeps repeating the same mistakes (feedback-only) or an agent that encodes rules but never finds out whether they worked (feed-forward-only)." (분리해서 적용하면, 같은 실수를 반복하는 에이전트(피드백만)거나, 규칙은 있는데 검증이 없는 에이전트(피드포워드만)가 된다.)

가이드와 센서가 동시에 있어야 학습하면서 빗나가지 않는 에이전트가 된다.


4. Computational vs Inferential — 도구의 두 종류

종류 특성 예시
Computational 결정적, 빠름(ms~s), 신뢰 Linter, type checker, unit test
Inferential 비결정적, 느림, 비용, 풍부 AI 코드 리뷰, semantic 분석
  • 빠르게 잡을 수 있는 건 컴퓨테이셔널
  • 의미 수준은 인퍼런셜
  • 둘을 섞어서 쓰는 게 핵심

예: 새 코드가 들어오면 linter가 즉시 잡고(computational), 그 다음 별도 모델이 architectural drift를 검사(inferential).


5. Claude Code 해부 (학술적 분석)

2026년 4월 14일 발표된 arXiv 2604.14228 ("Dive into Claude Code")는 Claude Code의 TypeScript 소스 코드를 분석해 하네스 아키텍처를 정리했다.

핵심 구조

"a simple while-loop that calls the model, runs tools, and repeats"

코어는 단순한 while 루프다. 그 위에 다음이 쌓인다.

5가지 인간 가치 → 13가지 설계 원칙

  1. Decision authority (의사결정 권한)
  2. Safety (안전)
  3. Reliability (신뢰)
  4. Capability amplification (능력 증폭)
  5. Adaptability (적응성)

이 가치들이 13가지 설계 원칙으로 펼쳐지고, 다시 다음 7가지 엔지니어링 문제를 푼다.

7가지 엔지니어링 문제

  1. Tool execution safety + access control — 도구가 무엇을 할 수 있는가, 무엇을 막는가
  2. Context window limitations + management — 컨텍스트 어떻게 채우고 압축하는가
  3. Permission / authorization frameworks — 사용자가 어떻게 권한을 주는가
  4. Capability extension + integration — MCP·plugins·skills·hooks로 확장
  5. Subagent coordination + isolation — Agent Teams + worktree 격리
  6. Session persistence + state management — Append-oriented 세션 저장
  7. Model-tool loop reliability — 도구 호출 실패·재시도 처리

이 7가지가 바로 하네스의 핵심 구성요소다. 시리즈 후속편들은 각각을 깊게 다룬다.


6. 실전 사례

OpenAI의 코딩 에이전트 (Fowler 인용)

  • Layered architecture
  • Custom linters (도메인 특화)
  • Structural tests (단순 lint 이상)

Stripe의 패턴 (Fowler 인용)

  • Pre-push hooks (commit 시점)
  • "Blueprints" — 리포지토리 패턴 자동 적용

Cursor 3 (2026-04 출시)

  • 클라우드 에이전트 + 격리 VM — 모든 작업이 격리된 Linux VM에서 실행
  • /worktree — 브랜치별 격리
  • 동시 10~20 에이전트/사용자 병렬 실행
  • 영상 증명 PR 첨부 — 에이전트가 자기 작업을 영상으로 증명

이게 단순한 IDE 플러그인을 넘어선 완성도 있는 하네스의 모습이다. 모델은 GPT-5.5나 Claude Opus 4.7을 쓰지만, 사용 경험을 결정하는 건 위 모든 것이다.

AutoHarness (오픈소스)

GitHub aiming-lab/AutoHarness — "automated harness engineering for AI agents"를 표방하는 오픈소스. 하네스 자체를 자동 생성·튜닝하는 메타 도구다. 2026년 들어 이런 메타 레벨 도구가 나타나고 있다.


7. 모델 vs 하네스 — 어디에 시간을 써야 하는가

2026년의 합리적 판단:

모델은 commodity가 되었다

  • GPT-5.5, Claude Opus 4.7, DeepSeek V4-Pro, Kimi K2.6 모두 SWE-bench 80%+
  • 가격 경쟁으로 비용 격차도 줄고 있음
  • 다음 분기에 더 좋은 모델이 또 나온다

하네스는 차별이다

  • 같은 모델 → 6배 차이
  • 한 번 잘 만든 하네스는 다음 모델로 즉시 업그레이드 가능
  • 도메인 지식 + 운영 노하우의 축적이 자산

결론: 모델 쇼핑 < 하네스 엔지니어링.

이 시리즈 후속편들에서 차례로 다룬다: - Part 2: Context Engineering — 무엇을 모델에게 보여줄 것인가 - Part 3: Memory Systems — 세션을 어떻게 이어갈 것인가 - Part 4: Tools & Sandboxing — 도구 실행을 어떻게 격리할 것인가 - Part 5: Multi-Provider Routing — 어떤 모델에게 어떤 일을 보낼 것인가 - Part 6: Evaluation & Ops — 어떻게 측정하고 운영할 것인가


정리

하네스 엔지니어링은 2026년 LLM 에이전트의 핵심 엔지니어링 분야다.

핵심 사실 출처
Agent = Model + Harness Fowler 2026-04 / 업계 합의
같은 모델, 6배 성능 차이 arXiv 2604.07236
Guides + Sensors 동시 적용 Fowler 2026-04
Claude Code = while-loop + 7개 엔지니어링 문제 arXiv 2604.14228
Cursor 3 = 격리 VM + 병렬 에이전트 Cursor 공식 (2026-04)

하네스 엔지니어링의 핵심 한 줄: "모델은 commodity. 모델 위에 올라가는 모든 것이 가치다."

다음 편(2/6)에서 가장 시급한 하네스 영역인 Context Engineering을 다룬다.


참고 자료 (1차 출처)

  • Martin Fowler: martinfowler.com/articles/harness-engineering.html (2026-04-02)
  • "Dive into Claude Code": arxiv.org/abs/2604.14228 (Liu et al., 2026-04-14)
  • "Measuring LLM's Residual Role": arxiv.org/abs/2604.07236
  • AutoHarness: github.com/aiming-lab/AutoHarness
  • Cursor 3 발표: cursor.com (2026-04)

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"