DuckDB의 Quack 프로토콜이 다중 동시 쓰기 클라이언트-서버를 지원합니다
DuckDB가 Quack 원격 프로토콜을 출시했습니다. 이 프로토콜은 DuckDB 인스턴스들이 클라이언트-서버 방식으로 통신할 수 있게 하며, 여러 동시 쓰기 작업을 지원합니다. 간단하고 빠르게 설계되었으며, HTTP와 같은 검증된 기술을 기반으로 합니다.
DuckDB의 인프로세스 아키텍처는 단일 프로세스 데이터 과학 작업에 탁월하지만, 여러 프로세스가 동일한 데이터베이스 파일에 동시에 쓰려고 할 때 문제가 발생했습니다. 일반적인 해결 방법으로는 사용자 정의 RPC 솔루션, Arrow Flight SQL, MotherDuck의 독점 프로토콜, 또는 PostgreSQL로 전환(선택적으로 pg_duckdb를 통해 DuckDB 실행)이 있었습니다. Quack은 DuckDB의 공식 자체 솔루션입니다.
작동 방식
두 DuckDB 인스턴스 모두 Quack 확장이 필요하며, 현재 core_nightl(야간) 빌드에서 사용할 수 있습니다. 이 프로토콜은 대칭적입니다. 모든 DuckDB 인스턴스가 클라이언트나 서버 역할을 할 수 있습니다. 서버는 HTTP 엔드포인트를 노출하고, 클라이언트가 이에 연결합니다. 특별한 서버 바이너리가 필요하지 않으며, 확장이 로드된 DuckDB 프로세스만 실행하면 됩니다.
주요 설계 선택 사항:
- 프로토콜은 HTTP 기반이므로 방화벽에 친화적이며 표준 도구로 디버깅할 수 있습니다.
- 대량 작업과 지연 시간이 짧은 소규모 트랜잭션을 지원합니다.
- 레거시 제약이 없으며, Arrow Flight SQL 등에서 배운 점을 바탕으로 2026년에 처음부터 설계되었습니다.
사용 사례
- 여러 원격 측정 수집 프로세스가 동일한 DuckDB 데이터베이스에 삽입하는 경우.
- 대시보드가 파일 잠김 문제 없이 동일한 테이블을 동시에 쿼리하는 경우.
- 외부 미들웨어 없이 전통적인 클라이언트-서버 배포에서 DuckDB를 사용하는 경우.
이번 릴리스는 이전에 인프로세스 특성을 강조했던 DuckDB의 전환점을 의미합니다. 팀은 사용자 수요가 원동력임을 인정합니다: “우리는 DuckDB를 범용 데이터 랭글링 도구로 봅니다. 이것이 인프로세스 기능 외에도 클라이언트-서버 프로토콜을 의미한다면, 그렇게 하겠습니다.”
현재 상태: 확장은 야간 빌드에서 사용할 수 있습니다. 안정적인 릴리스는 앞으로 몇 달 안에 예상됩니다.
프로토콜 내부에 대한 심층 분석, 전체 연구 논문 참조 및 단계별 설정 가이드는 원문 공지를 참조하세요.
📖 전체 출처 읽기: HN AI Agents
👀 See Also

Xmloxide: AI 에이전트 지원으로 생성된 libxml2의 Rust 재구현
Xmloxide는 유지 관리가 중단된 libxml2 라이브러리를 순수 Rust로 재구현한 것으로, 호환성 테스트 스위트를 통과하기 위해 Claude Code를 사용하여 개발되었습니다. 메모리 안전한 XML/HTML 파싱을 제공하며, C API를 통해 드롭인 대체가 가능합니다.

Ralph 용어: 서로 다른 에이전트의 교차 검토 세션을 포함한 클로드 코드용 랄프 스타일 루프
RalphTerm은 오픈소스 Rust CLI로, Claude Code 주변에서 랄프 스타일의 외부 루프를 실행합니다: 마크다운 계획을 받아 새로운 대화형 세션에서 작업을 실행하고, 다른 모델(예: Codex)로 별도의 새 세션에서 교차 검토를 수행하며, 발견된 문제를 새로운 구현자 세션에 피드백합니다.

오픈소스 MCP 메모리 서버 - 지식 그래프 및 학습 기능 포함
Rust로 작성된 오픈소스 MCP 서버가 지식 그래프 아키텍처, 헤비안 학습, 하이브리드 검색을 통해 AI 에이전트에 지속적 메모리를 제공합니다. 7.6MB 크기에 밀리초 미만의 지연 시간을 가지며 모든 MCP 호환 클라이언트와 작동합니다.

포어맨: 로컬 클로드 코드 원격 제어를 위한 오픈 소스 슬랙 봇
Foreman은 로컬에서 실행 중인 Claude Code 인스턴스를 원격 제어하는 무료 오픈 소스 Slack 봇입니다. 개발자들이 책상에서 떨어져 있을 때도 휴대폰으로 Claude에 작업을 보낼 수 있게 하면서도 파일 시스템, 도구, 환경에 대한 완전한 로컬 접근을 유지합니다.