DeltaDB 소개: AI 에이전트 시대를 위한 버전 관리

DeltaDB는 버전 관리를 스냅샷에서 작업 스트림으로 전환합니다

Zed는 소프트웨어 개발을 개별 커밋의 제약을 넘어 이동시키기 위해 DeltaDB를 구축하고 있습니다. 특정 시점에 코드의 스냅샷을 캡처하는 Git과 달리, DeltaDB는 작업 트리에서 수행된 모든 단일 작업을 연속적인 세밀한 “델타” 스트림으로 기록합니다. 이 접근 방식은 시스템이 모든 변경에 안정적인 식별자를 할당할 수 있게 하여, 개발자가 코드가 진화하는 어느 순간에도 정확한 상태를 참조할 수 있게 합니다.

이러한 아키텍처 전환은 AI 지원 코딩 시대를 위해 특별히 설계되었습니다. 작업을 실시간으로 기록함으로써 DeltaDB는 코드 변경을 이끄는 대화를 편집 내용과 나란히 저장하여, 의도(대화)가 구현(코드)에서 멀어지는 것을 방지합니다.

대화를 일등의 진실 원천으로 통합하기

DeltaDB는 인간과 AI 에이전트 간의 대화를 소프트웨어의 주요 원천으로 취급합니다. 참조가 변동 가능한 라인 번호가 아니라 특정 델타에 고정되기 때문에, 코드가 계속 진화함에 따라 역사적 맥락이 유지됩니다.

Key capabilities of this integration include:

  • Bidirectional Navigation: 양방향 탐색: 개발자는 과거 대화의 라인에서 현재 코드 상태로 이동하거나, 반대로 특정 라인을 만든 구체적인 대화와 이후 편집을 찾을 수 있습니다.
  • Agent Context: 에이전트 컨텍스트: AI 에이전트는 델타 전체 히스토리에 접근하여, 해당 코드를 다룬 이전 에이전트와 인간을 검토함으로써 코드 뒤의 “왜”를 이해할 수 있습니다.
  • Real-time Collaboration: 실시간 협업: 여러 인간과 에이전트가 충돌 없는 복제 작업 트리를 사용해 서로 다른 머신에서 동시에 같은 파일을 편집할 수 있습니다. 이러한 작업 트리는 외부 터미널 도구와 함께 사용할 수 있도록 디스크상의 실제 파일로 남아 있습니다.

Pull Request의 "의식" 제거

토론과 코드를 하나의 위치에 통합함으로써, DeltaDB는 전통적인 풀 리퀘스트와 리뷰 스레드의 필요성을 없애는 것을 목표로 합니다. 현재 Git 기반 워크플로우에서 PR은 작업이 이미 커밋되고 푸시된 후 토론을 코드에 다시 연결하는 메커니즘으로 작동합니다. DeltaDB는 에이전트와의 대화를 유일한 필수 대화로 만들고, 팀원이 실시간 진행 중인 작업에 참여해 에이전트와 상호작용하며 변경 사항을 실시간으로 주석 달 수 있게 하려 합니다.

이 모델 하에서는 Git과 지속적 통합(CI)이 원래의 강점인 자동 검사 실행과 더 넓은 생태계와의 최종 연결 관리에만 사용되고, 협업의 주요 장소로서의 역할은 축소됩니다.

커뮤니티 관점 및 기술 비판

DeltaDB 발표는 개발자들 사이에서 “중간” 코드의 가치와 전문 소프트웨어 엔지니어링의 본질에 대한 큰 논쟁을 촉발했습니다.

“지저분한 중간”의 가치

많은 개발자는 커밋 사이의 작업이 보존되지 않아야 할 시도와 오류의 “지저분한 수프”라고 주장합니다. 비평가들은 커밋이 변경이 이루어졌는지에 대한 선별된 이야기인 반면, 모든 작업의 스트림은 어떻게 일어났는지에 대한 기록에 불과하다고 제시합니다.

"커밋 사이에 작성하는 코드는 나의 생각입니다. 코드를 작성하고, 삭제하고, 다시 작성함으로써 생각합니다. 커밋에 포함되어 배포되는 코드는 다른 사람들이 이해하도록 작성됩니다... 나는 내 생각이 직렬화되고, 버전 관리되며, 공개적으로 접근 가능해지는 것을 원하지 않습니다."

감시와 잡음에 대한 우려

일부 기여자는 모든 키 입력을 캡처하는 것이 개발자 감시 수준을 높일 수 있다는 우려를 표명했습니다. 다른 사람들은 결과적인 히스토리가 “잡동사니”—죽은 길과 실수—로 가득 차서 향후 유지보수자에게 부담이 될 것이라고 주장했습니다.

"모든 변경과 모든 에이전트 메시지를 저장하면 그 잡동사니가 그대로 남게 됩니다."

기존 시스템과의 비교

Technical counterpoints were raised suggesting that similar functionality could be achieved with existing tools:

  • Git Optimizations: Git 최적화: 일부 사용자는 빈번한 자동 커밋을 git merge --no-ff--first-parent와 결합하면 세밀한 히스토리와 깔끔한 최상위 커밋 사이의 균형을 제공할 수 있다고 언급했습니다.
  • Enterprise Precedents: 기업 선례: Google의 Piper/CitC 시스템이 수년간 고세분화 히스토리를 운영해 왔다는 점이 언급되었습니다.
  • Alternative Context: 대체 컨텍스트: 일부 개발자는 의도를 정형화하기 위해 채팅 로그 데이터베이스보다 “컨텍스트 계층”(소스 파일 옆에 있는 실시간 Markdown 문서)을 선호합니다.

AI 전용 유용성

반대로, 비엔지니어용 도구를 만드는 일부 개발자는 엄격한 커밋 위생을 따르지 않는 사람들에게는 지속적인 영어 토론 체인이 소프트웨어를 구축하는 데 필요한 “사고 흐름”을 나타내는 유일한 방법이라고 주장합니다.

Sources