Skip to content

Postgres가 Rust로 재작성되었습니다

pgrust라는 새로운 프로젝트가 Postgres를 Rust로 완전히 재작성했으며, 모든 회귀 테스트를 통과했습니다. 하지만 진짜 이야기는 단순히 속도에 관한 것이 아니라, AI가 어떻게 이 '불가능한' 위업을 현실로 만들었는지에 대한 것입니다.

Nora Vance
Hero image for: Postgres가 Rust로 재작성되었습니다

요약 / 핵심 포인트

pgrust라는 새로운 프로젝트가 Postgres를 Rust로 완전히 재작성했으며, 모든 회귀 테스트를 통과했습니다. 하지만 진짜 이야기는 단순히 속도에 관한 것이 아니라, AI가 어떻게 이 '불가능한' 위업을 현실로 만들었는지에 대한 것입니다.

포크를 넘어: 완벽한 클론인가?

pgrust라는 이름으로 Rust로 Postgres를 완전히 재작성한 프로젝트가 공개되었으며, 이는 단순한 학술적 연습을 훨씬 뛰어넘습니다. 이 대담한 프로젝트는 46,000개 이상의 공식 Postgres 회귀 쿼리를 모두 통과하는 기념비적인 위업을 달성했습니다. 이는 극히 일부의 '호환 가능한' 데이터베이스만이 감히 주장할 수 있는 벤치마크입니다. 이것은 단순한 호환성에 대한 인정이 아니라, 선언입니다.

결정적으로, pgrust는 기존 C 코드베이스의 포크도 아니고, 원본에 덧붙여진 확장 기능도 아닙니다. 이는 Postgres 18.3과의 100% 동작 호환성을 위해 세심하게 설계된 완전한, 바닥부터의 재구현을 나타냅니다. 목표는 기존 엔진을 수정하는 것이 아니라, 외부 계약의 모든 뉘앙스를 보존하면서 Rust로 완전히 대체하는 것이었습니다.

그 결과는 외부에서 볼 때 C 기반의 이전 버전과 전혀 구별할 수 없는 데이터베이스 서버입니다. 정확한 와이어 프로토콜을 사용하여 표준 `psql` 클라이언트와 원활하게 통합됩니다. 더욱 놀라운 점은, pgrust가 기존 Postgres 18.3 데이터 디렉토리에서 직접 부팅할 수도 있다는 것입니다. 이는 새로운 엔진과 완전한 클론 사이의 경계를 모호하게 만드는 수준의 디스크 호환성을 보여줍니다. 이것은 단순한 표면적인 모방이 아니라, 깊고 근본적인 일치입니다.

진정한 목표: 프로세스 대신 스레드

Postgres는 안정성에도 불구하고, 무거운 연결당 프로세스 모델에 의존합니다. 각 클라이언트는 자체 백엔드 프로세스를 요구하며, 강력한 격리를 제공하지만 상당한 메모리 오버헤드를 발생시킵니다. 이 설계는 또한 병렬 작업을 위한 상태 공유를 복잡하게 만들어, 종종 연결 풀링을 필요로 합니다.

그러나 pgrust는 아직 출시되지 않은 실험 버전에서 다른 길을 택합니다. 이는 이를 연결당 스레드 아키텍처로 대체하는 것을 목표로 합니다. 이러한 변화는 연결당 메모리 소비를 줄이고, 다양한 데이터베이스 구성 요소 간의 정보 공유를 단순화하여 현대 워크로드에 중요한 이점을 제공합니다.

하지만 이러한 아키텍처적 전환은 중요한 절충점을 가져옵니다. Postgres의 프로세스 격리는 중요한 안전망을 제공합니다: 한 연결의 충돌은 일반적으로 전체 서버를 다운시키지 않습니다. 스레드를 사용하면 단일 메모리 버그나 안전하지 않은 확장 기능이 전체 프로세스를 불안정하게 만들 수 있어, 내재된 안전 장치 중 일부를 제거하게 됩니다.

이러한 근본적인 재설계는 pgrust의 가장 대담한 성능 주장을 뒷받침합니다. 개발자들은 이 미출시 버전에서 트랜잭션 워크로드에 대해 미확인된 50% 향상과 분석 쿼리에 대해 놀라운 300배 개선을 보고합니다. 이러한 극적인 수치는 이러한 벤치마크를 뒷받침하는 코드가 독립적인 검증을 위해 아직 공개되지 않았으므로 추측에 불과합니다.

비밀 병기: AI 기반 개발

Postgres를 pgrust로 기념비적으로 재작성한 것은 단순히 Rust의 역량을 증명하는 것을 넘어, AI 기반 개발의 대담한 시연이었습니다. Michael Malis와 Jason Seibel은 AI 코딩 에이전트를 광범위하게 활용하여, Postgres의 백만 줄 C 코드베이스를 놀라운 속도와 실현 가능성으로 번역할 수 있었습니다. 이전에는 소규모 팀에게는 상상할 수 없었던 이 기념비적인 작업은 자동화된 번역을 통해 다룰 수 있게 되었고, 이러한 작업의 경제성을 근본적으로 변화시켰습니다.

이것은 진행 중인 진정한 실험을 보여줍니다. Rust가 Postgres를 더 빠르게 만들 수 있는지 여부뿐만 아니라, AI가 레거시 인프라 재작성을 핵심 아키텍처를 재고할 만큼 저렴하게 만들 수 있는지 여부입니다. 한때 손댈 수 없는 모놀리스로 여겨졌던 수십 년간 축적된 C code가 심층적인 아키텍처 변경의 실행 가능한 목표가 되었습니다. 공개된 pgrust 버전은 Postgres의 원래 구조를 대체로 반영하지만, 미공개된 thread-per-connection 모델은 근본적인 설계 변경에 대한 진정한 야망을 보여줍니다.

이러한 패러다임의 전환은 다른 대규모, 수십 년 된 소프트웨어 프로젝트를 현대화하기 위한 비용-편익 분석을 근본적으로 재정의합니다. 이전에는 재작성하기에 너무 비싸거나 위험하다고 여겨졌던 Linux, Apache 또는 더 오래된 엔터프라이즈 애플리케이션과 같은 시스템도 이제 가능성의 영역으로 들어섭니다. AI agents는 초기 번역 부담을 극적으로 줄여주어, 인간 엔지니어들이 혁신적인 아키텍처 전면 개편에 집중할 수 있도록 합니다. 자세한 내용은 malisper/pgrust: Postgres rewritten in Rust, now passing 100% of the Postgres regression tests - GitHub에서 확인할 수 있습니다.

과장 대 현실: pgrust에 대한 판결

놀랍지 않게도, 엔지니어링 커뮤니티의 pgrust에 대한 평가는 극명하게 엇갈립니다. 많은 개발자들이 46,000개 이상의 공식 Postgres regression queries를 모두 통과하는 것과 같은 성과에 대해 엄청난 존경심을 표하지만, 건전한 회의론도 여전히 남아있습니다. 미공개 버전에서 transactional performance가 50% 향상되고 analytical workloads가 300배 빨라졌다고 주장하는 검증되지 않은 벤치마크는 이러한 신중함을 부추깁니다.

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

착각하지 마십시오: pgrust는 획기적인 실험이지, production-ready 대체품이 아닙니다. 광범위한 extension ecosystem과 같은 핵심 영역은 아직 미완성 상태이며, crash recovery 및 long-term stability를 위해 필요한 중요한 강화 작업은 아직 실현되지 않았습니다. 이를 live environment에 배포하는 것은 무책임한 일입니다.

궁극적으로 pgrust의 가장 심오한 기여는 단일 벤치마크나 Postgres의 직접적인 대체품이 아닐 수 있습니다. 대신, 그 진정한 가치는 그것이 만들어내는 전례 없는 자유에 있습니다. AI-driven development에 의해 가능해진 이 프로젝트는 전체 Postgres 프로젝트를 forking하는 데 드는 엄청난 비용과 복잡성 없이 thread-per-connection 모델과 같은 급진적인 새로운 데이터베이스 아키텍처를 테스트할 수 있는 가능성을 보여줍니다.

자주 묻는 질문

pgrust란 무엇인가요?

pgrust는 Rust 프로그래밍 언어로 Postgres 데이터베이스를 처음부터 완전히 재작성한 것입니다. Postgres의 46,000개 이상의 공식 regression tests를 모두 통과하여 동작적으로 동일한 drop-in replacement가 되는 것을 목표로 합니다.

pgrust는 Postgres보다 빠른가요?

현재 출시된 pgrust 버전은 성능에 중점을 두지 않습니다. 그러나 미공개 개발 버전은 thread-per-connection 모델로 전환하여 transactional workloads에서 최대 50%, analytical workloads에서 300배의 상당한 속도 향상을 주장합니다.

pgrust를 production 환경에서 사용할 수 있나요?

아니요. 개발자들은 pgrust가 production-ready가 아니라고 말합니다. regression tests를 통과했지만, 특히 crash recovery 및 replication과 같은 영역에서 production 신뢰를 위해 필요한 수년간의 real-world testing을 거치지 않았습니다.

pgrust를 구축하는 데 AI는 어떻게 사용되었나요?

개발자들은 거의 백만 줄에 달하는 C code를 Rust로 번역하는 방대한 작업을 가속화하기 위해 AI-powered coding agents를 광범위하게 사용했습니다. 이는 그렇지 않았다면 엄청나게 비쌌을 실험을 가능하게 만들었습니다.

Found this useful? Share it.

AI Reputation Report

What AI knows about you.

ChatGPT, Perplexity, Gemini, Claude & Grok are already answering questions in your category. Type your site, see who they name — you, or your competitor. Free preview.

Check my sitefree preview

One short daily email of tools worth shipping. No drip funnel.

one email a day · unsubscribe in two clicks · no third-party tracking

🚀더 알아보기

AI 트렌드를 앞서가세요

Stork.AIが엄선한 최고의 AI 도구, 에이전트, MCP 서버를 만나보세요.

P.S. 쓸 만한 걸 만드셨나요? Stork에 등록