AI가 코드를 쓰는 건 이제 새롭지 않습니다. 그런데 AI가 컴파일러를 만든다면 어떨까요? 컴파일러는 다른 모든 프로그램을 만드는 도구입니다. 컴퓨터과학에서 가장 복잡한 시스템 중 하나고, 단 하나의 버그가 수천 개의 프로그램을 조용히 망가뜨릴 수 있습니다.

Anthropic의 연구자 Nicholas Carlini가 Claude 에이전트 16개를 병렬로 운영해 Rust로 작성된 C 컴파일러를 처음부터 만드는 실험을 했습니다. 약 2,000번의 Claude Code 세션과 $20,000의 API 비용으로 10만 줄짜리 컴파일러가 완성됐고, Linux 커널을 x86, ARM, RISC-V 아키텍처에서 빌드할 수 있게 됐습니다. Swift, LLVM, Clang을 만든 Chris Lattner가 이 코드를 직접 분석한 글도 발표했는데, 두 글을 같이 읽으면 AI 코딩의 현재 위치가 꽤 선명하게 보입니다.
출처: Building a C compiler with a team of parallel Claudes – Anthropic
에이전트 팀을 어떻게 운영했나
Carlini가 이 실험에서 중점을 둔 건 “컴파일러 만들기” 자체보다 에이전트 팀을 어떻게 자율적으로 운영하느냐였습니다. 핵심 구조는 단순합니다. 각 에이전트는 무한 루프 안에서 작업을 완료하면 다음 작업을 바로 집어들고, 깃 저장소를 통해 변경사항을 공유합니다. 여러 에이전트가 같은 작업을 동시에 건드리지 않도록 텍스트 파일로 “락”을 거는 방식으로 충돌을 관리했습니다.
병렬 구조 덕분에 역할 분담도 가능했습니다. 일부 에이전트는 핵심 기능 구현을 맡고, 나머지는 중복 코드 정리, 성능 최적화, 문서화, 코드 품질 개선을 담당했습니다. Carlini가 강조한 핵심은 테스트 설계였는데, Claude가 사람 없이 스스로 방향을 잡으려면 “무엇이 맞고 틀린지”를 명확히 알려주는 피드백 환경이 필요했기 때문입니다. 컨텍스트 오염을 막기 위해 로그를 최소화하고, 시간 감각이 없는 모델 특성을 고려해 진행 상황을 간헐적으로만 출력하는 방식도 적용했습니다.
무엇을 해냈나
결과물은 꽤 인상적입니다. Linux 6.9 커널을 세 가지 아키텍처에서 빌드할 수 있고, QEMU, FFmpeg, SQLite, PostgreSQL, Redis를 컴파일했습니다. GCC 고문 테스트 스위트를 포함한 대부분의 컴파일러 테스트에서 99%의 통과율을 기록했고, Doom도 실행됩니다.
Lattner는 이 결과를 두고 “강팀 학부생이 초기에 만들 법한 교과서적 구현”이라고 평가했습니다. 놀라운 칭찬이지만, 동시에 한계를 담고 있는 말이기도 합니다.
어디서 한계가 드러났나
Lattner가 직접 코드를 파고들자 흥미로운 패턴이 보였습니다. 컴파일러의 설계는 LLVM과 GCC에서 수십 년에 걸쳐 쌓인 교과서적 구조를 거의 그대로 따릅니다. 중간 표현(IR) 설계, 최적화 패스 구조, 네이밍 컨벤션 — Claude는 기존 컴파일러 공학의 집단 지식을 내면화한 뒤 일관되게 적용했습니다.
반면 몇 가지 결함은 구조적입니다. 코드 생성기는 IR을 쓰는 대신 어셈블리 텍스트를 다시 파싱하고, 파서에는 에러 복구 로직이 부실합니다. 가장 큰 문제는 시스템 헤더를 직접 파싱하는 대신 테스트에 필요한 것들을 하드코딩해뒀다는 점입니다. 이는 테스트 스위트를 넘어서는 일반화가 어렵다는 걸 의미하고, 실제로 버그 트래커에서도 확인됩니다. Carlini 본인도 여러 한계를 고치려 시도했지만 새 기능이 기존 기능을 깨는 패턴이 반복됐다고 밝혔습니다.
IP 측면의 질문도 제기됩니다. CCC는 인터넷 접근 없이 클린룸 환경에서 개발됐지만, 일부 코드는 기존 구현과 매우 유사한 형태로 나타났습니다. AI가 방대한 코드로 학습한 뒤 새로운 코드를 생성할 때 “학습”과 “복제”의 경계를 어떻게 정의할지는 아직 법적·제도적 합의가 없는 영역입니다.
이 실험이 보여주는 것
Lattner의 해석이 핵심을 잘 짚습니다. 현재 AI 코딩 시스템은 성공 기준이 명확하고 검증 가능할 때 뛰어납니다. “컴파일되는가”, “테스트를 통과하는가” — 이런 환경에서 반복적 개선은 매우 효과적입니다. 반면 새로운 추상화를 발명하거나, 아직 존재하지 않는 아이디어를 위한 테스트를 쓰는 것은 다른 차원의 문제입니다.
CCC가 주목받는 건 컴파일러를 만들었기 때문만이 아닙니다. 함수 단위 코드 생성을 넘어, AI가 여러 서브시스템에 걸쳐 일관된 아키텍처를 유지하며 대규모 시스템을 구축할 수 있다는 걸 보여줬기 때문입니다. 이 전환 — 코드 완성에서 엔지니어링 참여로 — 이 이 실험의 진짜 마일스톤입니다.
Carlini는 논문 말미에 이 결과가 흥분되면서도 불안하다고 솔직하게 썼습니다. 병렬 에이전트의 구체적인 설계 원칙과 에이전트 스케일링 법칙에 대한 분석은 원문에서 더 자세히 확인할 수 있습니다.
참고자료:
- The Claude C Compiler: What It Reveals About the Future of Software – Chris Lattner, Modular
- Simon Willison’s summary

답글 남기기