Learnings from 100K lines of Rust with AI (2025)
개요
AI 코딩 에이전트를 활용하여 Rust로 Azure의 Replicated State Library(RSL)와 동등한 기능을 하는 분산 시스템을 개발한 경험을 공유하며, 코드 계약, 경량 Spec-Driven Development, 성능 최적화 기법 및 AI 지원 코딩의 미래에 대한 인사이트를 제공한다.
주요 내용
* RSL 현대화의 필요성: 10년 이상 된 Azure의 RSL은 현대 하드웨어 및 워크로드에 맞춰 파이프라이닝, NVM 지원, RDMA 활용 등에서 개선의 여지가 있었다.
* AI 기반 개발 생산성 향상: 약 6주 동안 Claude Code와 Codex CLI를 중심으로 130K 라인의 Rust 코드를 작성했으며, CLI 기반 작업 흐름과 비용적 강제 사항이 생산성을 극대화했다.
* AI 기반 코드 계약 활용: AI가 생성한 코드 계약(선행 조건, 후행 조건, 불변성)은 1,300개 이상의 테스트와 결합되어 시스템의 정확성을 보장하며, 특히 GPT-5 High 모델이 우수한 계약을 생성했다. AI는 계약으로부터 테스트 케이스 및 속성 기반 테스트를 효과적으로 생성했다.
* 경량 Spec-Driven Development (SDD) 적용: 엄격한 SDD 대신 /specify 명령어로 User Story와 Acceptance Criteria를 포함하는 Markdown 스펙을 생성하고, /clarify 명령어로 AI와 함께 스펙을 개선하는 방식을 채택했다. AI는 단일 User Story 단위의 작업을 효과적으로 관리했다.
* AI를 활용한 공격적인 성능 최적화: AI의 계측, 로그 분석, 최적화 제안 및 구현 반복 과정을 통해 노트북 환경에서 처리량을 23K ops/sec에서 300K ops/sec로 향상시켰다. 이를 위해 할당 최소화, Zero-copy 기법 적용, 락 제거, 비동기 오버헤드 축소 등의 기법이 활용되었다.
* AI 지원 코딩 미래에 대한 바람: AI의 End-to-End User Story 실행 자율성 확대, 자동화된 계약 워크플로우(테스트 생성, 디버깅, 수정), 그리고 대규모 코드베이스에 대한 자율적인 성능 최적화 기능 강화를 기대한다.
* 프로젝트 현황: Jay Lorch의 설계를 기반으로 pipelining과 NVM 지원은 구현되었으며, RDMA 지원은 향후 과제로 남아있다. 130K 라인의 Rust 코드와 1,300개 이상의 테스트가 개발되었다.
시사점
AI 코딩 에이전트는 복잡한 분산 시스템 개발에서 전례 없는 생산성 향상을 가져올 수 있으며, 코드 계약, SDD, 성능 최적화 등에서 AI의 능동적인 활용이 향후 소프트웨어 개발 패러다임을 변화시킬 잠재력을 보여준다.
댓글
GitHub Discussions