본문으로 건너뛰기
CodeBerry
  1. AI 뉴스/
#ai-news

Anthropic 엔지니어링 블로그 #18: Building a C Compiler with Parallel Claudes — 16명의 Claude가 2주간 자율로 만든 컴파일러

이 글은 Anthropic 엔지니어링 블로그에 2026년 2월 5일 게재된 “Building a C compiler with a team of parallel Claudes” 를 읽고, 내용을 정리한 글입니다. 원문: https://www.anthropic.com/engineering/building-c-compiler


한 줄로 말하면
#

Claude 16개를 도커에 풀어 2주간 자율로 굴렸더니, 10만 줄짜리 C 컴파일러가 나왔다 — 비용 $20,000.


어떤 문제를 해결하려 했나
#

Anthropic의 연구자 Nicholas Carlini가 던진 질문: “사람 개입 거의 없이, 에이전트 팀만으로 진짜 복잡한 프로젝트를 끝까지 갈 수 있을까?”

증명 과제: C 컴파일러를 Rust로 처음부터 만들어 Linux 커널을 컴파일하기. 일주일 이상 가는 작업이고, 한 에이전트 컨텍스트 창에 도저히 안 들어갑니다.


해결책: 16개의 Claude를 풀어놓다
#

1. 병렬 구조와 분업
#

  • 16개 Claude Opus 4.6 인스턴스가 동시에 작동
  • 각자 도커 컨테이너에서 공유 저장소를 clone
  • current_tasks/ 디렉토리의 락 기반 동기화로 중복 작업 방지
  • 충돌은 에이전트가 자율 해결, 머지도 자율

흥미로운 점: 일을 시킨 게 아니라 에이전트들이 스스로 역할을 나눴습니다. 한 명은 문서, 한 명은 성능 최적화, 한 명은 코드 품질 비평…

2. 단일 작업 병목 — “GCC를 신탁(oracle)으로 쓰기”
#

Linux 커널처럼 모놀리식 프로젝트는 16명이 다 같은 버그에 부딪혀 서로 덮어쓰는 사태가 생겼습니다.

해법: GCC를 비교 기준으로 두고, 무작위로 커널 일부를 두 컴파일러로 컴파일해서 결과가 다른 파일을 골라냄. 이제 16명이 서로 다른 결함 파일에 흩어져 병렬 디버깅이 가능해졌어요.

3. 컨텍스트 오염 / 시간 무감각 — 작은 디테일들이 큰 차이
#

  • 출력 제한: 중요한 줄만 남기고 나머지는 별도 로그로
  • 결정적 샘플링: 매번 다른 파일을 1~10%만 테스트
  • 시간 인식: Claude는 시간 감각이 없으므로 진행 표시기 + --fast 모드 추가

이런 작은 인프라 보강이 자율성 유지에 결정적이었습니다.


결과 / 효과
#

지표
작업 기간 약 2주
Claude Code 세션 수 ~2,000
컴파일러 코드 10만 줄
비용 약 $20,000 (입력 20억, 출력 1억 4천만 토큰)
지원 플랫폼 x86, ARM, RISC-V
GCC torture 테스트 통과율 99%
컴파일 성공 프로젝트 QEMU, FFmpeg, SQLite, PostgreSQL, Redis, Doom

잘 안 된 부분
#

  • 16비트 x86 코드 생성 — 60KB 출력이 32KB 부트 한계 초과, Claude가 결국 GCC에 위임
  • 어셈블러/링커 — 미완성, 버그 잔존
  • 코드 효율 — 최적화 끈 GCC에 못 미침
  • Rust 품질 — 합리적이지만 전문가 수준은 아님

핵심 교훈
#

원문에서 가장 인상적인 부분: “Claude는 내가 준 문제를 자율로 풀려고 한다. 그러니 검증기가 거의 완벽해야 한다. 안 그러면 엉뚱한 문제를 풀어버린다.”

이게 자율 에이전트 시대의 핵심 진리예요. 에이전트는 검증기를 속이는 방향으로 최적화합니다. 검증기가 어설프면 에이전트도 어설프게 끝납니다.

또 하나: “내가 만든 평가셋이 나를 위한 게 아니라 Claude를 위한 것임을 계속 상기해야 했다.” 사람이 쓰는 가정으로 만든 인터페이스는 에이전트에 안 맞습니다.


핵심 결론
#

복잡한 프로젝트를 자율 에이전트로 끝까지 가게 하려 할 때 사람들은 본능적으로 “더 똑똑한 모델"을 떠올립니다. 이 글의 답은 다릅니다.

“자율 작업의 성패가 모델 능력인 줄 알았는데, 사실은 검증기 품질과 분업 인프라가 문제였다.”

10만 줄짜리 컴파일러를 사람 거의 없이 만든 비결은 거의 완벽한 테스트 스위트 + 락 기반 분업 + GCC 같은 오라클 비교였습니다. 모델은 그저 평소처럼 Claude Opus 4.6이었어요.


내 작업에 적용한다면
#

시나리오 1 — 일반적인 데이터 분석 과정
#

분석에서도 여러 에이전트를 병렬로 굴릴 수 있습니다. 단, 검증기와 오라클이 진짜 일을 합니다.

[Before — 한 명에게 다 시키기]
한 LLM 세션에 "이 데이터 다 분석해줘"
   → 컨텍스트 폭발, 결과 일관성 없음

[parallel Claudes 패턴 적용]
[분업 구조]
- 가설 검증 에이전트 (가설별 한 명)
- 시각화 에이전트
- 결과 비평 에이전트
- 문서·보고서 에이전트
[락 기반 동기화]
- 분석 과제 목록을 파일로 관리
- 에이전트가 과제 잡아갈 때 락 걸기
[오라클]
- 알려진 정답이 있는 기존 분석을 비교 기준으로
- "결과가 기준 분석과 어긋나면" 자동 재검토
[검증기 완성도]
- 단위 테스트, 통계 sanity check, 도메인 전문가 spot check

핵심: 분석 자동화의 자율성은 “검증기가 거의 완벽한가” 로 결정됩니다.

시나리오 2 — 웹 사이트를 자동으로 운영할 때
#

운영 자동화도 같은 패턴을 따릅니다.

[Before — 한 자동화 세션이 모든 일]
한 큰 스크립트가 콘텐츠 작성·검수·배포 다 함
   → 한 부분 막히면 전체 멈춤

[parallel Claudes 패턴 적용]
[분업]
- 콘텐츠 작성 에이전트 (글 종류별)
- 검수 에이전트 (톤·SEO·법적 각각)
- 배포·모니터링 에이전트
- 문서·로그 정리 에이전트
[락 기반 동기화]
- 콘텐츠 작업 목록을 status로 관리
- 동시 편집 충돌 방지
[오라클]
- 기존 통과한 글을 기준으로 새 글 비교
- 스타일 가이드 위반 자동 감지
[검증기]
- 발행 전 자동 점검셋이 모든 케이스 커버
- 검증기 통과 못 하면 발행 차단

핵심: 자율 운영의 안전성은 “여러 에이전트가 동시에 일해도 검증기가 다 잡아낸다” 는 확신에서 옵니다. 검증기를 만들어두지 않고 자율을 풀면 사고가 납니다.


Anthropic 엔지니어링 블로그를 오래된 순서대로 읽고 정리합니다.

성경재
작성자
성경재
홈랩, 셀프호스팅, AI/ML, 데이터 분석에 관심이 많습니다.