하네스 (Harness)
하네스는 AI 코딩 도구 위에 얹어 쓰는 확장 층으로, 모델 자체를 바꾸지 않고 도구 연결·역할 분담·작업 절차를 더해 매번 빈 입력창 앞에서 시작하지 않게 만듭니다.
말에 씌우는 마구(馬具)에서 온 말입니다. 말의 능력은 그대로지만, 마구가 있어야 방향을 잡고 수레를 끕니다. 이 비유가 이 단어의 성격을 거의 다 설명해요.
AI 코딩 도구는 기본 상태에서 못 하는 일이 꽤 있습니다. 브라우저를 열어 결과를 확인하는 일, 최신 문서를 찾아 읽는 일, 큰 작업을 단계로 쪼개는 일 — 기본으로는 안 해요. 그 빈칸을 각자 채운 결과물이 하네스입니다.
어떤 종류가 있나요?
성격이 꽤 다른 두 부류가 같은 이름으로 불립니다. 헷갈리면 **"기능을 더하나, 절차를 더하나"**로 나누면 됩니다.
| 기능형 | 절차형 | |
|---|---|---|
| 하는 일 | 없던 능력을 추가 | 일하는 순서를 강제 |
| 예 | 브라우저 조작, 최신 문서 조회 | 기획 검토 → 구현 → 리뷰 → 배포 |
| 대표 형태 | MCP 서버, 플러그인 | 역할별 슬래시 커맨드 모음 |
| 언제 | 구체적으로 아쉬운 기능이 있을 때 | 뭘 시켜야 할지 모르겠을 때 |
감이 안 잡히면 이렇게 생각하세요. 기능형은 "방금 만든 화면이 제대로 나오는지 AI가 브라우저를 열어 직접 눈으로 확인하게 해주는 것", 절차형은 "'로그인 기능 만들어줘' 한 마디에 AI가 알아서 계획 세우기 → 만들기 → 스스로 검토하기 순서를 밟게 해주는 것"입니다.
기능형은 하나씩 필요할 때 추가하면 되고 부작용이 적습니다. 절차형은 효과가 큰 대신 그 도구가 정한 방식을 따라가게 되니 성향에 맞는지 먼저 봐야 해요.
누가 왜 만드나요?
거의 다 자기가 쓰려고 만든 것을 공개한 형태입니다. 실제로 매일 쓰는 사람이 만들어서 군더더기가 없는 대신, 그 사람과 일하는 방식이 다르면 계속 어긋나요.
언제 얹어야 하나요?
불편을 겪은 다음입니다. 순서가 바뀌면 "왜 되는지 모르는데 되는" 상태가 되고, 문제가 생겼을 때 내 코드가 잘못된 건지 하네스가 잘못된 건지 구분이 안 돼서 오히려 시간을 더 씁니다.
기준은 간단해요.
- 브라우저 확인, 최신 문서처럼 구체적으로 빈 기능이면 → 기능형 하나만 추가
- 뭘 시켜야 할지 몰라 헤매는 거면 → 절차형이 도움됨
- 작업이 느린 거면 → 하네스보다 대화 관리와 모델 선택을 먼저 점검
- 딱히 불편한 게 없으면 → 아무것도 깔지 않기
AI에게 시키기
지금 내 작업에서 하네스가 필요한지 판단해줘.
- 최근 며칠 내가 반복한 작업 패턴을 먼저 정리해봐
- 그중 도구가 없어서 못 한 일과, 단순히 내가 절차를 안 정해서 헤맨 일을 구분해줘
- 전자라면 어떤 종류의 도구가 필요한지, 후자라면 어떤 순서를 정하면 되는지 제안해줘
- 지금은 아무것도 추가할 필요가 없다는 결론도 괜찮아. 억지로 추천하지 마마지막 줄이 핵심입니다. 안 그러면 무조건 뭔가를 추천합니다.
혼동 주의
- 모델 성능이 좋아지는 게 아닙니다. 하네스는 모델이 닿는 범위와 일하는 순서를 바꿀 뿐, 추론 능력은 그대로예요
- MCP와 같은 말이 아닙니다. MCP는 도구를 붙이는 규격이고, 하네스는 그 규격으로 붙인 것들에 절차와 역할까지 얹은 더 넓은 개념입니다. MCP 서버 하나만 붙인 상태를 하네스라 부르진 않아요
- 공짜가 아닙니다. 얹은 만큼 컨텍스트 윈도우를 먹고, 여러 에이전트를 동시에 굴리는 종류는 토큰을 몇 배로 씁니다. 요금제를 확인하고 시작하세요
- 많이 깔수록 좋은 게 아닙니다. 서로 다른 하네스가 같은 파일에 규칙을 써넣으며 충돌하는 경우가 흔합니다. 하나씩, 효과를 확인하면서 늘리세요
관련 용어
- MCP (Model Context Protocol)MCP(Model Context Protocol)는 AI가 파일·데이터베이스·외부 서비스 같은 도구에 붙는 방식을 통일한 개방형 표준으로, 도구를 한 번 만들어 두면 이를 지원하는 어떤 AI 앱에서도 그대로 쓸 수 있게 합니다.
- 슬래시 커맨드 (Slash Command)슬래시 커맨드는 AI 코딩 도구의 입력창에 `/`를 쳐서 부르는 내장 명령으로, 자연어로 부탁하면 해석이 흔들리는 작업(대화 비우기·모델 변경·되감기)을 정해진 동작으로 정확히 실행합니다.
- 바이브코딩 (Vibe Coding)바이브코딩은 코드를 직접 타이핑하는 대신 AI에게 원하는 것을 자연어로 설명하고, 나온 결과를 확인하며 대화로 다듬어 소프트웨어를 만드는 개발 방식입니다.
Ears