2부. AI 활용하기

하네스 엔지니어링

AI 호출을 "프로그램"으로 둘러싸는 기술

프롬프트 엔지니어링이 "AI에게 뭐라 말할까", 컨텍스트 엔지니어링이 "AI가 뭘 볼까"였다면, 하네스 엔지니어링(Harness Engineering)은 그 위 레이어다 — "AI 호출을 둘러싼 전체 시스템을 어떻게 설계할까".

하네스(harness)는 원래 "말을 마차에 묶는 마구(馬具)"를 뜻한다. 천재 말 한 마리(LLM)가 있어도 마구가 없으면 마차를 끌 수 없다. AI도 똑같다.

1. 왜 하네스 엔지니어링인가

GPT-3.5 시절에는 "질문 → 답"만 잘 짜면 됐다. 그러나 Claude Code, Devin, Cursor 같은 에이전트형 AI가 폭발하면서 새로운 문제가 생겼다.

비유: 천재 인턴이 들어왔다

당신 회사에 IQ 200의 인턴이 입사했다. 그런데:

  • 회사 매뉴얼을 안 읽었다 → 컨텍스트 부족

  • 자기 책상 위 자료만 본다 → 도구 없음

  • 일을 끝내고 결과를 누구에게도 안 보고한다 → 루프 없음

  • 한 번 틀리면 똑같이 또 틀린다 → 에러 복구 없음

  • 어제 한 일을 기억 못한다 → 메모리 없음

인턴이 IQ 200이어도 이 5가지가 없으면 회사가 돌아가지 않는다. 하네스 엔지니어링은 이 인턴을 둘러싼 "사무실 시스템" 전체를 설계하는 일이다.


2. 하네스의 5가지 구성 요소

flowchart TB
    LLM["🧠 LLM 호출<br/>(천재 인턴)"]
    Tool["🔧 도구 시스템<br/>(파일·DB·API·MCP)"]
    Loop["🔁 실행 루프<br/>(계획·실행·검증·재시도)"]
    Mem["💾 메모리<br/>(장기 기억)"]
    Eval["📊 평가·관찰<br/>(품질 점검·로그)"]
    Multi["👥 다중 에이전트<br/>(전문가 분담)"]
    Tool --> LLM
    Loop --> LLM
    Mem --> LLM
    Multi --> LLM
    LLM --> Eval
    style LLM stroke:#5e35b2,stroke-width:4px

① 도구 시스템 (Tool Use)

AI가 외부 세계에 "손을 뻗어" 할 수 있는 일들을 정의한다.

도구 종류

예시

파일 조작

Read, Write, Edit

코드 실행

Bash, Python

검색

Grep, Glob, Web Search

외부 시스템

MCP 서버 (GitHub, Notion, DB)

각 도구는 명확한 명세(스키마)와 결과 형식이 필요하다. 도구 설계 자체도 하네스 엔지니어링의 핵심 — 너무 많으면 AI가 헷갈리고, 너무 적으면 일을 못 한다.

② 실행 루프 (Agentic Loop)

단순한 "질문 → 답"이 아니라 다단계 사이클이다.

flowchart LR
    P["1️⃣ 계획<br/>(Plan)"] --> A["2️⃣ 행동<br/>(Act / Tool)"]
    A --> O["3️⃣ 관찰<br/>(Observe)"]
    O --> T{"목표<br/>달성?"}
    T -->|아니오| P
    T -->|예| D["완료"]
    style P fill:#e3f2fd
    style A fill:#fff3e0
    style O fill:#f3e5f5
    style D fill:#e8f5e9

ReAct (Reasoning + Acting) 패턴이라 부른다. 생각 → 행동 → 결과 관찰 → 다시 생각. 잘못된 길로 가면 되돌아와서 다른 방법을 시도한다.

③ 메모리 시스템

세션을 넘어 유지되는 장기 기억.

메모리 종류

예시

프로젝트 메모리

CLAUDE.md (Claude Code)

사용자 메모리

ChatGPT "기억 관리"

작업 메모리

에이전트의 외부 DB (벡터 DB 등)

자동 추출

"기억할 만한 것"을 LLM이 알아서 저장

④ 평가·관찰 (Eval & Observability)

에이전트가 잘 동작하는지 어떻게 알 수 있나? 이게 의외로 어려운 문제다.

  • 로그: 각 단계의 입력·출력 기록

  • 트레이스: 한 작업이 어떤 도구·LLM 호출을 거쳤는지 추적

  • 평가셋(Eval set): 정답 있는 케이스로 회귀 테스트

  • LLM-as-judge: 다른 LLM이 결과 품질을 평가

⑤ 다중 에이전트 (Sub-agents / Multi-agent)

한 LLM이 모든 걸 다 하는 게 아니라 전문화된 서브에이전트로 분담한다.

서브에이전트

역할

Planner

작업을 단계로 쪼개기

Executor

실제 작업 실행

Reviewer

결과 검증, 버그 찾기

Memory

기억 관리

Claude Code의 서브에이전트 시스템(code-reviewer, test-generator 등)이 이 패턴을 직접 구현한다.


3. 좋은 하네스의 4가지 원칙

원칙 1: 작은 단위로, 자주 검증

한 번에 100줄 코드를 생성하지 말고, 10줄 단위로 만들고 매번 동작 확인. 잘못된 길로 멀리 가지 않는다.

원칙 2: 명시적 도구 > 암묵적 추론

"AI가 알아서 잘 하겠지"보다 "AI에게 git status를 실행시키고 결과를 보고 판단하게 한다"가 안전하다.

원칙 3: 실패는 신호

도구 실행이 실패하면 그 에러를 AI에게 다시 보여주고 재시도하게 한다. "실패 → 시스템 종료"가 아니라 "실패 → 학습 신호".

원칙 4: 사람이 마지막 검증자

자동화는 좋지만 돌이키기 어려운 작업(git push --force, DB 삭제, 메일 발송)은 사람의 확인을 받는다.


4. Claude Code의 하네스 해부

Claude Code는 잘 설계된 하네스의 교과서 같은 사례다.

하네스 요소

Claude Code 구현

🔧 도구

Read·Write·Edit·Grep·Glob·Bash + MCP 서버

🔁 루프

Plan → Act → Verify 반복, 사용자 승인 게이트

💾 메모리

CLAUDE.md (프로젝트) + 글로벌 메모리 + 자동 메모리

📊 관찰

/status, /usage로 세션 상태 노출

👥 다중 에이전트

.claude/agents/의 서브에이전트 시스템

→ 사용자가 "PRD대로 앱 만들어줘" 한 줄 입력하면, 하네스가 수십~수백 번의 LLM 호출, 도구 실행, 검증 루프를 알아서 돌린다.

flowchart LR
    U["👤 사용자<br/>한 줄 지시"] --> H["⚙️ Claude Code 하네스"]
    H --> L1["LLM 호출 #1<br/>계획 세우기"]
    L1 --> T1["도구 호출<br/>git status"]
    T1 --> L2["LLM 호출 #2<br/>파일 분석"]
    L2 --> T2["도구 호출<br/>Edit file.py"]
    T2 --> L3["LLM 호출 #N<br/>검증·요약"]
    L3 --> U2["✅ 결과 보고"]
    style H stroke:#5e35b2,stroke-width:4px

5. 평가(Eval) 엔지니어링 — 4번째 트렌드

하네스 엔지니어링과 짝을 이루는 게 평가 엔지니어링(Evaluation Engineering)이다. "이 에이전트가 잘 동작하나?"를 어떻게 측정할까.

평가 방식

설명

자동 평가셋

정답 있는 작업 100~1000건을 모아 회귀 테스트

LLM-as-judge

GPT-6나 Claude가 "이 답이 좋은가" 평가

A/B 비교

두 버전의 답을 사람이 비교

프로덕션 관찰

실제 사용자 사용 로그에서 패턴 추출

평가 없으면 개선도 없다

"우리 에이전트가 작년보다 좋아졌나?"에 답을 못 하면 개선이 멈춘다. 그래서 진지한 AI 팀은 "코드만큼이나 평가셋에 투자"한다.


정리

  • 하네스 엔지니어링 = LLM 호출 주변의 시스템 전체를 설계하는 기술

  • 5가지 요소: 도구 · 실행 루프 · 메모리 · 관찰 · 다중 에이전트

  • 원칙: 작은 단위 · 명시적 도구 · 실패를 신호로 · 사람의 마지막 검증

  • Claude Code = 잘 설계된 하네스의 교과서

  • 짝이 되는 평가 엔지니어링도 함께 발전 중

4대 엔지니어링 한눈에

분야

질문

핵심

프롬프트 엔지니어링

"뭐라고 말할까?"

Context · Persona · CoT

컨텍스트 엔지니어링

"AI가 뭘 보고 있을까?"

압축 · 선별 · 우선순위

하네스 엔지니어링

"호출을 둘러싼 시스템은?"

도구 · 루프 · 메모리

평가 엔지니어링

"잘 되고 있나?"

평가셋 · LLM-judge · 트레이스

다음 장에서는 MCP, 즉 하네스의 핵심 부품인 "외부 도구를 AI에게 연결하는 표준"을 본다.

마지막 수정 2026년 10월 22일