Claude Code 소스코드에서 밝혀진 8가지 사실

Claude Code 소스코드에서 밝혀진 8가지 사실【2026 최신】

Claude Code 소스코드가 npm 패키지 실수로 세상에 나왔다. 51만 2천 줄의 TypeScript. 약 1,900개 파일.

2026년 3월 31일, 새벽 4시 23분(ET). Solayer Labs의 인턴 Chaofan Shou가 X에 포스팅했다. “Claude Code의 소스맵 파일이 그대로 보인다”——그 순간부터 AI 개발의 상식이 뒤집혔다.

npm 패키지 v2.1.88에 59.8MB의 소스맵 파일(.map)이 혼입되어 있었다. .npmignore*.map 기재 누락. Bun 빌드 도구의 버그로 프로덕션 빌드에도 소스맵이 생성됐다.

Anthropic은 성명을 냈다. “고객 데이터나 인증 정보의 유출은 없다. 패키징 휴먼 에러”라고.

하지만 거기서 밝혀진 사실들은 Claude Code를 쓰는 모든 사람에게 가치가 있다.


1. 에이전트 루프는 놀라울 정도로 심플

51만 줄의 코드. 엄청나게 복잡한 구조일 줄 알았는데, 핵심 에이전트 루프는 겨우 약 20줄의 while 루프였다.

도구 호출을 반복하는 불변 메시지 히스토리의 심플한 while 루프. 나머지 51만 줄은 뭐냐. 컨텍스트 관리, 권한 시스템, 도구 정의, 에러 복구, 압축 메커니즘——즉 “하네스”다.

모델을 둘러싼 제어 장치야말로 진짜 개발 가치가 있는 곳. 다른 모델을 Claude Code 인프라에 넣어도 비슷한 코딩 능력이 나올 거라는 분석이다.

실무 시사점: Claude Code의 핵심 경쟁력은 모델이 아니라 하네스다. 자기만의 CLAUDE.md + Skills + Hooks 조합을 만들면, 그것 자체가 다른 사람이 복제할 수 없는 자산이 된다.


2. 서브에이전트 5개 띄워도 비용은 거의 1개분

여기가 가장 충격적이었다.

서브에이전트를 생성하면 부모의 컨텍스트가 바이트 단위로 동일한 카피로 상속된다. 프롬프트 캐시가 그대로 공유되기 때문에 캐시 토큰은 일반의 90% OFF로 처리된다.

모델 일반 입력 캐시 입력
Opus 4.6 $5.00/MTok $0.50/MTok
Sonnet 4.6 $3.00/MTok $0.30/MTok
Haiku 4.5 $1.00/MTok $0.10/MTok

긴 Opus 세션(100턴+압축)의 비용 비교:

  • 캐시 없이:$50~100
  • 캐시 있으면:$10~19(80% 이상 절약)

헤비 세션의 90% 이상의 토큰이 캐시 읽기. 병렬 처리를 두려워할 이유가 없다.

실무 팁: “비용이 걱정돼서 서브에이전트를 안 쓴다”는 완전히 잘못된 판단. 오히려 하나의 긴 세션보다 서브에이전트를 나눠 쓰는 게 싸다. 컨텍스트가 짧아서 압축 비용도 적고, 캐시 덕에 입력 비용도 거의 없으니까.

"이 프로젝트의 인증 모듈, 데이터베이스 모듈, API 모듈을
각각 별도 서브에이전트로 병렬 리서치해줘"

이렇게 쓰면 3개 서브에이전트가 동시에 조사하고, 메인 에이전트가 결과를 종합한다. 비용은 순차적으로 할 때와 비슷하면서 속도는 3배.


3. 시스템 프롬프트는 동적으로 조립된다

하나의 거대한 프롬프트가 아니었다. 30개 이상의 조건부 레이어가 동적으로 조합되고 있었다.

항상 포함되는 요소:

  • 인트로(에이전트의 인격과 톤)
  • 시스템 룰(도구 사용, 권한, 컨텍스트 압축)
  • 태스크 실행(코딩 철학)
  • 신중한 실행(”모든 액션의 가역성과 영향 범위를 평가하라”)

조건부로 포함되는 요소(30+):

  • 유저 타입별(Anthropic 직원 vs 외부 유저)
  • 도구 가용성 섹션
  • 기능 게이트 섹션(메모리 시스템, Skills, MCP)

여기서 중요한 게 SYSTEM_PROMPT_DYNAMIC_BOUNDARY라는 경계선. 이 앞의 모든 것(지시, 도구 정의)은 전 조직에서 공유 캐시된다. 이 뒤(CLAUDE.md, git 상태, 날짜)는 세션 고유. 이것이 프롬프트 캐시 최적화의 핵심이다.

실무 시사점: 시스템 프롬프트 앞부분은 전 세계 모든 Claude Code 유저가 공유한다. 그러니까 차별화는 뒷부분——CLAUDE.md에서만 가능하다는 것. CLAUDE.md를 잘 쓰는 것 = Claude Code를 남들보다 잘 쓰는 것이다.


4. CLAUDE.md는 “비밀 무기”——단, 200줄 이내

여러 분석가가 CLAUDE.md를 “Claude Code에서 가장 중요한 설정”이라고 불렀다.

CLAUDE.md의 내용은 SYSTEM_PROMPT_DYNAMIC_BOUNDARY 뒤에 배치된다. 즉 세션 고유이며 글로벌 캐시되지 않는다. CLAUDE.md의 한 줄은 모든 턴에서 토큰 비용을 발생시킨다.

베스트 프랙티스:

  • 200줄 이내로 유지
  • 각 줄에 대해 “이게 없으면 Claude가 실수하는가?”를 자문
  • Claude가 이미 잘 하고 있는 걸 써봤자 노이즈일 뿐
  • 전문적인 지시는 Skills로 분리

CLAUDE.md 템플릿 예시(이대로 복붙 가능):

# 프로젝트 개요
이 프로젝트는 Next.js + Supabase 기반 SaaS.

# 빌드 & 테스트
- npm run dev (개발 서버)
- npm test (테스트)

# 코드 규약
- 한국어 주석
- 컴포넌트는 src/components/에 배치
- API 라우트는 src/app/api/에 배치

# 금지
- 프로덕션 DB 직접 조작 금지
- .env 파일 수정 금지

이 정도면 충분하다. 200줄이 아니라 20줄이어도 핵심만 있으면 된다.


5. 권한 체크에 Haiku 모델 사용

비용 최적화가 철저했다.

  • 권한 체크:최저가 Haiku 모델로 처리
  • 유저 감정 감지:LLM을 쓰지 않고 Regex 패턴으로 판정(비용 $0)
  • 컨텍스트 압축:먼저 로컬에서 처리하고, 필요한 경우에만 모델 호출

“AI 도구니까 전부 AI로 처리”가 아니라, Regex로 되는 건 Regex로——이 설계 사상은 비용 관리의 좋은 참고가 된다.

실무 교훈: 자기 프로젝트에서도 마찬가지. 모든 판단을 LLM에 맡기면 비용이 폭발한다. “이건 if문으로 되지 않나?” “이건 정규식이면 충분하지 않나?”를 먼저 생각하는 습관이 비용을 10분의 1로 줄인다.


6. 5단계 컨텍스트 압축 전략

/compact의 속이 보였다.

  1. MicroCompact:오래된 도구 출력의 로컬 트리밍(API 호출 제로)
  2. AutoCompact:컨텍스트 상한 근처에서 발화. 최대 20,000 토큰의 요약 생성
  3. Full Compact:포괄적 압축. 최근 접근한 파일(최대 5,000 토큰/파일)을 재주입

참고로, 2026년 3월 10일 BigQuery 분석에서 1,279개 세션이 50회 이상 연속 압축 실패(최대 3,272회)하며 하루 25만 번의 API 호출이 낭비되는 버그가 발견됐다. 3줄 수정(MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3)으로 해결.

실무 팁: /compact가 중요한 이유를 이제 정확히 알 수 있다. 내부적으로 5단계 시스템이 돌아가고 있고, 자동 압축은 컨텍스트 95% 차면 발동한다. 그 전에 수동으로 /compact를 실행하면 컨텍스트를 더 효율적으로 관리할 수 있다. 30분에 1번 실행하는 습관을 들이자.


7. 출력 제한은 A/B 테스트로 최적화됐다

Claude Code 응답이 짧은 이유가 밝혀졌다.

  • 도구 호출 사이:최대 25단어
  • 최종 응답:최대 100단어

“간결하게”라고만 쓰면 불충분하고, 명시적 단어 제한을 넣으면 출력 토큰이 약 1.2% 절감된다는 게 A/B 테스트로 확인됐다.

실무 활용: CLAUDE.md에 이렇게 쓰면 출력이 짧아진다:

# 응답 규칙
- 도구 호출 사이의 설명은 25단어 이내
- 최종 응답은 100단어 이내
- 코드 블록은 제한 없음

이건 Anthropic이 자사 제품에서 실제로 쓰고 있는 규칙이다. 그대로 따라 하면 토큰 절약 + 응답 속도 향상 효과가 있다.


8. 아직 안 나온 기능——KAIROS 자율 백그라운드 에이전트

소스코드 안에 150회 이상 참조되던 “KAIROS”. 고대 그리스어로 “적절한 때”를 뜻하는 이름이다.

  • 상시 가동 백그라운드 에이전트(데몬 모드)
  • 정기적 <tick> 프롬프트를 받아 자발적으로 행동할지 판단
  • 1 판단 사이클당 15초 블로킹 예산
  • 추기 전용 감사 로그(자기 삭제 불가)
  • 5분마다 cron 갱신

“AI가 자는 동안 PR을 리뷰하고, 아침에는 Slack에 결과가 와 있다”——그런 미래가 바로 코앞에 있다.


9. 검증 에이전트는 AI가 쓴 코드를 신뢰하지 않는다

소스코드 안에 검증 에이전트(Verification Agent)가 있었다. 이 에이전트의 지시에는 이런 문구가 포함되어 있다:

“구현자는 LLM이다. 독립적으로 검증하라.”

AI가 쓴 코드를 다른 AI가 “이건 LLM이 쓴 거니까 믿으면 안 돼”라고 체크하는 구조. 합리화 패턴(”아마 맞을 거야”, “테스트 통과했으니까”)에 빠지지 않도록 명시적으로 경고하고 있었다.

실무 교훈: AI가 작성한 코드는 반드시 별도로 검증해야 한다. Anthropic 자체가 자사 AI를 안 믿는다. 우리도 그래야 한다.


10. 보안 체크는 23개 항목을 매번 실행

bashSecurity.ts라는 파일이 모든 셸 명령에 대해 23개 보안 검사를 실행한다.

  • 18개의 Zsh 내장 명령어 차단
  • Unicode 제로폭 문자 주입 방어
  • IFS null-byte 주입 방어
  • 4단계 권한 티어(Plan / Standard / Auto / Bypass)

Claude Code가 터미널 명령어를 실행할 때 매번 이 23개 검사를 통과해야 한다. “AI가 위험한 명령을 실행하면 어쩌지?”라는 걱정을 하는 사람이 많은데, 내부적으로는 이 정도로 철저한 방어 체계가 돌아가고 있다.


마무리——모델은 커머디티, 하네스가 경쟁 우위

51만 줄의 코드가 알려준 건 이거다.

Claude Code의 강점의 원천은 Claude 모델 그 자체가 아니다. 모델을 둘러싼 51만 줄의 “하네스”——컨텍스트 관리, 프롬프트 캐시, 메모리 시스템, 권한 레이어, 에이전트 협조——여기에 진짜 엔지니어링 가치가 있다.

Claude Code 개발 책임자 Boris Cherny의 말이 인상적이다:「Claude Code에 대한 나의 기여는 100%가 Claude Code로 작성됐다」.

AI 에이전트 시대, 차별화는 모델이 아니라 하네스에 있다.


참고 소스


저자: VibeCoding Tailor(Lovable 공식 앰배서더)
운영: テイラーの隠れ家(shuntailor.net)

JAKO