Claude Code, PostHog의 SQL 파서를 70배 속도 향상으로 재작성 – 속성 기반 테스트와 병렬 에이전트의 작동 방식

PostHog 엔지니어 Robbie Coomber는 여러 장기 실행 Claude Code 세션을 병렬로 사용하여 SQL 파서를 재작성, 기존 ANTLR 생성 C++ 파서 대비 약 70배의 속도 향상을 달성했습니다. 새로운 파서는 16K 라인의 수제 Rust 코드와 5K 라인의 도구 및 테스트로 구성됩니다.
왜 재작성했나?
PostHog는 사용자 SQL을 ClickHouse SQL로 트랜스파일하여 논리적 데이터 뷰와 최적화를 제공합니다. 파서는 SQL을 AST로 변환하여 다운스트림 접근 제어 및 최적화에 사용합니다. 기존 ANTLR 생성 파서는 일반적인 그래프 워킹 인터프리터(ATN — 스택이 있는 NFA)를 임의의 동적 선행 검사와 함께 사용했으며, C++로 작성되었음에도 느렸습니다. 수제 재귀 하강 파서는 본질적으로 더 빠릅니다.
접근 방식: 병렬 에이전트 세션 + 오라클 TDD
- 두 가지 접근 방식을 병렬로 테스트: 하나는 성능(Pratt 표현식 파싱을 사용한 재귀 하강), 다른 하나는 정확성(ANTLR의 동작을 명시적 코드로 모방)에 초점. 둘 다 동등하게 잘 작동했습니다.
- 기존 C++ 파서를 오라클로 사용하여 불일치를 생성 — 파서 간 차이가 있는 SQL을 찾고, 새 파서를 수정하고, 반복.
- 속성 기반 테스트로 수많은 SQL 변형을 생성했으며,
SELECT SELECT FROM FROM WHERE WHERE AND AND(유효한 SQL) 테스트도 포함. - 새 파서는 모든 실제 쿼리에 대해 오라클과 일치; 차이는 병리적 쿼리에서만 발생.
결과
파싱 속도 70배 향상. 최종 파서는 필요한 경우에만 선행 검사 및 역추적을 사용하는 재귀 하강 설계입니다. Coomber는 AI 없이는 이러한 수제 파서를 작성하고 유지하는 데 몇 달이 걸리며 노력할 가치가 없었을 것이라고 언급합니다. Claude Code를 통해 실용적이 되었습니다.
주요 시사점
이 사례 연구는 병렬 AI 코딩 세션과 속성 기반 테스트 및 오라클을 사용한 테스트 주도 개발이 성능이 중요한 코드를 극적으로 개선할 수 있음을 보여줍니다. 에이전트를 사용하여 핵심 인프라를 재작성하고 자동화된 불일치 감지에 의존하는 이 기법은 다른 프로젝트에도 재사용 가능합니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

동료 MCP 서버가 협업을 위한 AI 코딩 세션을 연결합니다
Peers는 Claude Code와 Codex 세션을 연결하여 서로를 발견하고, 공유 스크래치패드를 통해 협업하며, diff와 테스트 리포트 같은 아티팩트를 공유하고, 세션 컨텍스트를 구조화된 마크다운으로 전달할 수 있게 해주는 로컬 MCP 서버입니다.

마인드 프로토콜: 오픈소스 시스템으로 클로드에 지속적 메모리와 실시간 생체 인식 통합 제공
Mind Protocol은 Claude가 자율적인 동반자로 지속적으로 실행되는 오픈소스 시스템입니다. 이 시스템은 모든 세션에 걸쳐 지속적인 메모리를 제공하며, 패턴, 선호도, 기록에 대한 수개월간 누적된 컨텍스트를 Claude에 제공합니다. 또한 모든 대화에 실시간 Garmin 워치 데이터(심박수, HRV, 스트레스, 수면 지표, 체력 배터리 수치 등)를 주입합니다.

SwiftUI와 CSM-1B로 Apple Silicon에서 로컬 음성 AI 어시스턴트 구축하기
개발자가 mobiGlas를 만들었습니다. 이는 SwiftUI 앱으로, OpenClaw와 연동하여 AirPods을 통한 핸즈프리 대화를 가능하게 하며, 로컬 음성 복제(CSM-1B on M2 Ultra)를 사용하고 클라우드 API가 필요 없습니다.

Mandala v0.3: 물류 원격 계측 데이터를 에이전트 추론을 위한 OpenTelemetry 스팬으로 통합하는 오픈소스 비동기 런타임
Mandala v0.3은 Samsara, Descartes, Vizion, FMCSA의 원격 측정 데이터를 웹훅으로 수집하고, 이벤트를 OpenTelemetry 스팬으로 내보내며, LLM 에이전트를 위한 MCP 도구를 통해 데이터를 노출하는 오픈소스 비동기 런타임입니다.