인사이트 · 3분 · 05.22

분산 합의 엔진을 4주에 Rust 100K줄로 — "잠들기 전 Claude에 작업 안 던지면 돈 낭비"라는 엔지니어가 증명한 것

loopy vibecoder

핵심 요약 (TL;DR)

Microsoft Azure 분산 합의 엔진(multi-Paxos)을 다뤄본 엔지니어 Cheng Huang이 같은 도메인을 Rust 100K~130K줄로 다시 짰고, 4주 만에 코드 작성·3주 만에 성능 튜닝을 끝내 23K → 300K ops/sec(약 13배)를 찍었습니다. 무기는 Claude Code + Codex CLI + spec-kit + Code Contracts. "내 도메인은 너무 어려워서 AI로는 못 한다"는 핑계가 가장 정확성이 절대인 영역(합의 알고리즘)에서 무너진 사건이고, 글은 5/20 Hacker News 1면에서 173점·199댓글로 부활했습니다.

도메인 천장이 한 명에 의해 깨졌습니다

분산 합의(Paxos)는 "한 줄 잘못 짜면 데이터가 영원히 어긋나는" 부류의 코드입니다. Azure Storage, Cosmos DB 같은 마이크로소프트 클라우드 코어를 떠받치는 RSL(Replicated State Library)이 정확히 이 multi-Paxos 위에 있습니다. 이 영역에서 잔뼈가 굵은 엔지니어 Cheng Huang이 같은 알고리즘을 Rust로 처음부터 다시 짰습니다. AI가 toy 앱이나 만든다는 회의론이 가장 두꺼웠던 분야에서, 한 명이 100K줄을 4주에 뽑아 올렸습니다.

원문은 본인의 블로그(zfhuang99.github.io)에 2025년 12월 1일에 올라왔던 글인데, 5월 20일 HN 1면으로 다시 떠올랐어요. 부활시킨 한 줄은 이거였습니다. "if I don't kick off a coding task with Claude before bed, I feel like I'm wasting money." 직역하면, 자기 전에 Claude에게 코딩 작업을 던져두지 않으면 돈을 낭비하는 기분이 든다는 거죠. Claude Max $100/월을 24시간 풀가동하는 사람의 감각입니다.

100K줄 안에 무엇이 들었나

구조를 뜯어보면 평범한 100K가 아닙니다. non-test 코드 약 50K + 테스트 코드 50K 이상 — 절반이 테스트입니다. 유닛·통합·실패 주입(failure-injection) 합쳐 1,300개가 넘는 테스트가 깔려 있고 커버리지는 65%. 그리고 핵심 함수(예: process_2a)에는 무려 16개의 Code Contract가 박혀 있습니다.

Code Contract는 "이 함수에 들어오는 값은 반드시 이 조건을 만족해야 하고, 나갈 때는 이 불변식이 깨지면 안 된다"는 런타임 assertion이에요. AI에게 코드를 시키되, 인간이 정의한 안전 그물을 함수 안에 직접 박아두는 방식입니다. 본인 표현으로는 이 contract 하나가 production에 가기 전에 "미묘한 Paxos safety violation"을 잡아냈다고 합니다. 합의 알고리즘에서 safety violation은 데이터를 영원히 망가뜨릴 수 있는 종류의 버그죠.

워크플로의 정수, 4가지

  • spec-kit으로 입을 묶기: /specify로 요구사항을 못 박고, /clarify로 모호한 부분을 강제로 분기시킵니다. AI가 "알아서" 결정하지 못하도록 입구를 좁힌 거죠.
  • Code Contracts로 출구를 묶기: 함수마다 사전·사후·불변식. 인간이 알고리즘적으로 "여기는 절대 깨지면 안 된다"고 적어두면, AI가 어떻게 짜든 런타임에 걸립니다.
  • 테스트가 코드의 절반: failure-injection까지 끼워 1,300개. "AI가 실수 안 했다"가 아니라 "AI가 실수해도 잡힌다"의 구도.
  • 멀티 모델 비평: Claude Code + Codex CLI를 같이 굴리며 한쪽이 짠 걸 다른 쪽이 리뷰. GitHub Copilot, Augment Code, Kiro, Trae까지 6개를 깔아두고 주력만 둘로 좁힌 선택입니다.

한국 바이브코더에게 의미하는 것

"내 도메인은 너무 까다로워서 AI로는 못 한다"는 말, 이제 분산 합의보다 어려운 도메인을 댈 차례입니다. 핵심은 도메인 난이도가 아니라 "spec을 얼마나 좁히고, 출구에 얼마나 두꺼운 안전 그물을 까느냐"였어요. AI를 자율 주행으로 굴리는 게 아니라, 가드레일이 빼곡한 고속도로에서 24시간 달리게 만든 거죠. Huang이 하룻밤도 비우지 않는 이유가 여기 있습니다 — 가드레일이 충분하면 잘 동안에도 돈을 벌어주는 자산이 되니까요.

원문은 zfhuang99.github.io 글에서 직접 읽어보시고, 토론은 Hacker News 스레드에서 확인하시면 됩니다.

FAQ

Q. spec-kit·Code Contracts를 한국어 도메인에도 적용 가능한가요?
A. spec-kit은 자연어 spec → 코드 분기 도구라 한국어로도 동작하고, Code Contracts는 언어 자체의 기능(Rust의 debug_assert!, Python의 icontract 등)이라 도메인과 무관합니다. 핵심은 "AI에게 무엇이 깨지면 안 되는지"를 함수 단위로 명시할 수 있느냐예요.

Q. Claude Max $100/월이 정말 회수되나요?
A. Huang의 케이스는 "잠자는 동안에도 작업을 돌린다"는 전제가 깔려 있어요. 풀가동 안 하면 "낭비"라는 그의 표현이 솔직한 자기 평가입니다. 단순히 채팅 몇 번 쓰는 용도라면 $20 Pro로 충분하고, $100 Max는 "AI에게 24시간 일을 시키는 워크플로"가 깔려야 합니다.

Q. 1,300개 테스트 중 AI가 짠 비중은요?
A. 본문에서 명시하지 않습니다. 다만 "코드의 절반이 테스트"라는 구조 자체가 모범이 됩니다. AI 생성 코드의 정확성 검증 비용을 "테스트 인프라"라는 자산으로 환산한 거죠.

0

댓글 0

아직 댓글이 없습니다