핵심 요약
- 스타트업 앤트플라이 개발자가 기존 Go 언어로 만들었던 검색·추론 데이터베이스 엔진을 순수 Zig 언어로 전면 재작성해 v0.2를 공개했습니다.
- 스타트업에서 금기시되는 전체 코드 재작성을 감행하면서 Raft 알고리즘, LSM 트리, 전송 계층까지 외부 의존성 없이 직접 구현해 극한의 성능과 신뢰성을 추구했습니다.
- 파이썬 기반 테스트 스위트와 코딩 에이전트 등을 활용해 언어 간 전환 및 정형 검증을 수행하며 프로젝트를 완성했습니다.
요약 스타트업 앤트플라이(Antfly)의 개발자가 Go 언어로 작성했던 기존 v0.1 검색·추론 데이터베이스를 프로그래밍 언어 지그(Zig)를 사용해 외부 의존성 없이 밑바닥부터 완전히 재작성한 개발 비화를 공개했습니다.
개발자는 엘라스틱서치(Elasticsearch) 수준의 편리한 쿼리와 인덱싱, 몽고DB(Mongo)의 쉬운 사용성, 스패너(Spanner) 수준의 간편한 운영성을 갖춘 데이터베이스를 목표로 삼고 주말을 활용해 Go 언어로 v0.1을 개발했습니다. 당시에는 CockroachDB처럼 동시성과 분산 시스템 처리가 중요했고, etcd의 검증된 Raft 구현체를 활용할 수 있는 Go가 최적의 선택이었습니다. 이후 벡터 검색과 임베딩 모델의 유행에 맞춰 다양한 벡터 인덱싱 알고리즘을 직접 구현해 노트북에서 Ollama와 연동한 시맨틱 위키피디아 검색까지 성공시켰습니다.
하지만 타이거비틀(TigerBeetle)에서 영감을 얻어 관심 있게 보던 Zig 언어가 점차 발전하고 비동기 I/O 및 이벤트 시스템이 개선되자, 개발자는 과감한 결단을 내렸습니다. 일반적인 스타트업에서는 금기시되는 '기존 제품 갈아엎기'를 단행한 것입니다. 대부분의 스타트업이 실패하는 현실에서, 압도적인 성능과 신뢰성을 확보하기 위해 모든 고성능 컴포넌트를 자체 제작하는 모험을 택했습니다.
그는 외부 의존성을 배제한 채 Zig로 Raft 분산 합의 알고리즘, LSM 트리, 전문 검색 인덱스는 물론 HTTP/2와 QUIC 기반의 HTTP/3 전송 계층까지 직접 구현했습니다. 또한 기존 Go 기반 테스트를 파이썬으로 옮겨 언어 독립적인 검증 환경을 구축하고, 코딩 에이전트와 정형 검증 기법을 접목해 Zig로의 마이그레이션을 완수했다고 밝혔습니다.
Sponsored · 광고