Launch HN: Diversion (YC S22) – 클라우드 네이티브 (Cloud-Native) Git 대안
요약
Diversion은 Git의 확장성 한계와 복잡성을 해결하기 위해 구축된 클라우드 네이티브 버전 관리 시스템(VCS)입니다. 분산 스토리지와 데이터베이스를 기반으로 실시간 협업 기능을 제공하며, 특히 대규모 파일 처리가 필요한 게임 개발자들에게 최적화된 환경을 제공합니다.
핵심 포인트
- Git의 확장성 문제(저장소 크기, 파일 크기, 동시 사용자 수)를 해결하기 위해 설계됨
- Git의 복잡성을 줄이고 사용 편의성을 높이는 데 집중
- Google Docs나 Figma와 같은 실시간 협업 기능을 버전 관리 시스템에 도입
- 분산 스토리지 및 서버리스 인프라 기반의 REST API 중심 아키텍처
- 기존 Git 리포지토리와의 동기화 및 호환성 지원
안녕하세요 여러분! 저희는 Diversion (https://diversion.dev)의 공동 창업자인 Sasha와 Egal입니다. 저희는 현대적인 클라우드 네이티브 (Cloud-Native) 버전 관리 시스템 (Version Control System)을 구축하고 있습니다. 저희의 첫 사용자들은 Diversion의 단순함과 확장성 (Scalability)을 선호하는 게임 개발자들입니다. 여기 빠른 데모를 확인해 보세요:
왜 새로운 VCS (Version Control System)가 필요할까요? Git이 우리의 삶을 크게 개선했으며, 지난 18년 동안 소프트웨어 개발의 발전에 중요한 역할을 했다는 점에는 의심의 여지가 없습니다. 하지만 Git은 2005년의 매우 다른 세상(느린 네트워크, 훨씬 더 작은 프로젝트 규모, 클라우드 부재)을 위해 구축되었으며, 오늘날 모든 사람에게 완벽한 도구는 아닙니다.
Git의 가장 큰 단점은 저장소 (Repository)와 파일 크기, 그리고 동시 사용자 수 모두에서 발생하는 제한된 확장성 (Scalability)입니다. 이것이 Google과 Meta가 자신들만의 버전 관리 시스템을 구축한 이유입니다. 또한 게임 개발, 반도체, 금융 서비스 분야의 다른 대기업들이 여전히 SVN이나 Perforce와 같은 레거시 (Legacy) 도구들을 사용하고 있는 이유이기도 합니다.
저희가 해결하려는 또 다른 문제는 Git의 악명 높은 복잡성입니다. 저희의 이전 스타트업에서 한 데이터 사이언티스트가 잘못된 Git 명령어를 사용하여 팀의 한 달 치 작업물을 실수로 파괴한 적이 있습니다 (수정: 몇 시간 후 업데이트되지 않은 레포지토리 클론 (Repo Clone)으로부터 복구할 수 있었습니다). Git이 만들어지기 전에 CVS와 SVN을 사용했던 개발자로서, 저는 왜 Git이 다른 도구들에 비해 배우기가 그토록 어려운지 자주 의문을 가졌습니다.
반면에, Git의 브랜칭 (Branching) 및 머징 (Merging) 능력은 매우 뛰어납니다. 이는 오늘날 우리 모두가 당연하게 여기는 현대적 소프트웨어 개발 방법론(예: 피처 브랜치 (Feature Branches), CI/CD)을 가능하게 하여 개발자의 속도 (Velocity)를 크게 향상시켰습니다.
저희는 궁금했습니다. Git의 브랜칭 능력을 갖추면서도 사용하기 쉽고, 빠르며, 확장 가능한 버전 관리 시스템을 만드는 것이 가능할까? 그리고 그 과정에서 또 무엇을 개선할 수 있을까?
현대적인 클라우드 도구에서 사용할 수 있는 한 가지 기능은 실시간 협업 (Real-time collaboration)입니다 (예: Google Docs, Figma). 개발자들이 진행 중인 작업이 반드시 모든 사람에게 공개되기를 원하는 것은 아니지만, 커밋 (Commit) 전 피드백을 받고 싶을 때, 머지 충돌 (Merge conflicts)을 감지하고 방지하고 싶을 때, 그리고 코드베이스의 어느 부분이 다른 사람에 의해 변경되고 있는지 가시성을 확보하고 싶을 때 이를 쉽게 공유할 수 있다면 매우 유용할 것입니다.
Diversion은 분산 스토리지 (Distributed storage)와 데이터베이스를 기반으로 구축되었으며, REST API를 통해 접근 가능하고 서버리스 클라우드 인프라 (Serverless cloud infrastructure)에서 실행됩니다. 모든 리포지토리 작업은 API 호출 (Commit, Branch, Merge 등)입니다. 데스크톱 클라이언트는 진행 중인 모든 작업을 실시간으로 클라우드에 동기화합니다 (심지어 커밋 전에도 말이죠). 사용자는 대화형 CLI, Web UI 또는 IDE 플러그인 (현재 JetBrains 지원, 향후 추가 예정)을 사용하여 Diversion을 사용할 수 있습니다. Web UI를 사용하면 데스크톱 클라이언트를 설치할 필요 없이 대부분의 기본적인 작업을 수행할 수 있습니다.
Diversion은 Git과 호환되며, 기존 Git 리포지토리와 동기화할 수 있습니다 (Diversion의 각 새로운 커밋은 Git으로 들어가고, 그 반대도 마찬가지입니다). 저희는 코드베이스가 성숙해지고 저희 웹사이트에 오픈 소스 리포지토리 디렉토리를 구현하게 되면 오픈 소스로 출시할 계획입니다 (당연히 Diversion의 코드는 Diversion에서 관리됩니다!).
현재 오픈 베타 (Open beta) 단계이며, 여기(https://diversion.dev)에서 직접 체험해 보실 수 있습니다 ('Get Started' 클릭). 완전히 셀프 서비스 방식으로 운영되어 누구와도 대화할 필요가 없으며, 소규모 팀에게는 무료입니다 (https://diversion.dev/pricing).
버전 관리 시스템을 구축하는 것은 (저희가 배운 바와 같이) 매우 어려운 일이며, Diversion은 여전히 갈 길이 멉니다. 저희는 현재 속도 개선, CI 통합, IDE 및 게임 엔진용 플러그인, 그리고 기타 사용성 개선 작업을 진행 중입니다. 지금까지 저희가 만든 것에 대해 여러분의 생각과 피드백을 듣고 싶습니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기