[DEVELOP]
- [DEVELOP] DDD, TDD, BDD
- [DEVELOP] 개인정보 보호 웹사이트 구축을 위한
- [DEVELOP] 예제로 이해하는 웹 접근성 (accessibility)
- [DEVELOP] 예제로 보는 이미지 사용법 (Images)
- [DEVELOP] 예제로 보는 반응형 디자인 사용법 (Responsive Design)
- [DEVELOP] PWA 이해하기 (Progressive Web App)
- [DEVELOP] 개발 프로세스 Agile / Waterfall 이란?
- [DEVELOP] 주니어 개발자의 역습
- [DEVELOP] MCP(Model Context Protocol)
- [DEVELOP] MCP claude 적용하고 사용해보기
- [DEVELOP] 실시간 통신 방식 비교 (HTTP, SSE, WebSocket, stdio)
- [DEVELOP] 클로드 코드 50만 줄 소스코드 유출 사건 분석
- [DEVELOP] Claude Code ‘컨텍스트 로트’ 현상과 비용 80% 절감법
- [DEVELOP] 에이전트 하네스 엔지니어링이란? — AI 에이전트를 제대로 다루는 기술
“AI 에이전트를 쓰는 것은 쉽다. 하지만 잘 쓰는 것은 완전히 다른 문제다.”
AI 코딩 에이전트가 갈수록 강력해지고 있지만, 제대로 된 하네스(harness) 없이 사용하면 비용 폭탄, 성능 저하, 보안 사고로 이어질 수 있습니다. 이 글에서는 에이전트 하네스 엔지니어링의 개념과 핵심 구성 요소를 소개합니다.
하네스(Harness)란?
원래 하네스는 말이나 동물을 제어하기 위한 고삐·안장 세트를 뜻합니다. 자동차 산업에서는 수백 개의 전선을 묶어 정리하는 와이어 하네스로 잘 알려져 있죠.
소프트웨어 분야에서도 같은 원리가 적용됩니다.
| 분야 | 하네스의 역할 |
|---|---|
| 자동차 | 수백 개의 전선을 체계적으로 묶어 신호를 전달 |
| 소프트웨어 테스트 | 테스트 코드를 체계적으로 실행하고 결과를 수집 |
| AI 에이전트 | 에이전트의 행동, 자원, 보안을 체계적으로 제어 |
에이전트 하네스란, AI 에이전트가 작업을 수행할 때 필요한 규칙, 도구, 메모리, 보안 정책을 하나의 시스템으로 묶어 관리하는 아키텍처입니다.
왜 하네스가 필요한가?
AI 에이전트를 아무런 장치 없이 사용하면 다음과 같은 문제가 발생합니다.
1. 컨텍스트 로트 (Context Rot)
에이전트를 오래 사용하면 대화 기록이 쌓이면서 초기 지시문을 잊어버리는 현상이 발생합니다. 마치 연료 탱크가 짐으로 가득 차 연비가 떨어지는 것과 같습니다.
2. 비용 폭주
기본 설정 그대로 사용하면 불필요한 토큰 소비가 발생합니다. 생각 토큰(Thinking Tokens), 무분별한 MCP 서버 활성화, 고가 모델의 과도한 사용 등이 원인입니다.
3. 일관성 부재
같은 프로젝트에서 같은 에이전트를 써도, 세션마다 코딩 스타일이 달라지고 이전에 배운 패턴을 잊어버립니다.
4. 보안 취약점
에이전트에 과도한 권한을 부여하거나, 설정 파일에 API 키를 노출하는 등의 보안 사고가 발생할 수 있습니다.
에이전트 하네스의 5대 구성 요소
잘 설계된 에이전트 하네스는 다음 다섯 가지 레이어로 구성됩니다.
1
2
3
4
5
6
7
8
9
10
┌─────────────────────────────────────────────┐
│ 🎯 오케스트레이션 레이어 │
│ (작업 분배, 서브 에이전트 관리) │
├─────────────────────────────────────────────┤
│ 📏 규칙 레이어 🧠 메모리 레이어 │
│ (Rules, Conventions) (Instinct, Skills) │
├─────────────────────────────────────────────┤
│ 🔧 도구 레이어 🛡️ 보안 레이어 │
│ (MCP, Tools, Hooks) (Shield, Policies) │
└─────────────────────────────────────────────┘
1. 오케스트레이션 레이어 — 지휘자
에이전트에게 어떤 작업을 어떤 순서로 할지 지시하는 계층입니다.
| 구성 요소 | 역할 |
|---|---|
| 메인 에이전트 | 사용자와 대화하며 전체 작업을 조율 |
| 서브 에이전트 | 특정 분야(테스트, 보안, 문서화)를 전담 |
| 워크플로우 | 반복적인 작업 패턴을 자동화 |
핵심 원칙: 모든 작업을 메인 에이전트 하나에 맡기지 않습니다. 전문 분야별로 서브 에이전트를 두어 관심사를 분리합니다.
1
2
3
4
5
6
사용자 요청: "로그인 기능 구현해줘"
│
├─ 메인 에이전트: 전체 설계
├─ 코드 에이전트: 구현
├─ 테스트 에이전트: 테스트 작성
└─ 보안 에이전트: 취약점 점검
2. 규칙 레이어 — 헌법
에이전트가 항상 지켜야 할 원칙을 정의합니다.
1
2
3
4
5
6
7
8
9
10
11
12
# 예시: CLAUDE.md 또는 .cursorrules
## 코딩 규칙
- TypeScript strict 모드 사용
- 함수형 컴포넌트만 사용
- 에러 핸들링 필수
## 커밋 규칙
- Conventional Commits 형식 준수
- 커밋 전 반드시 lint + test 통과
규칙이 너무 많으면 오히려 성능이 떨어집니다. 2,000~3,000 토큰을 넘지 않도록 관리하는 것이 좋습니다.
3. 메모리 레이어 — 경험 축적
에이전트가 반복 작업에서 패턴을 학습하고 기억하는 계층입니다.
| 메모리 유형 | 지속 기간 | 예시 |
|---|---|---|
| 세션 메모리 | 대화 중 | 현재 작업의 컨텍스트 |
| 인스팅트(Instinct) | 30일 | “이 프로젝트는 Vitest를 선호한다” |
| 스킬(Skill) | 영구 | TDD 워크플로우, 보안 리뷰 체크리스트 |
1
2
작업 관찰 → 패턴 탐지 → 인스팅트 저장 → 스킬 승격
(반복 3회 이상) (신뢰도 0.3~0.9)
메모리 레이어가 없으면, 에이전트는 매번 처음부터 시작합니다. 팀원이 매일 기억을 잃는 것과 같습니다.
4. 도구 레이어 — 팔다리
에이전트가 외부 세계와 상호작용하는 방법을 정의합니다.
| 도구 종류 | 예시 |
|---|---|
| 파일 시스템 | 파일 읽기, 쓰기, 검색 |
| 터미널 | 명령어 실행, 빌드, 테스트 |
| MCP 서버 | Git, DB, 브라우저, API 연동 |
| 훅(Hooks) | 도구 실행 전후에 추가 로직 실행 |
주의: MCP 서버를 너무 많이 활성화하면 도구 설명만으로 토큰이 소진됩니다. 프로젝트당 10개 이하, 활성 도구 80개 이하를 권장합니다.
5. 보안 레이어 — 방패
에이전트의 행동에 제약과 감사 기능을 부여합니다.
| 보안 요소 | 역할 |
|---|---|
| 권한 정책 | 에이전트가 접근할 수 있는 파일/명령 제한 |
| 시크릿 관리 | API 키 등 민감 정보 보호 |
| 감사 로그 | 에이전트의 모든 행동 기록 |
| 정적 분석 | 설정 파일의 취약점 자동 검출 |
보안 레이어 없이 에이전트에게 전체 시스템 권한을 주는 것은, 회사 금고 비밀번호를 인턴에게 알려주는 것과 같습니다.
하네스 설계의 3대 원칙
원칙 1: 최소 권한의 원칙 (Least Privilege)
에이전트에게는 작업에 필요한 최소한의 도구와 권한만 부여합니다.
1
2
❌ "모든 파일 읽기/쓰기 + 모든 명령 실행 허용"
✅ "src/ 디렉토리 읽기/쓰기 + npm test만 실행 허용"
원칙 2: 컨텍스트 경량화 (Context Diet)
에이전트에 주입하는 정보는 필요한 것만 최소한으로 유지합니다.
| 상황 | 비효율적 접근 | 효율적 접근 |
|---|---|---|
| 규칙 파일 | 10,000 토큰짜리 규칙 | 2,000 토큰 핵심 규칙 |
| MCP 서버 | 20개 활성화 | 필요한 5~7개만 활성화 |
| 컨텍스트 관리 | 세션 끝까지 유지 | 마일스톤마다 compact 수행 |
원칙 3: 점진적 확장 (Progressive Enhancement)
처음부터 모든 기능을 사용하지 않고, 핵심부터 시작하여 점진적으로 확장합니다.
1
2
3
4
Week 1: 기본 설정 최적화 (model, thinking tokens, auto-compact)
Week 2: 규칙 레이어 정비 (CLAUDE.md, .cursorrules 정리)
Week 3: 메모리 레이어 도입 (인스팅트 시스템)
Week 4: 보안 레이어 적용 (Agent Shield)
현재 주요 하네스 시스템 비교
| 하네스 시스템 | 대상 도구 | 특징 |
|---|---|---|
| Everything Claude Code (ECC) | Claude Code 외 6종 | 47 에이전트, 181 스킬, 커뮤니티 주도 |
| Cursor Rules | Cursor IDE | .cursorrules 기반 규칙 시스템 |
| AGENTS.md | Codex, 범용 | 마크다운 기반 에이전트 설정 |
| Custom Harness | 자체 구축 | 프로젝트 맞춤형 설정 |
현재 가장 큰 커뮤니티를 가진 하네스 시스템은 Everything Claude Code (ECC)로, GitHub에서 14만 7천 명 이상이 즐겨찾기하고 있습니다.
시작하기 — 오늘 당장 할 수 있는 것
에이전트 하네스 엔지니어링을 처음 시작한다면, 다음 세 단계부터 진행해 보세요.
Step 1: 에이전트 설정 최적화
사용 중인 AI 코딩 도구의 설정 파일을 점검합니다.
1
2
3
4
5
6
7
{
"model": "sonnet",
"env": {
"MAX_THINKING_TOKENS": "10000",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "50"
}
}
Step 2: 프로젝트 규칙 파일 작성
프로젝트 루트에 에이전트가 따를 규칙 파일을 만듭니다. 2,000 토큰 이내로 핵심만 담습니다.
Step 3: 컨텍스트 관리 습관화
- 작업 전환 시
/clear실행 - 마일스톤 완료 시
/compact실행 - 주기적으로
/cost확인
정리
| 구성 요소 | 하는 일 | 없으면 벌어지는 일 |
|---|---|---|
| 오케스트레이션 | 작업 분배와 조율 | 단일 에이전트 과부하 |
| 규칙 | 일관된 행동 보장 | 세션마다 다른 코딩 스타일 |
| 메모리 | 경험 축적과 재활용 | 매번 처음부터 학습 |
| 도구 | 외부 시스템 연동 | 수동 작업 반복 |
| 보안 | 권한 제어와 감사 | 보안 사고 위험 |
에이전트 하네스 엔지니어링은 AI를 더 똑똑하게 만드는 기술이 아닙니다. 이미 똑똑한 AI가 제 실력을 발휘할 수 있는 환경을 만드는 기술입니다.
AI 에이전트 시대에서 가장 중요한 역량은 더 이상 “프롬프트를 잘 쓰는 것”이 아니라, 에이전트를 체계적으로 관리하는 하네스를 설계하는 것입니다.
참고자료
| 분류 | 링크 |
|---|---|
| ECC 저장소 | affaan-m/everything-claude-code |
| Anthropic 공식 | Claude Code 문서 |
| Cursor 공식 | Cursor Rules 가이드 |
| 관련 포스팅 | [DEVELOP] Claude Code ‘컨텍스트 로트’ 현상과 비용 80% 절감법 |