
Git은 완벽한가?
오늘날 소프트웨어 개발에서 Git은 사실상의 표준입니다. 리눅스 커널 개발을 위해 Linus Torvalds가 만든 이후, Git은 거의 모든 소프트웨어 프로젝트의 버전 관리 도구로 자리잡았습니다. 하지만 Git이 완벽하다고 생각하는 개발자는 드뭅니다. 복잡한 머지 충돌, 직관적이지 않은 CLI, rebase와 merge 사이의 영원한 논쟁, 그리고 모노레포 환경에서의 성능 문제까지, Git에 대한 불만은 끊이지 않습니다.
이런 배경에서 BitTorrent 프로토콜의 창시자로 유명한 Bram Cohen이 버전 관리의 미래에 대한 자신의 비전을 공개했습니다. "Mañana"라는 이름의 이 프로젝트는 기존 버전 관리 시스템의 근본적인 문제들을 재고하면서, 보다 일관되고 예측 가능한 시스템을 만들겠다는 포부를 담고 있습니다.
Bram Cohen이 바라보는 문제
Bram Cohen은 분산 시스템 설계에 깊은 전문성을 가진 인물입니다. BitTorrent라는, 인터넷 역사상 가장 효율적인 분산 파일 공유 프로토콜을 설계한 사람이니까요. 그가 버전 관리에 관심을 가진 것은 사실 이번이 처음이 아닙니다. 그는 이전부터 머지 알고리즘과 DAG(Directed Acyclic Graph) 기반 히스토리 관리에 대해 연구해왔습니다.
Cohen이 지적하는 Git의 근본적인 문제 중 하나는 머지(merge)의 비일관성입니다. Git의 3-way merge는 대부분의 상황에서 잘 작동하지만, 특정 패턴에서는 예측하기 어려운 결과를 만들어냅니다. 예를 들어 criss-cross merge 같은 복잡한 브랜치 토폴로지에서 Git은 어떤 커밋을 공통 조상으로 선택할지에 따라 다른 결과를 낼 수 있고, 이는 개발자의 의도와 다른 머지 결과로 이어질 수 있습니다.
Mañana는 이런 문제를 수학적으로 정의하고, 모든 상황에서 일관된 결과를 보장하는 머지 알고리즘을 제안합니다. 이는 단순한 UX 개선이 아니라, 버전 관리의 이론적 토대를 다시 세우려는 시도입니다.
기존 대안들과의 비교
Git에 대한 불만은 여러 대안 프로젝트를 낳았습니다. 가장 주목받고 있는 것은 Google 출신 개발자가 만든 Jujutsu(jj)입니다. Jujutsu는 Git과 호환되면서도 더 나은 워크플로우를 제공합니다. 작업 디렉토리 자체가 자동으로 커밋되는 개념, 충돌을 커밋에 저장하고 나중에 해결할 수 있는 first-class conflict 지원, 그리고 더 직관적인 rebase 동작 등이 특징입니다.
Pijul은 또 다른 흥미로운 대안으로, patch 이론(theory of patches)에 기반한 수학적으로 견고한 버전 관리를 추구합니다. Darcs에서 영감을 받았지만 성능 문제를 해결하려 했죠. Sapling(Meta/Facebook에서 개발)은 모노레포 환경에 최적화된 접근을 취합니다.
Mañana가 이들과 차별화되는 지점은, 머지 알고리즘의 수학적 일관성에 특히 집중하고 있다는 점입니다. Bram Cohen의 접근은 분산 시스템에서의 일관성 문제를 풀어온 그의 경험이 버전 관리 문제로 자연스럽게 확장된 것으로 볼 수 있습니다.
왜 지금 버전 관리가 다시 논의되는가
최근 몇 년간 버전 관리 분야에서 새로운 움직임이 활발한 데는 몇 가지 이유가 있습니다. 첫째, 모노레포의 확산입니다. Google, Meta, Microsoft 같은 대기업뿐 아니라 중소 규모 팀에서도 모노레포를 채택하는 경우가 늘고 있는데, Git은 모노레포 환경에서 성능과 워크플로우 양면에서 한계를 보입니다.
둘째, AI 기반 개발 도구의 등장입니다. AI가 코드를 생성하고 수정하는 시대가 되면서, 수많은 자동 생성 변경사항을 효율적으로 관리하고 머지할 수 있는 버전 관리 시스템에 대한 수요가 커지고 있습니다. 기존 Git 워크플로우는 사람이 수동으로 커밋하고 리뷰하는 것을 전제로 설계되었기 때문에, AI 시대의 개발 패턴에는 맞지 않는 부분이 있습니다.
셋째, 개발자 경험(DX)에 대한 관심이 전반적으로 높아졌습니다. 개발 도구가 복잡하고 예측 불가능한 동작을 하면 생산성이 떨어진다는 인식이 퍼지면서, 더 단순하고 일관된 도구에 대한 수요가 커졌습니다.
한국 개발자에게 주는 시사점
현실적으로 Git의 지위를 당장 대체할 도구가 나오기는 어렵습니다. Git의 생태계와 네트워크 효과는 너무 강력하죠. 하지만 몇 가지는 주목할 가치가 있습니다.
만약 Git의 머지 충돌이나 rebase 문제로 고통받고 있다면, Jujutsu 같은 Git 호환 도구를 지금 당장 시도해볼 수 있습니다. Git 저장소를 그대로 사용하면서 더 나은 워크플로우를 경험할 수 있습니다. 팀 전체가 전환할 필요 없이 개인이 먼저 사용해볼 수 있다는 것이 큰 장점입니다.
또한 Mañana와 같은 프로젝트들이 제기하는 이론적 문제들은, 버전 관리의 근본적인 메커니즘을 이해하는 데 좋은 공부 자료가 됩니다. Git을 단순히 사용하는 것을 넘어, 왜 특정 상황에서 머지가 실패하는지 이해하면 복잡한 브랜치 전략을 설계할 때 더 나은 판단을 내릴 수 있습니다.
정리
Bram Cohen의 Mañana는 버전 관리의 수학적 일관성이라는 근본적인 문제에 도전하는 프로젝트입니다. Git이 당분간 표준으로 남겠지만, 이런 연구들이 장기적으로 우리가 코드를 관리하는 방식을 개선할 것입니다. 여러분이 Git에서 가장 불편하게 느끼는 점은 무엇인가요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공