한빛미디어 서평단 나는리뷰어다 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
하네스 엔지니어링의 중요성에 대해 줄곧 들어왔지만, 실체를 정확히 알고 있었다고 말하기는 어려웠습니다.
대략적인 감각은 있었어요. “AI가 일하기 좋은 환경을 만들어야 한다”, “에이전트를 잘 나눠야 한다”, “검증 루프가 필요하다” 정도의 문장들은 익숙했습니다. 하지만 그것이 실제로 어떤 파일로 남아야 하는지, 어떤 역할로 쪼개져야 하는지, 어떤 기준으로 스킬과 에이전트와 오케스트레이터를 분리해야 하는지까지는 선명하지 않았습니다.
『하네스 엔지니어링 with 클로드 코드』는 그 흐릿했던 감각에 구체적인 형태를 부여해준 책이었습니다.
이 책을 읽고 나서야 하네스 엔지니어링이 단순히 “AI를 더 잘 쓰는 요령”이 아니라는 점을 이해하게 되었습니다. 하네스는 모델 바깥에 역할, 권한, 도구, 검증, 관측, 협업 구조를 설계하는 일입니다. 다시 말해 AI에게 일을 시키는 기술이라기보다, AI가 일할 수 있는 환경을 만드는 기술에 가까웠습니다.
왜 모델보다 환경이 중요해지는가
책의 시작은 단일 에이전트의 한계에서 출발합니다. 이 점이 좋았습니다. 보통 AI 도구를 다루는 글은 “어디까지 할 수 있는가”를 먼저 보여주기 쉽습니다. 그런데 이 책은 오히려 혼자 일하는 AI가 왜 위험한지, 왜 자기 실수를 잘 보지 못하는지, 왜 권한이 넓을수록 문제가 커질 수 있는지를 먼저 이야기합니다.
이 문제의식은 실제 개발 업무와도 닮아 있습니다. 좋은 개발자 한 명이 모든 일을 다 할 수 있다고 해서, 모든 권한과 책임을 한 사람에게 몰아주는 조직이 좋은 조직은 아닙니다. 요구사항을 정리하는 사람, 구현하는 사람, 리뷰하는 사람, 배포를 검증하는 사람이 나뉘어 있을 때 실수를 발견할 가능성이 높아집니다. AI 에이전트도 마찬가지였습니다.
결국 문제는 모델의 지능만이 아니었습니다. 어떤 구조 안에서 일하게 할 것인가의 문제였습니다.
이 지점에서 책의 핵심 문장인 “모델이 아니라 하네스가 결과를 결정한다”는 말이 이해되었습니다. 이전에는 이 문장이 조금 선언처럼 느껴졌다면, 책을 읽고 나서는 실제 작업 구조에 관한 말로 받아들여졌습니다. 같은 모델이라도 어떤 역할을 부여받았는지, 어떤 도구를 쓸 수 있는지, 어떤 결과 기준을 따라야 하는지, 누가 검증하는지에 따라 전혀 다른 결과를 낼 수 있다는 뜻이었습니다.
에이전트, 스킬, 오케스트레이터를 분리해서 보기
책의 Part 02는 하네스를 이루는 핵심 요소를 에이전트, 스킬, 오케스트레이터로 나누어 설명합니다. 저는 이 구분이 하네스 엔지니어링의 실체를 이해하는 데 가장 중요하다고 느꼈습니다.
에이전트는 역할을 맡습니다. 단순히 “AI 하나”가 아니라, 특정한 책임 범위를 가진 작업자에 가깝습니다. 스킬은 반복 가능한 절차와 지식을 담습니다. 매번 대화로 설명할 필요 없이, 특정 상황에서 다시 꺼내 쓸 수 있는 작업 단위입니다. 오케스트레이터는 여러 에이전트와 스킬이 함께 움직일 때 전체 흐름을 조율합니다.
이렇게 나누고 나니, 제가 그동안 막연하게 “AI 워크플로우”라고 부르던 것들이 더 선명하게 보였습니다.
예를 들어 Bookgolas 작업을 할 때도, 그냥 “이슈 구현해줘”라고 말하는 것과 구조를 나누어 맡기는 것은 다릅니다. 요구사항을 정리하는 역할, 구현하는 역할, CodeRabbit 리뷰를 반영하는 역할, PR 설명을 작성하는 역할, daily ship까지 연결하는 역할은 서로 다릅니다. 이 역할들을 매번 즉흥적으로 설명하면 흐름이 흔들리지만, 파일과 스킬로 남기면 반복 가능한 작업 방식이 됩니다.
하네스 엔지니어링은 바로 이 지점을 다루고 있었습니다. AI에게 명령을 잘 내리는 것이 아니라, AI가 맡을 수 있는 역할과 재사용 가능한 절차를 설계하는 일이었습니다.
역할은 대화가 아니라 파일로 남아야 한다
Chapter 04의 에이전트 정의 파일 이야기는 이 책 전체의 핵심을 가장 선명하게 보여주는 부분이었습니다. 책에서는 에이전트 정의 파일을 단순한 설명서가 아니라 역할 계약서처럼 다룹니다.
이 표현이 인상 깊었습니다. 에이전트를 대화 중에만 정의하면, 그 역할은 세션이 끝나는 순간 사라집니다. 어제는 잘 굴러가던 팀이 오늘은 사라지는 이유가 여기에 있습니다. 어제의 대화 맥락 안에서는 역할과 기대치가 살아 있었지만, 파일로 남아 있지 않으면 오늘 다시 같은 팀을 재현하기 어렵습니다.
저도 비슷한 경험을 자주 했습니다. 어떤 날은 Hermes가 제가 원하는 방식으로 독서 기록을 정리하고, 어떤 날은 개발 채널의 맥락을 잘 이해하고, 어떤 날은 글쓰기 톤을 잘 맞춥니다. 그런데 그 맥락이 명시적인 skill이나 routing 문서로 남아 있지 않으면 다음 세션에서 다시 설명해야 합니다. 결국 좋은 결과를 만드는 것은 그날그날의 대화 감각이 아니라, 역할을 지속 가능한 파일로 남기는 구조였습니다.
이 책을 읽으며 제가 만들고 있던 channel routing, trigger map, skill 체계가 단순한 메모가 아니라 하네스의 일부라는 점을 더 분명히 이해하게 되었습니다.
스킬은 ‘알고 있는 것’이 아니라 ‘호출되는 것’이다
스킬 설계에 대한 설명도 좋았습니다. 예전에는 스킬을 “특정 작업을 잘하기 위한 지식 묶음” 정도로 생각했습니다. 하지만 책을 읽고 나니, 스킬에서 중요한 것은 지식을 얼마나 많이 담았는가가 아니라 적절한 순간에 호출되도록 설계되었는가였습니다.
Description이 호출을 결정한다는 설명이 특히 와닿았습니다. 아무리 좋은 절차와 규칙을 담고 있어도, 필요한 순간에 호출되지 않으면 없는 것과 다르지 않습니다. 반대로 모든 문서를 항상 들고 있으면 맥락이 무거워지고 판단이 흐려집니다. 필요한 순간에 필요한 만큼 펼쳐지는 구조가 중요합니다.
이 부분은 제가 Hermes를 쓰며 계속 부딪히는 문제와도 연결됩니다. 독서 리뷰를 쓸 때는 book-review skill이 필요하고, Notion에 작성할 때는 Notion API 방식이 필요하고, 개발 작업에서는 daily-ship이나 work-build 같은 skill이 필요합니다. 중요한 것은 이 모든 지식을 한꺼번에 들고 있는 것이 아니라, 상황에 맞게 정확히 불러오는 일입니다.
스킬은 저장된 문서가 아니라 실행되는 작업 기억에 가까웠습니다.
오케스트레이터는 병렬 작업의 안전장치다
오케스트레이터 장에서는 하네스가 개인 생산성을 넘어 팀 구조로 확장됩니다. 에이전트가 한두 명일 때는 단순히 역할을 나누는 것만으로도 충분할 수 있습니다. 하지만 여러 에이전트가 동시에 움직이고, 작업 사이에 의존성이 생기고, 결과를 모아 판단해야 하는 순간부터는 전체 흐름을 조율하는 구조가 필요합니다.
이 부분을 읽으며 병렬 에이전틱 코딩을 떠올렸습니다. 여러 worktree에서 Claude Code나 OpenCode를 동시에 돌리면 속도는 빨라질 수 있습니다. 하지만 역할과 경계가 명확하지 않으면 서로 다른 방향으로 구현하거나, 같은 파일을 건드리거나, 마지막에 합치기 어려운 결과가 나오기 쉽습니다.
오케스트레이션은 단순히 여러 에이전트를 띄우는 기술이 아니었습니다. 누가 어떤 작업을 맡고, 어떤 순서로 진행하고, 어떤 결과물을 서로 전달하고, 어디서 검증하고, 언제 종료할지를 정하는 안전장치였습니다. 병렬화가 생산성이 되려면, 그 전에 조율 구조가 있어야 했습니다.
메타스킬과 아키텍처 패턴이 보여준 것
Part 03에서 다루는 메타스킬과 아키텍처 패턴은 하네스 엔지니어링을 한 단계 더 추상화합니다. 처음에는 에이전트와 스킬을 직접 만듭니다. 그런데 이런 팀을 반복해서 만들다 보면, 팀을 만드는 과정 자체도 하나의 스킬이 될 수 있습니다.
도메인을 분석하고, 팀 아키텍처를 설계하고, 에이전트와 스킬을 만들고, 오케스트레이션을 구성하고, 검증하는 과정은 반복됩니다. 그렇다면 이 반복 자체를 하네스로 만들 수 있습니다. 이 발상이 재미있었습니다. 자동화의 대상이 단순 작업에서 “작업 구조를 만드는 일”로 올라가는 느낌이었습니다.
여섯 가지 아키텍처 패턴도 실용적으로 느껴졌습니다. 파이프라인, 팬아웃·팬인, 전문가 풀, 생성-검증, 감독자, 계층적 위임 같은 패턴은 AI만의 특별한 개념이라기보다 조직 설계나 분산 시스템에서 익숙한 사고방식과 닮아 있었습니다. 그래서 더 설득력 있었습니다.
특히 생성-검증 패턴과 팬아웃·팬인 패턴이 기억에 남았습니다. AI가 만든 결과를 다른 AI가 검증하거나, 하나의 문제를 여러 관점에서 본 뒤 다시 합치는 방식은 실제 개발 업무에서 바로 써볼 수 있는 구조입니다. AI에게 일을 맡길수록, 잘 만드는 역할만큼 잘 의심하는 역할도 중요해진다는 생각이 들었습니다.
하네스는 한 번 만들고 끝나는 것이 아니다
Chapter 10의 하네스 등록과 진화는 제가 실제로 가장 오래 가져가야 할 부분처럼 느껴졌습니다. 하네스는 한 번 만들어두는 설정 파일이 아니라, 계속 운영하며 진화시키는 작업 환경입니다.
처음 만든 규칙은 언제든 틀릴 수 있습니다. 실제로 써보면 호출 조건이 애매하거나, 역할이 겹치거나, 검증 단계가 부족하거나, 너무 무거워서 잘 쓰이지 않는 절차가 드러납니다. 그러면 다시 고쳐야 합니다. 변경 이력을 남기고, drift를 감지하고, 피드백을 반영하고, 필요하면 부분 재실행해야 합니다.
이 부분에서 하네스 엔지니어링은 단순 자동화와 다르다고 느꼈습니다. 자동화는 정해진 절차를 반복하는 느낌이 강하지만, 하네스는 반복을 통해 더 나은 작업 방식으로 진화해야 합니다. AI를 위한 환경을 만드는 동시에, 내가 일하는 방식을 관찰하고 개선하는 시스템이기도 했습니다.
실전 팀 사례가 개념을 현실로 끌고 온다
Part 04의 코드 리뷰 자동화 팀, 풀스택 기능 구현 팀, 레거시 마이그레이션 팀, 디버깅/RCA 팀은 앞에서 설명한 개념을 현실적인 개발 장면으로 옮겨줍니다.
코드 리뷰 자동화 팀은 생성과 검증을 분리하는 구조를 보여줍니다. 풀스택 기능 구현 팀은 하나의 기능도 여러 역할로 나눌 수 있음을 보여줍니다. 레거시 마이그레이션 팀은 반복적이고 규모가 큰 작업에서 하네스가 왜 필요한지 보여줍니다. 디버깅/RCA 팀은 단순히 문제를 고치는 것을 넘어, 원인을 추적하고 재발 방지까지 연결하는 구조를 보여줍니다.
이 사례들이 좋았던 이유는, 하네스 엔지니어링이 멋진 개념에서 끝나지 않고 실제 개발자가 마주치는 문제로 내려오기 때문입니다. “로컬에선 잘 되는데요” 같은 문제는 너무 익숙한 장면입니다. 이런 문제를 AI에게 맡길 때도 관측, 역할 분리, 검증, 책임 경계가 필요하다는 점이 자연스럽게 이해되었습니다.
좋았던 점
첫째, 이 책은 AI 도구를 낙관적으로만 다루지 않습니다. 단일 에이전트의 위험과 구조적 한계를 먼저 짚고, 그 한계를 다루기 위한 방식으로 하네스를 제안합니다. 생산성보다 신뢰성을 먼저 이야기하기 때문에 오히려 실무적으로 느껴졌습니다.
둘째, 추상적인 개념이 파일 구조로 내려옵니다. 에이전트 정의 파일, 스킬 파일, 오케스트레이터, CLAUDE.md 포인터, 변경 이력 같은 구체적인 단위가 계속 등장합니다. 덕분에 읽는 동안 “내 환경에서는 이걸 어떤 파일로 만들 수 있을까?”를 자연스럽게 떠올리게 됩니다.
셋째, 개인 생산성에서 조직 운영까지 이어지는 확장성이 있습니다. 혼자 Claude Code를 잘 쓰는 팁에서 멈추지 않고, 여러 에이전트가 협업하는 팀, 그 팀을 만드는 메타스킬, 시간이 지나며 진화하는 하네스까지 다룹니다. 그래서 개인 프로젝트에도 적용할 수 있고, 팀 단위 개발 문화에도 연결해볼 수 있습니다.
아쉬운 점
아쉬운 점도 있습니다. 우선 초급이라고 보기에는 개념의 밀도가 꽤 높습니다. Claude Code나 AI 코딩 도구를 거의 써보지 않은 독자라면 에이전트, 스킬, 오케스트레이터, 메타스킬, 실행 모드 같은 용어가 한 번에 몰려와 조금 벅찰 수 있을 것 같습니다.
또 하나는 독자의 환경에 따라 실습 체감이 다를 수 있다는 점입니다. 회사 보안 정책, 로컬 개발 환경, 사용하는 AI 도구, 모델 비용 구조에 따라 책의 패턴을 그대로 적용하기 어려운 경우도 있을 것입니다. 그래서 이 책은 정답 구조를 그대로 복사하기보다, 자기 작업 환경에 맞게 작게 실험하며 읽는 편이 좋아 보였습니다.
마지막으로, 이 분야 자체가 너무 빠르게 변하고 있습니다. Claude Code와 에이전트 생태계가 계속 바뀌는 만큼 구체적인 명령어나 도구 사용 방식은 시간이 지나며 달라질 수 있습니다. 다만 책의 핵심 메시지, 즉 모델 자체보다 모델을 둘러싼 환경과 구조가 중요하다는 관점은 꽤 오래 남을 것 같습니다.
이 책을 읽고 바꾸고 싶은 것
이 책을 읽고 나서 가장 먼저 하고 싶은 것은, 제가 이미 쓰고 있는 AI 작업 흐름을 더 명시적인 하네스로 정리하는 일입니다.
사이드 프로젝트에서는 Bookgolas, Baroguni, byungskerlog 같은 프로젝트마다 반복되는 작업이 있습니다. 이슈를 만들고, 구현 계획을 세우고, 브랜치를 나누고, PR을 만들고, 리뷰를 받고, daily ship을 하는 흐름이죠. 지금도 어느 정도 skill과 문서로 남기고 있지만, 더 엄밀하게 보면 각 단계마다 필요한 에이전트 역할과 검증 기준을 분리할 수 있을 것 같습니다.
회사 일에서도 비슷합니다. AI에게 단순히 “이거 구현해줘”라고 맡기기보다, 요구사항 정리자, 구현자, 리뷰어, 테스트 관찰자 같은 역할을 나누면 더 안전하게 쓸 수 있을 것입니다. 특히 프론트엔드 개발에서는 UI 구현 결과를 보는 눈, 제품 요구사항을 해석하는 눈, 코드 품질을 보는 눈이 모두 필요하기 때문에 단일 에이전트에게 전부 맡기기보다 역할을 분리하는 편이 더 자연스러워 보입니다.
개인적으로는 Hermes와 Obsidian, Discord, Notion을 더 잘 연결하고 싶어졌습니다. 책을 읽고, 글을 쓰고, 개발을 하고, 회고를 남기는 모든 흐름에서 “이 작업은 어떤 하네스로 반복될 수 있을까?”를 묻게 되었습니다. 단순 자동화가 아니라, 나의 일하는 방식을 파일과 규칙으로 축적하는 일에 가까워졌습니다.
마치며
『하네스 엔지니어링 with 클로드 코드』는 Claude Code 사용법 책처럼 보이지만, 실제로는 AI 시대의 작업 설계에 관한 책에 가깝다고 느꼈습니다.
저는 하네스 엔지니어링이라는 말이 중요하다는 것은 알고 있었습니다. 하지만 이 책을 읽기 전까지는 그것이 정확히 무엇으로 구성되는지, 어디서부터 설계해야 하는지, 왜 파일과 역할과 검증 루프가 중요한지까지는 선명하게 이해하지 못했습니다.
이제는 조금 더 분명해졌습니다. 하네스 엔지니어링은 AI를 똑똑하게 만드는 일이 아니라, AI가 믿고 맡길 수 있는 방식으로 일하게 만드는 환경 설계입니다. 좋은 모델을 고르는 일도 중요하고, 좋은 프롬프트를 쓰는 일도 중요하지만, 앞으로 더 중요해질 것은 그 모델이 어떤 구조 안에서 일하는가일지도 모르겠습니다.
에이전틱 코딩이 점점 더 자연스러워질수록 개발자의 역할은 사라진다기보다 조금 다른 곳으로 이동하는 것 같습니다. 코드를 직접 치는 시간은 줄어들 수 있지만, 무엇을 만들지 정하고, 어떤 구조로 맡길지 설계하고, 결과를 판단하는 책임은 더 커질 테니까요.
이 책은 그 변화의 한가운데에서 꽤 실용적인 언어를 건네줍니다.
“모델이 아니라 하네스가 결과를 결정한다.”
이 문장을 이제는 조금 더 구체적으로 이해하게 되었습니다.