기본 콘텐츠로 건너뛰기

Claude Code 51만 줄 소스코드 유출 — 코드를 까보니 보인 추론의 비밀과 바이브코더를 위한 꿀팁

Claude Code 51만 줄 소스코드 유출 — 코드를 까보니 보인 추론의 비밀과 바이브코더를 위한 꿀팁

Claude Code 소스코드 분석 — 추론의 비밀

3월 31일, Anthropic의 Claude Code 소스코드가 유출됐습니다.

npm 패키지의 소스맵 설정 실수로 51만 줄의 TypeScript 코드가 통째로 공개된 겁니다. Anthropic은 즉시 패키지를 내리고 GitHub에 8,000건 이상의 DMCA 삭제 요청을 보냈지만, 이미 늦었습니다.

근데 흥미로운 건 이겁니다. 유출된 내용을 보면 보안 위협보다 더 큰 발견이 있었습니다. 트위터에서 개발자들이 코드를 까보더니 하나같이 말합니다.

"아, 이래서 Claude가 다른 AI보다 똑똑했던 거구나."

저는 Claude Code를 매일 씁니다. 블로그 자동화, 유튜브 파이프라인, 트위터 반자동화 — 전부 Claude Code로 돌아갑니다. 코딩을 한 줄도 모르는 바이브코더인 제가, 유출된 코드 분석을 보면서 "내가 경험으로 느꼈던 게 여기 다 적혀있었구나"라는 생각이 먼저 들었습니다.

이 글에서는 유출된 코드에서 발견된 Claude의 추론 비밀 5가지와, 코딩 모르는 바이브코더가 지금 바로 써먹을 수 있는 꿀팁을 정리합니다.

뭐가 유출된 건지부터 정리

유출된 것 vs 유출 안 된 것

오해하면 안 되는 게 있습니다. 유출된 건 Claude AI 모델 자체가 아닙니다.

유출된 것 유출 안 된 것
Claude Code CLI 에이전트 런타임 Claude 모델 가중치 (파라미터)
시스템 프롬프트, 도구 체계 Anthropic 내부 학습 데이터
메모리/컨텍스트 관리 로직 고객 데이터
오케스트레이션 코드 RLHF/헌법 AI 학습 파이프라인

쉽게 말해, Claude의 "두뇌"가 아니라 "작업 환경"이 유출된 겁니다. 모델이 얼마나 똑똑한지는 변하지 않습니다. 하지만 그 똑똑함을 어떻게 활용하는지에 대한 설계도가 공개된 거죠.

그리고 그 설계도가 놀라웠습니다.

Claude가 다른 AI보다 추론을 잘하는 비밀 5가지

Claude Code 내부 아키텍처 — 3-에이전트 구조

트위터에서 개발자들이 1,900개 넘는 파일을 분석한 결과를 정리합니다.

1. 프롬프트가 곧 두뇌다 — 300줄 시스템 프롬프트의 위력

시스템 프롬프트 — Claude의 행동 원칙

Claude Code의 핵심은 약 300줄짜리 시스템 프롬프트입니다. 복잡한 상태 머신이나 프레임워크가 아니라, 평문 영어 지시문으로 멀티 에이전트를 라우팅합니다.

이 프롬프트에 담긴 규칙들이 인상적입니다:

  • "편집하기 전에 반드시 파일을 먼저 읽어라"
  • "메모리는 진실이 아니라 힌트로 취급하라"
  • "성급한 추상화를 피하라 — 비슷한 코드 3줄이 과한 추상화보다 낫다"
  • "위험한 작업은 신중하게 — 두 번 재고, 한 번 실행"

이게 왜 중요하냐면, 대부분의 AI 코딩 에이전트는 모델한테 "알아서 잘 해"라고 던집니다. Claude Code는 "이 순서로, 이 규칙을 지키면서, 이 방식으로 해"라고 촘촘하게 가이드합니다. 같은 모델이라도 프롬프트에 따라 결과가 완전히 달라지는 이유입니다.

저도 제 자동화 시스템에서 AGENTS.md라는 파일을 만들어서 AI가 매 세션마다 읽게 하고 있는데, Claude 내부에서도 똑같은 철학을 쓰고 있었다는 걸 보고 확신이 생겼습니다. 구조가 성능을 만듭니다.

2. 51만 줄의 "철장" — 코드로 된 안전장치

시스템 프롬프트가 "소프트 가드레일"이라면, 51만 줄의 TypeScript 코드는 "하드 가드레일"입니다.

모든 도구 실행 전에 PreToolUse 훅(hook)이 작동합니다. 쉽게 말해, AI가 뭔가를 실행하기 전에 "이거 해도 괜찮은지" 자동으로 체크하는 시스템입니다. 위험도가 높으면 실행을 차단합니다.

이게 다른 AI 코딩 에이전트와의 결정적 차이입니다. 자유도를 높이면 사고가 나고, 제약을 강하게 걸면 쓸모없어집니다. Claude Code는 이 균형을 코드 레벨에서 잡았습니다.

3. 에이전트 3개가 따로 일한다 — 단일 "갓 모드" 금지

Claude Code 내부에는 역할이 분리된 에이전트들이 있습니다. 하나의 AI가 모든 걸 하는 게 아니라, 계획하는 놈, 실행하는 놈, 검증하는 놈이 나뉘어 있습니다.

특히 검증 에이전트(Verification Agent)가 인상적입니다. 코드를 검사하고, 테스트를 실행하고, 버그를 적극적으로 잡도록 설계되어 있습니다. AI의 고질적인 문제인 "자기가 쓴 코드의 실수를 자기가 못 잡는" 편향을, 아예 다른 에이전트가 검증하도록 구조적으로 해결한 겁니다.

저도 블로그 자동화에서 비슷한 구조를 씁니다. 글을 쓰는 에이전트, 팩트체크하는 에이전트, 평가하는 에이전트를 분리해뒀는데 — Claude Code 내부도 같은 원리였습니다.

4. 컨텍스트는 돈이다 — 5단계 압축 시스템

5단계 컨텍스트 압축

AI와 대화가 길어지면 앞의 내용을 까먹는 문제, 다들 경험해보셨을 겁니다. Claude Code는 이걸 5단계 컴팩션 시스템으로 해결합니다.

백그라운드에서 별도의 에이전트가 돌면서 컨텍스트를 지속적으로 정리합니다. 오래된 대화는 요약하고, 중복은 제거하고, 핵심만 남깁니다.

특히 메모리를 "사실"이 아니라 "힌트"로 취급한다는 점이 중요합니다. 오래된 기억이 현재 코드와 충돌하면 현재 코드를 신뢰하라는 규칙이 명시적으로 들어가 있습니다. "예전에 이랬으니까 지금도 이럴 것이다"라는 오류를 막는 거죠.

5. "단순함이 정답이다"가 내장되어 있다

유출된 프롬프트 곳곳에 이런 철학이 박혀 있습니다:

  • 요청받은 것만 하라 (추가 개선 금지)
  • 헬퍼 함수나 유틸리티를 일회성 작업에 만들지 마라
  • 가상의 미래 요구사항을 위한 설계를 하지 마라
  • 에러 핸들링(오류 처리)을 일어날 수 없는 시나리오에 추가하지 마라

개발자들 사이에서 YAGNI(You Ain't Gonna Need It — "그거 필요 없을 거야")라고 불리는 원칙입니다. AI한테 "간결하게 해"라고 말하는 수준이 아니라, 구체적으로 어떤 상황에서 뭘 하지 말라고 명시한 겁니다. 이래서 Claude가 쓸데없이 복잡한 코드를 덜 짜는 거였습니다.

바이브코더를 위한 꿀팁 — 코딩 모르는 사람이 Claude Code 200% 활용하는 법

Claude Code 실전 팁

유출 분석과 제 실전 경험을 합쳐서, 코딩을 전혀 모르는 바이브코더가 지금 바로 적용할 수 있는 팁을 정리했습니다. 전문적인 설정이 아니라, 진짜로 "오늘 당장" 쓸 수 있는 것들입니다.

/init 으로 프로젝트 시작하기

CLAUDE.md — 프로젝트의 사용 설명서

Claude Code 터미널에서 /init을 입력하면 CLAUDE.md 파일이 자동 생성됩니다. 이 파일은 AI에게 "이 프로젝트가 뭐고, 어떤 규칙을 따라야 하는지" 알려주는 사용 설명서입니다.

유출 코드에서 밝혀진 가장 큰 비밀이 여기 있습니다: Claude Code는 매 세션 시작 시 이 파일을 최우선으로 읽습니다. 즉, 여기에 쓴 규칙이 AI의 행동을 직접 결정합니다.

바이브코더라면 이렇게 써보세요:

# 내 프로젝트

## 규칙
- 한국어로 답변해
- 코드 수정 전에 항상 뭘 할 건지 먼저 설명해
- 파일을 삭제하거나 큰 변경을 하기 전에 물어봐
- 에러가 나면 내가 이해할 수 있는 쉬운 말로 설명해

## 기술 스택
- Python / JavaScript (뭘 쓰든 여기에 적으면 됩니다)

이것만 해도 AI가 내 스타일에 맞춰서 움직입니다. 저는 이 파일에 규칙을 100줄 넘게 넣어뒀는데, 처음엔 5줄로 시작해도 충분합니다.

Auto Accept 모드 — 흐름 끊기지 않게

Claude Code를 쓰다 보면 "이 파일 읽어도 될까요?", "이 명령 실행해도 될까요?" 확인이 계속 나옵니다. 처음엔 안전하게 느껴지지만, 작업 흐름이 5초마다 끊깁니다.

Auto Accept 모드를 사용하면 이 문제가 해결됩니다. 터미널에서 Claude Code를 실행할 때 --dangerously-skip-permissions 플래그를 붙이거나, 설정에서 Auto Accept를 활성화하면 됩니다.

단, 이름에 "dangerously(위험하게)"가 붙어있는 이유가 있습니다. AI가 파일을 지우거나 위험한 명령을 실행할 때도 물어보지 않습니다. 그래서 저는 CLAUDE.md에 "파일 삭제, git push, 발행 작업은 반드시 먼저 물어봐"라는 규칙을 추가해서 소프트 가드레일을 걸어둡니다. 유출 코드에서 본 "하드 가드레일 + 소프트 가드레일" 조합을 그대로 따라한 겁니다.

/plan 먼저 — "바로 코드 짜줘" 금지

계획 → 실행 → 검증 워크플로우

바이브코딩 초보가 가장 많이 하는 실수가 "로그인 기능 만들어줘"처럼 바로 실행을 요청하는 겁니다. Claude가 열심히 코드를 짜는데, 결과물이 내가 원하던 게 아닌 경우가 많습니다.

유출 코드에서 밝혀진 것처럼, Claude Code 내부도 계획 → 실행 → 검증 3단계로 나뉘어 있습니다. 우리도 이걸 따라하면 됩니다.

  1. "먼저 계획 세워줘" 또는 /plan 입력
  2. Claude가 "이렇게 할 건데 괜찮냐"고 계획을 보여줌
  3. 계획이 마음에 들면 "좋아, 진행해"
  4. 결과물 확인 → "테스트 돌려봐" 또는 "이 부분 바꿔줘"

Shift+Tab 한 번이면 계획 모드와 실행 모드를 즉시 전환할 수 있습니다. 이것만 습관 들여도 삽질 시간이 절반으로 줄어듭니다.

에러는 해석하지 말고 통째로 보여줘라

에러 메시지 활용법

코딩 모르는 사람이 에러를 만나면 당황합니다. 빨간 글씨가 쏟아지면 "뭔가 잘못됐는데 뭔지 모르겠다"는 생각이 들죠.

에러 메시지를 해석하려고 하지 마세요. 그냥 통째로 복사해서 Claude에게 보여주면 됩니다.

이 에러 나왔는데 뭔지 모르겠어. 고쳐줘:

[에러 메시지 통째로 붙여넣기]

유출 코드를 보면, Claude Code 내부에서도 에러 처리는 구조적으로 합니다. "에러가 나면 원인을 분석하고, 수정하고, 같은 에러가 다시 나지 않도록 방지 조치까지" 하는 로직이 들어있습니다.

바이브코더가 이걸 따라하는 방법: 에러가 고쳐졌으면 "이 에러 다시 안 나게 방지할 수 있어?"라고 한마디 더 하세요. Claude가 방어 코드나 설정을 추가해줍니다.

"이번에 이렇게 해줘" 대신 "구조를 만들어줘"

이건 제가 AI 에이전트 자동화하다 7번 터졌다에서 배운 핵심 교훈입니다.

AI한테 "이번엔 한국어로 답해줘"라고 말하면 이번 대화에서만 한국어로 합니다. 다음 세션에서 또 같은 말을 해야 합니다. 반면 CLAUDE.md에 "한국어로 답변해"를 써놓으면 영원히 한국어로 답합니다.

유출 코드에서 본 원리와 동일합니다. Claude Code 내부에서도 일회성 지시가 아니라 시스템 프롬프트에 규칙을 박아놓는 방식으로 행동을 제어합니다.

같은 요청을 2번 이상 반복하고 있다면, 그건 CLAUDE.md에 써야 할 규칙입니다.

대화가 길어지면 /compact

Claude Code와 대화를 1시간 넘게 하다 보면, AI가 처음에 했던 내용을 까먹거나 앞뒤가 안 맞는 답변을 하기 시작합니다. 이건 AI가 멍청해진 게 아니라 컨텍스트 윈도우(기억 용량)가 가득 찬 것입니다.

유출 코드에서 5단계 컨텍스트 압축 시스템이 발견된 이유가 여기 있습니다. Anthropic도 이 문제를 심각하게 다루고 있는 거죠.

우리가 쓸 수 있는 대응법:

  • /compact — 대화 히스토리를 지능적으로 요약. 핵심만 남기고 나머지를 정리
  • 주제가 바뀌면 새 대화 시작 — "로그인 기능 끝났으면, 새 대화에서 결제 기능 시작"
  • /cost — 토큰 소비량 확인. 비용이 급증하면 /compact 또는 새 대화 신호

Claude 프롬프트 철학을 일반 대화에도 적용

마지막 팁은 Claude Code가 아니라 일반 Claude 대화(웹/앱)에서도 쓸 수 있는 겁니다.

유출된 시스템 프롬프트의 핵심 규칙들을, 여러분이 Claude에게 직접 지시하면 됩니다:

  • "답변 전에 관련 정보를 먼저 확인해"
  • "계획을 세우고 내 확인을 받은 후 실행해"
  • "간결하게. 한 문장이면 세 문장 쓰지 마"
  • "기존 것을 수정하기보다 새로 추가해"
  • "과도한 추상화 금지 — 단순하게"

이런 지시를 대화 시작 시 넣어주면 응답 품질이 눈에 띄게 달라집니다. Claude가 장황하게 설명하거나, 요청하지 않은 것까지 추가하는 문제가 줄어듭니다.

이스터에그 — Anthropic 개발자들도 사람이다

숨겨진 이스터에그들

유출 코드에서 재미있는 발견도 있었습니다:

  • 187개의 로딩 메시지: Claude Code가 작업 중일 때 나오는 문구가 "moonwalking(문워킹)", "boondoggling(삽질)", "discombobulating(혼란)" 같은 엉뚱한 표현들로 채워져 있습니다
  • 다마고치 펫 "Buddy": 개발 중인 가상 펫 기능이 코드에 남아있었습니다. Claude Code를 많이 쓰면 레벨이 오르는 구조
  • KAIROS 데몬 모드: 24시간 상시 실행되면서 알아서 작업을 처리하는 프로액티브 에이전트 — 아직 미출시지만 코드 흔적이 있습니다
  • 언더커버 모드: 오픈소스 프로젝트에 기여할 때 AI 사용 흔적을 숨기는 기능

특히 KAIROS 데몬 모드는 흥미롭습니다. 터미널을 닫아도 백그라운드에서 돌아가면서 코드를 분석하고, 문제를 발견하면 알려주는 구조. 정식 출시되면 바이브코더에게 엄청난 무기가 될 겁니다.

실제 바이브코더로서 느낀 점

저는 Claude Code로 블로그 9개 스킬, 유튜브 6단계 파이프라인, 트위터 CRM을 만들었습니다. 코딩은 한 줄도 못 합니다.

유출 코드를 분석한 트윗들을 보면서 깨달은 건, 내가 시행착오로 배운 원칙들이 Claude 내부에 이미 설계되어 있었다는 겁니다:

  • 정보는 한 곳에만 쓴다 → Claude도 메모리를 "힌트"로 취급
  • 같은 실수는 구조로 막는다 → Claude도 PreToolUse 훅으로 사전 차단
  • 역할을 분리한다 → Claude도 3-에이전트 격리 구조
  • 컨텍스트를 관리한다 → Claude도 5단계 압축

유출은 사고였지만, 결과적으로 Claude Code를 더 잘 쓸 수 있는 로드맵이 공개된 셈입니다. 고객 데이터 유출은 없었고, 모델 가중치도 안전합니다. 오히려 이 유출 덕에 "왜 Claude Code가 다른 도구보다 안정적인지" 이해하게 됐고, 그 원리를 내 워크플로우에 적용할 수 있게 됐습니다.


관련 글: - AI 에이전트 자동화 완전 가이드 2026: Claude로 돈 버는 시스템 만드는 법 - AI 에이전트 자동화하다 7번 터졌다 — 코딩 모르는 내가 만든 방어 구조 - 2026 최고의 AI 자동화 도구 비교: Claude vs GPT vs Gemini 실전 테스트

Claude Code를 쓰고 계신다면, 오늘 당장 /init부터 입력해보세요. 5분이면 됩니다. 그리고 그 5분이 앞으로 매 세션마다 돌아옵니다.


💬 더 많은 인사이트 받기

이 블로그의 새 글과 실시간 크립토/AI 인사이트를 받아보고 싶으시다면:

댓글