AI 에이전트가 인간 메인테이너를 추월했다 — Bun × Claude Code 라이브 코딩 세션 해부

개요

항목 내용
주제 JavaScript 런타임 Bun 리포지토리에 실제 적용된 AI 에이전트 자동화 개발 파이프라인
발표자 Boris Cherny(Anthropic, Head of Claude Code) · Jarred Sumner(Bun Creator)
형식 개발자 컨퍼런스 라이브 코딩 세션 (약 32분, Claude 채널)
핵심 관점 "AI가 코드를 잘 쓰는가"가 아니라 "AI가 쓴 코드를 누가, 무엇을 근거로 병합하는가"
핵심 키워드 Robo Bun · 적대적 코드 리뷰(Adversarial Code Review) · 복합 공학(Compound Engineering) · CLAUDE.md · Auto Mode · Hill Climbing

한 문장 요약: 이 글을 읽으면 오픈소스 프로젝트에서 AI 에이전트 100개를 밤새 돌리는 팀이 실제로 어떤 구조를 만들어냈고, 그 구조의 병목이 어디로 이동했는지를 이해할 수 있습니다.


핵심 메시지 3가지

① 봇이 메인테이너보다 많이 커밋하는 시대가 왔다

Bun 리포지토리의 main 브랜치 기여자 통계에서 자동화 봇 robobun이 창시자 본인 Jarred Sumner의 커밋 수를 추월했습니다. 화면에 잡은 시점 기준으로 robobun 435회 vs Jarred-Sumner 247회, 세션 후반 집계에서는 robobun 626회 vs Jarred-Sumner 377회로 나타납니다. 병합되지 않은 PR이 다수라는 단서가 붙지만, "AI 기여량이 인간 1인분을 넘었다"는 장면 자체가 무대 위에서 데이터로 확인된 셈입니다.

② 자동화의 전제 조건은 모델이 아니라 문서다

Jarred Sumner은 이 파이프라인이 성립하는 첫 단추로 CLAUDE.md를 지목합니다. 반복되는 지식을 문서화하지 않으면 에이전트는 "합치기 애매한 PR"만 양산합니다.

"매번 무언가를 반복하고 있다는 걸 발견한다면, 그것은 아마 CLAUDE.md에 들어가야 한다."

③ 병목은 사라지지 않고 이동했다

코드 작성과 테스트 실행은 병목 목록에서 내려왔습니다. 남은 병목은 검증(이걸 병합해도 되는가) 와 계획(무엇을 할 것인가) 입니다.


1. Robo Bun 파이프라인 — 이슈가 PR이 되는 경로

GitHub에 이슈가 올라오면 사람이 보기 전에 봇이 먼저 손을 댑니다.

① 이슈 생성
 ↓
② Robo Bun 자동 재현(reproduce) — 이슈 트래커의 모든 신규 이슈 대상
 ↓
③ 테스트 코드 작성 — PR 제출의 필수 하드 요구사항
 ↓
④ 이중 검증 루프 — 이전 버전에서 테스트 실패 + 현재 디버그 브랜치에서 통과
 ↓
⑤ PR 자동 제출 — 위 조건을 만족해야만 제출 자체가 불가능
 ↓ ⑥ 코드 리뷰 봇 상호 검증 (2장 참조)  ↓ ⑦ CI 모니터링 및 자율 수정 — 실패 로그를 에이전트가 직접 읽고 재작업  ↓ ⑧ 인간 리뷰어에게 전달 —到达 시점에 이미 높은 신뢰도 상태

검증 루프의 핵심 조건

조건 의미 왜 중요한가
이전 버전에서 테스트 실패 버그가 실제로 존재함을 증명 없는 버그를 고친 "가짜 PR" 차단
수정 브랜치에서 테스트 통과 수정이 실제로 작동함을 증명 조건 미충족 시 PR 제출 자체가 불가

이 구조가 만드는 변화는 작업의 성격 자체입니다. Jarred Sumner의 표현을 빌리면 과제가 "이슈를 디버깅하고 고치는가" 에서 "이걸 병합하는 게 맞는가" 로 이동합니다. Bun이 특히 유리했던 이유는 시스템 코드 + CLI 도구라는 특성상 브라우저 없이 테스트 재현이 가능했기 때문입니다.

일반화 포인트: 오픈소스가 아닌 대부분의 회사에서는 출발점이 이슈가 아니라 고객 지원 티켓이 됩니다. 티켓 → 재현 → PR → 코드 리뷰 루프를 걸면 효과는 더 커진다는 것이 Boris Cherny의 설명입니다.


2. 적대적 코드 리뷰 — 봇 두 팀을 붙인다

리뷰 단계에서는 서로 다른 강점을 가진 두 봇을 상호작용시킵니다. 한 PR에서 30개 이상의 댓글이 오가며, 해결된 댓글은 봇이 스스로 resolved 처리합니다.

봇 특화 영역 대표 사례
Code Rabbit 스타일 가이드 / CLAUDE.md 준수 여부 등 형식적 오류 네이밍·레이블·컨벤션 위반
Claude Code Review 전체 컨텍스트를 파악해야 보이는 미묘한 엣지 케이스 diff에 없는 코드까지 제어 흐름 추적

Claude Code Review의 가치는 "diff 안에 있지 않은 문제"를 잡는 데 있습니다. 사람이 30분간 코드를 읽고 전체 컨텍스트를 머릿속에 담아야 발견할 버그를 찾아냅니다. 신호 대 잡음비(SNR)도 이전 코드 리뷰 제품들과 비교해 실질적으로 개선됐습니다 — 예전에는 대부분을 무시해야 했지만, 지금은 대략 10% 정도만 오답이라는 평가입니다.

왜 이 패턴이 필수인가: 리뷰 댓글에 답하는 작업은 전통적으로 가장 비용이 큰 구간이었습니다. 브랜치 체크아웃 → 린트 오류 수정 → 로컬 린터 실행 → 재푸시의 전환 비용(switching cost) 이 PR 병합을 지연시켰고, 바로 이 지점이 LLM이 가장 강하게 효율을 내는 곳입니다.


3. CLAUDE.md — 복합 공학의 인프라

"에이전트를 많이 돌릴 수 있게 만드는 것"은 프롬프트가 아니라 문서화된 지식입니다.

문서화 항목 실제 내용 예시 효과
빌드 명령 인자를 전달하며 빌드+실행을 동시에 하는 특수 커맨드 낡은 디버그 빌드로 검증하는 사고 방지
테스트 위치 규칙 test/regression/issue/${issueNumber}.test.ts는 실제 회귀 버그 전용 이슈 번호가 있어도 과거에 정상 동작하지 않았다면 회귀가 아님 → 기존 모듈 테스트 파일로
테스트 작성 방식 Jest 호환 러너, 단일 파일은 -e 플래그, 다중 파일은 tempDir + Bun.spawn 에이전트가 매번 같은 스타일로 작성
검증 코드 패턴 bunExec 실행, stdout/stderr 처리, toMatchInlineSnapshot, exitCode 확인 첫 시도부터 통과하는 테스트
아키텍처 지도 src/js/bindings(JavaScriptCore 바인딩), src/runtime(HTTP 서버·FFI·암호화), Node.js 호환 계층, Web API(fetch·streams) 코드베이스 구조 정확 이해
CI 디버깅 도구 BuildKite CLI(bk), bun run ci:errors / ci:logs / ci:find 실패 로그를 에이전트가 직접 해석
에이전트 수칙 메모리 관리, 크로스 플랫폼, claude/ 접두사 브랜치명 무대 시연 PR도 컨벤션 준수

여기서 한 걸음 더 나아간 원칙이 있습니다. 도구 자체를 고쳐서라도 정확성을 유지하라 — scripts/find-build.ts를 직접 수정하라는 안내가 그 예입니다. 또한 "무대 라이브 코딩 중이므로 빠르게 생각해야 한다"는 주의문과 디버그 빌드 사용 시 CRITICAL 경고가 CLAUDE.md에 명시되어 있어, 에이전트가 환경 선택을 잘못하는 사고를 미리 막습니다.

실패 패턴 → 문서화 루프: 테스트를 시켰는데 결과가 나쁘면, 1~2회 반복을 확인한 뒤 "CLAUDE.md에 추가하라"고 지시합니다. 다음부터는 첫 시도부터 올바르게 동작합니다. 이것이 Boris Cherny가 명명한 compound engineering입니다.


4. 실측 결과 — 무엇을 고쳤고, 얼마나 빨라졌나

4-1. 무대에서 실제로 생성·병합된 PR

이슈/PR 문제 에이전트의 진단과 수정
#30320 → #30322 Windows에서 sideEffects glob 패턴이 어댑터를 tree-shaking으로 누락 (prebid.js@10.29.0 실제 영향) normalizePathForGlob 등 수정, 빌드 경로와 런타임 C:\proj\... 경로 불일치 근본 원인 해결
#25422 → #30328 instanceof File 실패 src/js/bindings/JSDOMFile.cpp의 customHasInstance가 프로토타입 체인 순회를 생략한 것이 원인 → JSObject::defaultHasInstance로 폴백
#30314 bunfig.toml CA 스토어 선택 지원 CLI flag > 환경 변수 > bunfig.toml 우선순위 구현, TLS trust-store 로직은 인간 리뷰어 확인을 요청
#30330 console.group() 들여쓰기 오류 WHATWG Console 스펙대로 그룹 중첩 수준 반영, Zig ConsoleObject.zig 수정
#30331 Bun.deflateSync가 windowBits를 무시 gzipOrDeflateSync에서 옵션이 파싱만 되고 압축기에 전달되지 않음이 원인 → node:zlib.deflateSync와 바이트 단위 일치, 테스트 17개 통과
#3521 expect.any / toMatchObject가 수신 객체를 변경(mutate) 2023년 7월 보고, 참여자 10명, 2023년 11월에도 재현 신고가 있던 장수 이슈를 matcherSentinel 도입으로 해결

claude 태그가 붙은 PR 목록은 69페이지까지 쌓여 있었고, 시연 약 25분 만에 PR 3개가 생성됐습니다. 하나의 프롬프트로 30분간 백그라운드 실행해 업보트 20개 이상 이슈의 PR을 만들어내는 것도 확인했습니다.

4-2. Bun.Image — AI가 작성한 대규모 기능 (PR #30032)

이미지 처리 파이프라인(jpeg/png/webp, resize, rotate, modulate)을 Bun에 내장한 사례로, Claude가 작성했습니다.

지표 수치
병합 커밋 수 85 commits (main 병합 완료)
총 테스트 케이스 204개 / 4개 스위트
├ image.test.ts 약 80 (happy path)
├ image-adversarial.test.ts 약 58 (포맷 혼동)
├ image-kernels.test.ts 약 38 (알고리즘 고정)
└ image-vs-sharp.test.ts 29 (Sharp/libvips 교차 검증)
1080p PNG 리사이즈 Sharp 대비 1.38배 빠름
4K JPEG 처리 Sharp 대비 1.27배 빠름

목표("Sharp보다 빠르게")와 측정 수단(벤치마크)만 주면 모델이 스스로 JavaScriptCore 코드를 분석해 Typed Array 클로닝을 최적화하고 반복 벤치마크를 돌렸습니다. Jarred Sumner는 이 패턴을 Hill Climbing(언덕 오르기) 으로 정의합니다. 리뷰 댓글 자동 처리까지 붙으면서 본인은 이 작업에 10%만 집중하고 나머지를 병행했다고 합니다.

남은 후속 과제(Known follow-ups): x64 libjpeg-turbo NASM SIMD, new Response(image) 인코딩, Integer pre-shrink.

4-3. 코드 리뷰 봇이 잡아낸 품질 이슈

Image.ErrorCode 유니온에 ERR_OUT_OF_MEMORY가 누락되어 tsc 경고가 발생하는 문제, placeholder()의 크기 계약 위반 — claude Bot이 지적하고 수정을 제안했습니다. 생성뿐 아니라 정밀 품질 관리도 같은 루프 안에서 일어납니다.


5. 병목의 이동 — 무엇이 병목 목록에서 내려왔나

구간 과거 현재
코드 작성 병목 병목 아님
테스트 실행 병목 병목 아님
리뷰 댓글 대응(전환 비용) 병목 자동 처리
변경 사항에 대한 확신(Confidence) 부차적 문제 핵심 병목
계획 수립 — 무엇을 할 것인가 인간의 강점 남은 병목

과거에는 코드 품질 자체가 낮았지만, 파이프라인이 성숙하면서 병목이 "정확한가" 로 이동했습니다. 완전한 자동화(Closed Loop)를 위해 필요한 두 조건은 명확합니다.

  1. 변경 사항 검증 시간 단축
  2. 롤백 용이성 확보

그래서 단순 이슈는 CI 통과 후 즉시 병합해야 한다는 결론에 도달합니다. AI 생성 PR은 인간 동료의 작업과 달리 "안 합치면 미안한" 심리적 부담이 없어 병합 기준을 더 엄격하게 잡을 수 있다는 지적도 같은 맥락입니다.

현실 체크: 무대 청중 대상 설문에서 절반 이상이 여전히 터미널 창·데스크톱 탭에 이슈를 붙여넣는 수동 워크플로우에 머물러 있었습니다. Robo Bun 수준의 루프 폐쇄는 "다음 단계 추상화"로 소개됐습니다. Boris Cherny는 이 비전을 처음 들었을 때 이해하지 못했던 "수백 개 에이전트 병렬 실행"을 이제 매밤에 실행 중이라고 말했습니다.


6. 운영 팁 — Auto Mode와 No Flicker Mode

기능 동작 추천 이유
Auto Mode 권한 요청 중단 없이 수 시간 백그라운드 실행 dangerously skip permissions보다 안전하고 효율적
No Flicker Mode 가상화 스크롤링으로 메모리/CPU 사용량 일정 유지 장시간 다중 에이전트 구동 환경에 필수

시연 화면에는 auto mode on 상태바와 함께 셸 명령 실행 로그, 회귀 테스트 통과 확인, 시스템 Bun에서의 실패 검증, 전체 toMatchObject·스냅샷 테스트 실행이 순차로 흘렀습니다. Buildkite 대시보드에서는 286개 잡 중 28개 완료(33개 running) 상태가 실시간 확인됐습니다.

git 커밋 메시지에는 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>이 명시되어, 1M 컨텍스트 윈도우 모델이 시스템 레벨·런타임 버그 다수를 해결하는 데 사용됐음이 기록으로 남았습니다.


관점 포인트

  • PR 제출 자격 조건을 코드로 강제하라. "테스트 포함 + 이전 버전 실패/수정 버전 통과"를 만족 못 하면 제출 자체가 안 되게 만드는 것이 자동화의 안전장치입니다.
  • 리뷰는 한 봇이 아니라 두 봇을 붙이세요. 형식 검증과 컨텍스트 검증의 실패 패턴이 다릅니다.
  • CLAUDE.md는 문서가 아니라 인프라입니다. 같은 실패가 1~2회 반복되면 즉시 문서에 반영 — 이게 compound engineering의 작동 방식입니다.
  • CI 로그 접근권을 에이전트에게 주라. 사람이 리뷰하는 시점에 이미 "병합해도 된다는 명확한 신호"가 붙어 있어야 합니다.
  • CLI 도구는 검증이 쉽습니다. 브라우저가 필요한 프론트엔드는 스크린샷·비디오 캡처로 대체해야 한다는 단서도 함께 제시됐습니다.
  • 기능 요청(Feature Request)은 아직 미완입니다. Robo Bun은 버그 재현·수정에 집중되어 있고, Discord/Slack 멘션 경유로 구현을 시도하는 단계입니다.
  • 도구 정확성은 직접 고쳐서 유지합니다. scripts/find-build.ts 수정 권장처럼, 에이전트 주변 인프라까지 팀 소유로 보는 관점입니다.

최종 핵심 정리

확인해야 할 핵심 질문

  1. 우리 리포지토리의 CLAUDE.md(또는 에이전트용 지식 파일)는 빌드·테스트·배치 규칙을 어디까지 명시하고 있는가?
  2. AI가 만든 PR에 "이전 버전 실패 / 수정 버전 통과"를 강제하는 게이트가 있는가?
  3. 코드 리뷰는 형식 검증과 컨텍스트 검증을 분리해 수행하는가?
  4. 에이전트가 CI 실패 로그를 직접 읽고 재작업하는가, 아니면 사람이 복사해 주는가?
  5. 지금 우리 팀의 진짜 병목은 작성인가, 검증인가, 계획인가?
  6. 권한 승인 대기 시간을 줄이기 위해 Auto Mode를 켰는가?

한 줄 요약: AI 에이전트를 많이 돌리는 비결은 더 똑똑한 모델이 아니라, 반복되는 지식을 문서화하고(복합 공학) 봇끼리 싸우게 하고(적대적 리뷰) 검증 루프를 코드로 강제하는 인프라 설계다.


이미지 분석: frame_000_0s.jpg

분석: ## 이미지 분석 결과

1. 추출된 모든 텍스트

  • 중앙 텍스트 (2줄):
  • 1줄: Code w/ (산세리프 폰트, 흰색)
  • 2줄: Claude (세리프 폰트, 흰색, 더 큰 크기)
  • 우측 상단 로고: AI (Anthropic 로고 스타일)

2. 표(Table)

  • 없음.

3. 그래프/차트

  • 없음.

4. 다이어그램

  • 없음.

5. 질문 관련 정보

질문에서 나열된 항목(Bun 리포지토리 기여자 통계, GitHub PR 페이지, Bun.Image 성능 벤치마크 표, CLAUDE.md 파일, Claude Code 터미널 시연 화면) 중 어떤 것도 이 이미지에는 포함되어 있지 않습니다.

다만 이미지 중앙의 Code w/ Claude 텍스트와 우측 상단의 Anthropic(AI) 로고는, 이 화면이 Claude Code 시연 영상/데모의 타이틀(오프닝) 화면 또는 썸네일임을 강하게 시사합니다. 즉, 질문에서 언급된 "Claude Code 터미널 시연 화면"과 주제적으로 연결되지만, 실제 터미널 인터페이스나 코드 실행 내용은 보이지 않습니다.

6. 이미지 성격 요약

  • 종류: 텍스트가 포함된 타이틀/썸네일 화면 (사진/로고만 있는 이미지는 아님)
  • 배경: 단색 검은색
  • 구성: 중앙 정렬된 흰색 텍스트 2줄 + 우측 상단 로고 1개
  • 의미: Anthropic의 "Claude와 함께 코딩하기(Code with Claude)" 콘텐츠의 도입부 화면

결론

이 이미지는 질문에서 요구한 통계·PR·벤치마크·CLAUDE.md·터미널 시연 등의 세부 데이터가 전혀 없는 단순 타이틀 화면입니다. 따라서 Bun 기여자 수, PR 정보, 벤치마크 수치, CLAUDE.md 내용, 터미널 출력 등은 이 이미지로부터 추출할 수 없으며, 해당 정보들을 확인하려면 실제 시연 화면이나 문서 이미지가 추가로 필요합니다.

frame_001_20s.jpg

분석: # 이미지 분석 결과

1. 추출된 모든 텍스트

위치 텍스트 내용
좌측 상단 (라벨) Code w/ / Claude
우측 상단 (로고) AI (Anthropic 로고)
중앙 우측 (주 제목) Live coding with Bun and Claude Code
발표자 1 (이름) Boris Cherny
발표자 1 (직함) Head of Claude Code
발표자 2 (이름) Jarred Sumner
발표자 2 (직함) Creator of Bun

2. 표(Table)

→ 이 이미지에는 데이터 표가 없습니다.

3. 그래프/차트

→ 이 이미지에는 그래프 또는 차트가 없습니다.

4. 다이어그램

→ 기술적 다이어그램은 없으며, 좌측에 장식용 기하학적 도형(검은색 사각형, 팔각형, 분자/노드 연결형 아이콘)만 배치되어 있습니다.

5. 질문과 관련된 정보 (중요)

질문에서 언급된 다음 항목들은 이 이미지에는 전혀 포함되어 있지 않습니다: - ❌ Bun 리포지토리 기여자 통계 / robobun 커밋 수 - ❌ GitHub PR 페이지 - ❌ Bun.Image 성능 벤치마크 표 - ❌ CLAUDE.md 파일 내용 - ❌ Claude Code 터미널 시연 화면

이 이미지는 위 주제들을 다루는 프레젠테이션의 타이틀(도입) 슬라이드일 뿐입니다. 다만 질문의 주제와 간접적으로 연결되는 맥락은 다음과 같습니다: - Jarred Sumner (Creator of Bun) → Bun 리포지토리 및 기여자 통계(robobun 등)와 직접 관련된 인물. - Boris Cherny (Head of Claude Code) → Claude Code 터미널 시연 화면과 직접 관련된 인물. - 제목 "Live coding with Bun and Claude Code" → 질문에서 나열된 벤치마크·PR·CLAUDE.md·터미널 시연 등이 이 세션의 본문 슬라이드에서 다뤄질 것임을 시사합니다.

6. 이미지 요약 설명

주황색(테라코타) 배경의 라이브 코딩 세션 타이틀 슬라이드입니다. Anthropic의 "Code w/ Claude" 시리즈 중 하나로, Bun의 제작자 Jarred Sumner와 Claude Code 책임자 Boris Cherny가 함께 진행하는 "Bun과 Claude Code로 라이브 코딩하기" 발표의 첫 화면입니다. 구체적인 통계·벤치마크·코드 화면 데이터는 이 슬라이드에 나타나지 않습니다.

frame_002_78s.jpg

분석: ## 이미지 분석 결과

추출된 텍스트

  • 오른쪽 상단 모서리: "AI" (로고/워터마크)

이미지 내용 설명

이 이미지는 질문에서 요구한 Bun 리포지토리 기여자 통계, GitHub PR 페이지, Bun.Image 성능 벤치마크 표, CLAUDE.md 파일, Claude Code 터미널 시연 화면과는 관련이 없는 사진입니다.

이미지에 포함된 실제 내용은 다음과 같습니다: - 무대 위를 걷고 있는 두 명의 남성 (왼쪽: 검은색 반팔 셔츠 + 올리브색 바지, 오른쪽: 회색 셔츠 + 흰색 티셔츠 + 검은색 바지) - 배경의 나무 책장과 그 위에 걸린 추상 아트 포스터 (검은색 원과 선이 방사형으로 배치된 패턴) - 책장 선반 위의 장식품 (도자기, 조각상 등) - 오른쪽 하단의 베이지색 안락의자 - 오른쪽 상단의 "AI" 로고 (발표/컨퍼런스 영상 캡처임을 시사)

표 / 그래프 / 차트 / 다이어그램

  • 없음.

질문 관련 정보

  • 없음. 이미지에는 robobun 커밋 수, PR 통계, 벤치마크 수치, CLAUDE.md 내용, 터미널 출력 등 질문과 연관된 데이터나 텍스트가 전혀 포함되어 있지 않습니다.

결론

이 이미지는 텍스트가 없는 사진(무대 발표 장면) 이므로, 지침 6에 따라 위와 같이 짧게 설명합니다. 질문에서 요구하는 Bun/Claude Code 관련 통계나 화면을 분석하려면 해당 데이터가 실제로 표시된 다른 이미지가 필요합니다.