AI 에이전트 16개가 2주 만에 C 컴파일러를 만들었다

Anthropic 연구원 한 명이 Claude AI 에이전트 16개를 동시에 풀어놓았다. 목표는 C 컴파일러를 처음부터 만드는 것. 결과부터 말하면, 2주 만에 10만 줄짜리 Rust 기반 컴파일러가 나왔고, 이 컴파일러로 리눅스 커널까지 빌드하는 데 성공했다. 사람이 코드를 한 줄도 쓰지 않은 채로.

이 프로젝트가 단순한 기술 데모를 넘어서 주목받는 이유는 분명하다. AI가 “코드 몇 줄 짜주는 도구”에서 “소프트웨어를 통째로 설계하고 구현하는 팀”으로 진화하고 있다는 증거이기 때문이다.

AI 에이전트 대시보드를 확인하는 개발자 - AI generated

16개 AI가 동시에 코딩한다는 것

이 프로젝트를 이끈 사람은 Anthropic 연구원 Nicholas Carlini다. 그가 선택한 방법은 “에이전트 팀(agent teams)”이라는 접근법이다. 핵심은 간단하다. 여러 Claude 인스턴스를 공유 코드베이스 위에서 병렬로 작업시키되, 사람이 직접 개입하지 않는 것.

구체적으로 보면 이렇다. 16개의 Claude Opus 4.6 에이전트가 각각 독립된 Docker 컨테이너 안에서 실행된다. 각 에이전트는 공유 Git 저장소에 접근할 수 있고, 자기 로컬 복사본에서 작업한 뒤 upstream에 푸시한다. 병합 충돌이 생기면? Carlini에 따르면 “Claude는 충분히 똑똑해서 병합 충돌을 직접 해결할 수 있다.”

여기서 특이한 점이 있다. 보통 멀티 에이전트 시스템이라고 하면 중앙에서 작업을 분배하는 “오케스트레이터”가 있다. 하지만 이 프로젝트에는 없었다. 각 에이전트가 스스로 “다음으로 가장 명백한 문제”를 찾아서 작업을 시작했다. 중복을 막기 위해 current_tasks/ 디렉토리에 텍스트 파일을 만들어 “이 작업은 내가 하고 있다”고 선언하는 락(lock) 방식을 썼다.

이 구조가 의미하는 건, AI 에이전트가 단순히 지시를 받아 실행하는 수준을 넘어 자율적으로 판단하고 협업할 수 있다는 것이다. 최근 AI 코딩 에이전트 시장이 급성장하고 있는데, 이 프로젝트는 그 가능성의 끝을 한 단계 더 밀어붙인 셈이다.

2주, 2만 달러, 10만 줄 — 숫자가 말해주는 것

프로젝트의 규모를 숫자로 정리하면 이렇다.

  • 기간: 약 2주
  • 비용: 2만 달러 미만 (API 사용료)
  • 세션 수: 약 2,000번의 Claude Code 세션
  • 토큰 사용량: 입력 20억 토큰, 출력 1억 4,000만 토큰
  • 결과물: 100,000줄의 Rust 코드, 외부 의존성 없음 (표준 라이브러리만 사용)

2만 달러라는 비용이 싸다고 느껴지는가, 비싸다고 느껴지는가? Carlini 본인은 “혼자 구축하는 것보다 훨씬 저렴하다”고 평가했다. 실제로 C 컴파일러를 처음부터 만드는 건 컴퓨터공학에서 가장 난이도 높은 프로젝트 중 하나다. 인간 개발팀이라면 수개월에서 수년이 걸릴 작업이다.

결과물의 성능도 인상적이다. GCC torture test suite에서 99% 통과율을 기록했고, PostgreSQL, SQLite, Redis, FFmpeg, QEMU 같은 대형 오픈소스 프로젝트를 컴파일할 수 있다. 그리고 개발자들의 “궁극적 리트머스 테스트”라고 불리는 Doom도 컴파일해서 실행하는 데 성공했다.

가장 인상적인 건 리눅스 커널이다. x86, ARM, RISC-V 세 가지 아키텍처에서 Linux 6.9를 빌드하고 부팅까지 성공했다. AI가 만든 컴파일러로 운영체제를 돌린다는 건, 단순한 “토이 프로젝트”가 아니라는 뜻이다.

결국 사람이 필요했다 — 한계가 보여주는 현실

하지만 이 프로젝트를 “AI가 인간 개발자를 대체했다”는 이야기로 읽으면 곤란하다. 자세히 들여다보면 인간의 개입이 없진 않았다.

Carlini가 한 핵심적인 일은 테스트 인프라를 설계한 것이다. AI 에이전트들이 같은 버그에 동시에 걸려 서로의 수정 사항을 덮어쓰는 문제가 발생했을 때, 그가 해결한 방식이 있다. GCC를 “컴파일러 오라클”로 사용해서, 커널의 대부분은 GCC로 컴파일하고 나머지 일부만 Claude 컴파일러로 컴파일하는 무작위 혼합 방식을 도입한 것이다. 이렇게 하면 각 에이전트가 서로 다른 파일의 버그를 병렬로 디버깅할 수 있다.

전 Microsoft 임원 Steve Sinofsky는 이 프로젝트와 GCC의 37년 개발 기간을 단순 비교하는 것을 비판했다. “언어의 진화, 플랫폼의 다양화, 최적화 기술의 발전을 무시한 비교”라는 것이다. 타당한 지적이다.

실제 기술적 한계도 분명하다.

  • 16비트 x86 코드 생성 불가: 실모드 부팅에 필요한 코드를 만들지 못해 GCC에 위임
  • 어셈블러와 링커 미완성: 컴파일의 마지막 단계가 불안정해서 데모 영상에서도 GCC 도구를 사용
  • 최적화 성능 부족: 최적화를 켜도 GCC의 최적화 비활성 상태보다 비효율적
  • 새 기능 추가 시 기존 기능 손상 빈번: 현재 모델의 자율 개발 능력의 천장을 보여줌

Carlini 본인도 “Opus 4.6은 능력 한계에 도달했다”고 인정했다. 새로운 기능을 추가하거나 버그를 수정하면 이전에 작동하던 기능이 깨지는 현상이 반복됐다는 것이다. OpenAI가 코딩 AI 속도를 15배 끌어올렸다는 뉴스도 있었지만, 속도와 “완성도”는 다른 문제다.

Rust 코드 컴파일 파이프라인 시각화 - AI generated

개발자의 역할이 바뀌고 있다

이 프로젝트에서 가장 의미심장한 코멘트는 한 관찰자의 것이었다. “10배 개발자의 핵심 기술은 복잡한 버그를 직접 해결하는 게 아니라, 16개 모델 인스턴스가 병렬로 해결하도록 하는 자동화 테스트 리그와 피드백 루프를 설계하는 것이다.”

생각해보면 Carlini가 이 프로젝트에서 한 일의 본질이 그것이다. 그는 코드를 쓰지 않았다. 대신 AI들이 효율적으로 일할 수 있는 환경을 설계했다. 테스트 파이프라인을 만들고, 작업 분배 메커니즘을 고안하고, 디버깅이 가능한 구조를 설계했다.

이건 소프트웨어 개발자의 역할이 “코드를 쓰는 사람”에서 “AI 워크플로우를 설계하는 사람”으로 전환되고 있다는 신호다. Nvidia 없이도 AI 코딩 성능을 끌어올리는 방법이 논의되는 시대에, 누가 코드를 쓰느냐보다 누가 AI를 잘 부리느냐가 경쟁력이 되고 있다.

동시에 Carlini는 우려도 표했다. “자율적 개발은 실질적 위험을 동반한다.” 개발자가 개인적으로 검증하지 않은 소프트웨어가 배포될 수 있다는 것이다. 테스트를 통과했다고 해서 완전한 것이 아니라는 점, 침투 테스트 경험에서 그는 이 문제를 뼈저리게 알고 있었다.

정리하면

16개 Claude AI 에이전트가 만든 C 컴파일러는 인상적인 성과이면서 동시에 냉정한 현실 점검이다. AI가 10만 줄의 코드를 쓸 수 있다는 건 증명됐다. 하지만 그 코드가 인간 전문가 수준의 품질인지, GCC를 대체할 수 있는지는 완전히 다른 질문이다.

Carlini는 이 프로젝트를 통해 “에이전트 팀이 복잡한 프로젝트를 자율적으로 구현할 가능성”을 보여줬지만, 동시에 현재 모델의 천장도 드러냈다. 지금 시점에서 이 프로젝트가 던지는 메시지는 하나다. AI가 개발자를 대체하는 게 아니라, 개발자가 AI를 얼마나 잘 설계하고 관리하느냐가 핵심이 됐다는 것.

컴파일러 소스 코드는 GitHub에 공개되어 있다. 직접 확인하고 싶다면 Anthropic 공식 엔지니어링 블로그에서 전체 과정을 읽어볼 수 있다.

댓글 남기기