Git, 20년 넘게 업계 표준으로 자리 잡은 비결은?

by DD
1개월 전
조회수 2

1990년대 Zip 파일, Visual SourceSafe 등 열악했던 소스 관리 환경에서 CVS가 등장하며 변화 시작

Subversion(SVN)의 등장으로 원자적 커밋(Atomic Commit) 등 개선되었으나, 중앙 집중형 모델(Centralized Model)의 한계 존재

Git은 BitKeeper 라이선스 문제로 인해 Linus Torvalds가 2주 만에 개발, 분산형(Distributed) 구조로 혁신을 이룸

GitHub의 등장으로 Git이 업계 표준으로 자리 잡았으며, Monorepo, Mercurial 등 Git의 한계에 대한 논의도 활발함

Git의 탄생 배경과 분산형 버전 관리 시스템(DVCS)의 혁신

저자는 1990년대의 Zip 파일 기반 소스 관리의 문제점을 지적하며, Visual SourceSafe의 데이터베이스 손상 문제를 언급한다. 이러한 문제점을 해결하기 위해 Linus Torvalds는 BitKeeper의 라이선스 문제로 인해 Git을 개발했다. Git은 분산형(Distributed) 구조를 통해 중앙 서버의 단일 실패 지점을 제거하고, 각 개발자가 전체 저장소(Repository)를 복제하여 작업할 수 있도록 했다. 이는 당시의 중앙 집중형(Centralized) 방식의 한계를 극복하는 획기적인 변화였다.

CVS, Subversion(SVN)의 한계와 Git의 등장

저자는 CVS가 동시 편집(Concurrent Edits)을 지원했지만, 원자적 커밋(Atomic Commit) 부재, 느린 브랜치 생성, 파일명 변경 추적 불가 등의 문제점을 지적한다. Subversion(SVN)은 이러한 CVS의 단점을 보완하여 원자적 커밋(Atomic Commit), 향상된 브랜칭, 디렉토리 버전 관리 등을 제공했지만, 여전히 중앙 집중형(Centralized) 모델의 한계를 벗어나지 못했다. Git은 이러한 SVN의 한계를 극복하고, 분산형 구조를 통해 개발 생산성을 향상시켰다.

GitHub의 등장과 Git 생태계의 발전

GitHub는 Git을 기반으로 한 Pull Request 워크플로우(Pull Request Workflow)를 제공하며, Git을 업계 표준으로 만드는 데 결정적인 역할을 했다. GitHub는 포크(Fork), 브랜치(Branch), Diff, 리뷰, 머지(Merge) 기능을 시각화하고, 소셜 기능을 통해 오픈소스 기여를 활성화했다. Microsoft의 GitHub 인수는 업계에 큰 영향을 미쳤으며, GitLab, Bitbucket과 같은 경쟁 플랫폼의 등장으로 Git 생태계는 더욱 발전하고 있다.

Git의 현재와 미래, 그리고 경쟁 기술

저자는 Git이 현재 업계 표준임을 강조하며, Git LFS, 부분 복제(Partial Clone), 희소 체크아웃(Sparse Checkout) 등 Git의 지속적인 발전을 언급한다. 또한 Sapling, Pijul, Jujutsu(jj)와 같은 Git의 대안 기술들을 소개하지만, Git을 대체할 가능성은 낮다고 평가한다. 댓글에서는 Monorepo 환경에서의 Git의 한계Mercurial의 사용자 친화성에 대한 논의가 이루어졌다.

From CVS to Git: thirty years of source control, lived from inside