오프닝 : 앤트로픽 ClaudeCode 유출 50만 줄을 까봤더니, 'Claude'가 없었다
2026년 3월 31일, Anthropic의 어느 엔지니어가 평생 잊지 못할 하루를 보냈습니다.
평범한 npm publish 명령(개발자가 만든 코드를 인터넷에 공개 배포하는 명령어예요) 한 번에 Claude Code의 전체 소스 코드, TypeScript(자바스크립트에 타입 검사 기능을 더한 프로그래밍 언어. 큰 규모의 소프트웨어를 안정적으로 만들 때 많이 씁니다) 약 50만 줄, 1,900개 파일이 통째로 공개 레지스트리에 올라가버린 거죠. 몇 시간 만에 GitHub 스타 5만 개가 찍혔고, 회의가 멈췄고, 개발자들의 Slack 채널이 불탔습니다.
💡 GitHub 스타란? 마음에 드는 프로젝트에 누르는 '좋아요'예요. 5만 개가 몇 시간 만에 찍혔다는 건, 전 세계 개발자가 동시에 달려들었다는 뜻입니다.
그런데 사람들이 진짜로 충격받은 건 유출 자체가 아니라, 그 코드 안에 들어있던 내용이었어요.
50만 줄을 까봤더니 그 안에 정작 'Claude(모델)'는 단 한 줄도 없었거든요. 모델은 그냥 API(다른 프로그램이 Claude를 불러 쓸 수 있게 해주는 창구. 식당으로 치면 주문 카운터예요) 호출 한 줄로 끝나는 외부 부품이었고, 나머지 50만 줄은 전부 모델을 둘러싸고 있는 코드였습니다.
우리가 "Claude Code 진짜 잘 만들었네" 하고 칭찬하던 것의 정체는, 사실 모델이 아니라 그 주변에 둘러놓은 코드 50만 줄이었던 셈이죠.
그 코드의 이름이 바로 하네스(Harness) 고요.
그날 이후로 업계의 모든 채팅창에 한 단어가 떠다니기 시작했습니다. Harness Engineering.

1. 하네스가 뭐냐고요? 강아지 산책에서 시작해볼게요
강아지를 키워보신 분은 아실 거예요.
목줄(leash, 목에만 거는 줄)만 채우고 산책을 나가면 사고가 납니다. 강아지가 신나서 튀어나가면 목이 졸리고, 통제도 잘 안 되죠. 그래서 요즘은 다들 하네스(가슴줄) 를 채웁니다.
하네스는 강아지 몸 전체를 안전하게 감싸면서 이렇게 작동해요.
- 어디로 가면 좋은지 부드럽게 안내해주고
- 위험한 쪽으로 튀어나가지 못하게 잡아주고
- 갑자기 멈춰도 다치지 않게 충격을 분산시켜주죠
목줄이 "한 점"으로 강아지를 잡는 거라면,
하네스는 "몸 전체"로 강아지를 감싸안는 도구인 거예요.
AI 모델도 똑같습니다.
Claude나 GPT 같은 모델(엄청난 양의 글을 학습해서 사람처럼 답하는 AI의 본체) 그 자체는, 비유하자면 그냥 활발한 강아지예요. 똑똑하고, 에너지 넘치고, 어디로 튈지 모릅니다. 그냥 풀어놓으면 엉뚱한 답을 내거나, 위험한 명령을 그대로 실행해버리거나, 어제 한 약속을 까먹기도 하고요.
여기에 하네스를 입히면 이렇게 바뀝니다.
- 어떤 도구를 쓸 수 있는지 정해주고 (권한)
- 위험한 명령은 사람한테 한 번 확인받게 하고 (안전장치)
- 이전 대화를 차곡차곡 기억하고 (메모리)
- 정해진 작업 흐름을 따라가게 해주죠 (워크플로우)
Claude Code가 그냥 "Claude한테 채팅하는 것"과 차원이 다른 이유가 바로 여기 있습니다. Claude Code = Claude(모델) + 두꺼운 하네스(코드 50만 줄) 인 거예요.

2. 그래서 왜 지금 이렇게 뜨거워졌을까요
세 가지 사건이 거의 동시에 터졌습니다.
첫째, 실물이 공개됐어요.
유출 사건 덕분에 처음으로 "잘 만든 하네스의 내부"가 공개됐습니다. 46,000줄짜리 query engine, 권한이 걸린 약 40개의 도구, 컨텍스트가 가득 차도 작업의 맥락을 잃지 않게 설계된 3계층 메모리 구조. 용어가 좀 어렵죠? 풀어보면 이런 뜻이에요.
📚 용어 풀이
- Query engine : AI에게 질문을 보내고 답을 받아오는 과정을 관리하는 엔진. "어떻게 물어볼지, 답이 늦으면 어떻게 할지, 비용은 얼마 들지"까지 다 챙겨주는 비서 같은 코드예요.
- 권한(Permission) : "이 도구는 자동으로 써도 돼, 저 도구는 사람한테 물어보고 써" 같은 규칙. 위험한 명령(파일 삭제 등)에 자물쇠를 거는 셈입니다.
- 컨텍스트(Context) : AI가 한 번에 기억할 수 있는 대화 양. 사람으로 치면 단기 기억이고, 가득 차면 앞쪽 내용부터 잊어버려요.
- 3계층 메모리 구조 : 단기 기억이 가득 차도 중요한 건 따로 빼서 저장해두는 구조. 마치 책상 위(단기), 책장(중기), 창고(장기)에 나눠 정리하는 것과 비슷해요.
이 모든 게 모델 바깥에서 돌아가고 있었어요. 더 이상 추상적인 개념이 아니라 "남들은 이렇게 만들었구나" 하고 눈으로 볼 수 있게 된 거죠.
둘째, 돈이 증명했어요.
Claude Code는 출시 6개월 만에 연 매출 10억 달러를 넘겼습니다. 이 매출을 만든 건 더 나은 프롬프트가 아니라, 모델 주변에 잘 짜놓은 하네스, 스트리밍 에이전트 루프, 권한 기반 도구 디스패치, 긴 세션 동안 모델이 집중을 잃지 않게 해주는 컨텍스트 관리 레이어였어요.
📚 용어 풀이
- 스트리밍 에이전트 루프 : AI가 한 번에 답을 다 내놓는 게 아니라, 생각하고-도구 쓰고-결과 보고-다시 생각하고 하는 과정을 끊임없이 반복하는 흐름이에요. 사람이 일하는 모습과 비슷합니다.
- 도구 디스패치 : "이 일은 검색 도구, 저 일은 파일 도구"처럼 상황에 맞는 도구를 자동으로 골라 부르는 시스템.
Claude 모델 자체는 누구나 API로 부를 수 있잖아요. 차이를 만든 건 그 주변이었습니다.
셋째, Anthropic이 공식화했어요.
2026 Code with Claude 컨퍼런스에서 Anthropic이 못박은 방향성이 하나 있는데요.
"프롬프트 엔지니어링은 줄이고, 하네스 엔지니어링으로 가라."
📚 프롬프트 엔지니어링이란?
AI에게 보내는 질문이나 지시문(프롬프트)을 잘 다듬어서 더 좋은 답을 끌어내는 기술이에요. 지난 2년간 "AI 잘 쓰는 사람 = 프롬프트 잘 쓰는 사람"이었죠.
지난 2년 동안 우리가 그렇게 매달렸던 "프롬프트 잘 짜기"가, 이제 큰 그림의 한 조각으로 슬그머니 내려앉은 순간이었습니다.

3. "그럼 그냥 평가/테스트 도구 아니에요?"
여기서 많이들 헷갈리실 거예요.
"하네스"라는 단어는 원래 개발자 사회에서 테스트 하네스(test harness) 라는 말로 쓰여왔습니다. "AI 답변이 맞았는지 자동으로 채점하는 시스템" 정도의 의미였죠. 그래서 검색해보면 "AI 검증 인프라"라는 설명이 자주 나옵니다.
이 설명도 맞아요. 다만 일부만 맞습니다.
테스트 하네스는 강아지 하네스의 "충격 분산" 기능 하나에 해당하거든요. 진짜 하네스는 방향 제어, 권한 관리, 메모리, 도구 연동, 평가까지 전부 포함하는 개념입니다.
한 줄로 정리하면 이래요.
| 무엇인가 | 하는 일 |
|---|---|
| 프롬프트 / CLAUDE.md | "이렇게 행동해라" 라고 지시문을 적는 것 |
| 모델링 (Pydantic 등) | "결과물은 이런 형식이어야 한다" 라고 틀을 잡는 것 |
| 테스트 하네스 (Eval) | "방금 한 답이 맞았는지" 자동으로 채점하는 것 |
| 🐕 하네스 엔지니어링 | 위 세 가지 + 도구 + 권한 + 메모리 + 안전장치를 전부 입히는 일 |
📚 용어 풀이
- CLAUDE.md
- Pydantic : 파이썬에서 데이터의 형태(이름은 문자열, 나이는 숫자 등)를 미리 정해두고 검사해주는 도구. AI 답변이 정해진 틀을 벗어나지 않게 잡아줍니다.
- Eval(이밸) : Evaluation의 줄임말. "이번에 한 답변이 점수 몇 점짜리인가"를 자동으로 채점하는 시스템이에요.
CLAUDE.md와 Pydantic은 하네스를 만드는 재료예요. 하네스 엔지니어링은 그 재료들을 가지고 모델 전체를 감싸안는 옷을 짓는 일이고요.

4. Claude Code 사용자가 오늘부터 할 수 있는 6단계
AIMIT 멤버 대부분이 아직 Claude Code를 본격적으로 안 쓰고 계시다는 거 알아요. 괜찮습니다. 하네스는 한 번에 다 입히는 게 아니라, 레벨업하듯 한 겹씩 올리면 되거든요.
[레벨 0.] 그냥 채팅처럼 쓰기
Claude Code를 열어 매번 처음부터 설명합니다. 같은 실수가 반복되고, 위험한 명령도 그냥 실행되죠. 사실 대부분이 여기 머물러 계실 거예요.
[레벨 1.] CLAUDE.md 한 장 쓰기 (30분이면 끝나요)
프로젝트 루트(가장 상위 폴더)에 CLAUDE.md라는 파일을 하나 만들고 이런 걸 적어두면 됩니다.
- 이 프로젝트는 무엇인가
- 어떤 코딩 컨벤션(코드 스타일 규칙)을 쓰는가
- 절대 건드리지 말아야 할 파일은 어디인가
모든 새 세션이 이걸 자동으로 읽고 시작합니다. 가성비가 제일 좋은 한 걸음이에요.
[레벨 2.] settings.json으로 권한 분리
settings.json은 Claude Code의 설정 파일이에요. 여기에 "이 명령은 자동 승인", "저 명령은 항상 사람한테 묻기"를 명시해둘 수 있습니다. 한 번 설정해두면 반복 확인이 사라져요.
[레벨 3.] Hooks 설치 (이번주 안에 딱 1개만)
Hook(훅) 은 특정 순간에 자동으로 실행되는 작은 코드예요. 예를 들어 "코드를 저장하기 전에 자동으로 lint(코드에 문법 오류나 스타일 문제가 있는지 검사하는 도구) 돌리기" 같은 자동 안전장치죠. 한 번 걸어두면 AI가 사고 치는 빈도가 눈에 띄게 줄어듭니다.
[레벨 4.] Skills 분리 (다음주 목표)
Skill(스킬) 은 자주 쓰는 작업 방법을 정리해둔 매뉴얼이에요. 반복되는 워크플로우(예: "API 만들기", "버그 리포트 정리")를 하나의 Skill 파일로 분리해두면, 매번 같은 설명을 다시 할 필요가 없어집니다.
[레벨 5.] Subagents + MCP 연동
Subagent(서브에이전트) 는 특정 분야 전문 보조 AI예요. 메인 Claude가 사장이라면, 서브에이전트는 분야별 팀장 같은 거죠.
MCP(Model Context Protocol) 는 AI와 외부 도구를 연결하는 공식 표준입니다. 이걸 통해 GitHub, Notion, Slack 같은 외부 도구와 Claude Code가 직접 소통할 수 있어요. 이쯤 되면 Claude Code가 "도구"에서 "동료"로 바뀌어 있을 거예요.
[레벨 6.] Evals 도입
"내 프롬프트나 설정을 바꿨을 때 기존 기능이 안 망가지는가"를 자동으로 채점합니다. 이걸 회귀 테스트(regression test) 라고도 해요. "고치다가 다른 게 망가지지 않았나?"를 확인하는 안전망이죠. 여기까지 오시면 Anthropic이 만든 하네스의 미니어처를 본인 워크플로우 위에 올린 셈입니다.

5. 이번주 실천 : 딱 세 가지만 해보세요
긴 글을 끝까지 읽으셨다면, 이번주는 이 세 가지만 시도해보시면 좋을 것 같아요.
- 오늘 : 자주 쓰는 프로젝트 하나에 CLAUDE.md 한 장 써보기 (30분이면 됩니다)
- 이번주 : Hook 1개 설치해보기 (예: 커밋 전 lint 자동 실행)
- 다음주 : 반복되는 작업 하나를 Skill로 분리해보기
레벨 1부터 3까지만 올라가도 Claude Code 경험은 완전히 달라집니다. 그리고 그게 바로 모델을 바꾸지 않고도 결과를 바꾸는, 하네스 엔지니어링의 본질이에요.

마무리하며
"AI를 잘 쓰는 사람"의 정의가 바뀌고 있습니다.
지금까지는 "프롬프트를 잘 짜는 사람"이었어요. 이제부터는 "AI 주변을 잘 설계하는 사람" 입니다.
모델은 누구나 같은 걸 씁니다. 차이는 그 주변에 무엇을 둘러놓느냐에서 나오죠. 유출된 50만 줄이 우리에게 알려준 한 가지 사실이기도 하고요.
이번주, 강아지에게 하네스를 입히듯 여러분의 Claude Code에도 하네스를 한 겹 입혀보세요. 거기서부터 진짜 변화가 시작될 거예요.
의견을 남겨주세요