
마이크로소프트가 GitHub를 인수한 이후 많은 개발자들이 코드를 호스팅할 새로운 대안을 찾기 시작했습니다. 마이크로소프트(그리고 수많은 거대 기업들)는 입증된 기술·사이트·제품을 인수해 영향력을 확장하는 경향이 있습니다. 스카이프(Skype)가 그 한 예였고, 이제 GitHub도 같은 길을 걷게 된 것입니다.
하지만 GitHub 인수 소식은 개발자 커뮤니티에 찬물을 끼얹은 격이었습니다. 필자는 개인적으로 GitHub를 별로 좋아하지 않았고 사용성 면에서 아쉬운 점이 많다고 생각했지만, 방대한 오픈소스 프로젝트들이 모여 있는 사실상의 표준 플랫폼이었던 것은 분명합니다. 독점은 결코 건강하지 않으며, GitHub의 (다가온) 변화는 이 진리를 다시 한번 증명해 주고 있습니다.
다행히도 선택할 수 있는 버전 관리 시스템은 많습니다. GitHub의 모든 기능을 갖춘 곳은 아니지만, 용도에 따라서는 충분히 훌륭한 선택지들입니다. GitHub에서 갈아타려는 개발자라면 아래 대안들을 살펴보세요. 모두 셀프 호스팅(self-hosted) 솔루션입니다. 소중한 코드를 타인에게 맡기고 싶지 않으시겠죠?
1. GitLab

GitHub가 잘못된 손에 넘어가기 전부터 GitLab은 이미 인기 있는 대안이었습니다. 앞으로 더욱 주목받을 것으로 예상됩니다. GitLab은 오픈소스이며 핵심 에디션은 무료로 제공됩니다. 유료 버전도 있으며, 사용자당 월 4달러부터 시작합니다. 기획, 테스트, 패키징, 릴리스 기능까지 갖춘 완전한 DevOps 라이프사이클 도구로, 위키와 이슈 추적 기능도 함께 제공합니다. 사내 서버든 클라우드든 원하는 환경에 배포할 수 있다는 점도 큰 장점입니다.
2. Gogs

간편한 설치가 최우선이라면 Gogs보다 나은 선택은 없습니다. Windows, Linux, Mac, 라즈베리 파이(Raspberry Pi)용 실행 파일을 기본 제공하며, Go가 동작하는 어떤 플랫폼에도 직접 설치할 수 있습니다. Gogs는 가볍고 빠릅니다. 대형 상용 제품군의 모든 기능을 갖추지는 못했지만, 위키, 버그 추적, 버전 관리 등 핵심 기능은 모두 갖추고 있습니다.
3. Trac

미니멀한 GitHub 대안을 찾고 있다면 Trac이 좋은 선택입니다. 본질적으로 Trac은 소프트웨어 개발 프로젝트를 위한 강화된 위키이자 이슈 추적 시스템입니다. 버전 관리에는 Git과 Subversion을 사용하며, Mercurial, Perforce 등 열여러 가지 다른 시스템과도 연동할 수 있습니다. 뛰어난 리포팅 기능 덕분에 프로젝트 진행 상황을 정기적으로 면밀히 모니터링해야 하는 경우에 특히 적합합니다.
4. GitBucket

GitBucket은 Scala로 작성된 GitHub 클론입니다. 이 목록의 다른 도구들만큼 많은 기능을 갖고 있지는 않습니다. 사실 가장 큰 강점은 GitHub와의 높은 유사성입니다. 즉, GitHub가 그리워질 때면 언제든 GitBucket으로 갈아탈 수 있습니다. 저장소 뷰어, 이슈 추적, 풀 리퀘스트, 위키 등의 기능을 제공하며, 플러그인으로 기능을 확장할 수도 있지만 지나친 기대는 금물입니다.
5. Mercurial
이 목록의 다른 소프트웨어와 달리 Mercurial은 Git 서버를 사용하지 않는다는 점에서 GitHub와 완전히 다른 접근 방식을 취합니다. 물론 Mercurial 데이터를 Git 객체로 변환하는 것은 가능합니다. 참고로 GitHub의 비(非)Git 계열 대안은 Mercurial만 있는 것이 아니며, Perforce, Subversion 등 다른 버전 관리 시스템으로도 소스 코드를 충분히 관리할 수 있습니다.

Mercurial을 이 목록에 포함시킨 이유는 성능이 좋고, 크로스 플랫폼을 지원하며, 방대한 확장 기능을 제공하기 때문입니다. 실제로 GitHub와 Mercurial을 모두 사용해 본 지인들은 Mercurial이 훨씬 사용하기 쉽다고 말합니다. 분산 아키텍처 역시 매력적인 부분입니다. 기본 설치본의 기능은 화려하지 않지만, 상상 가능한 거의 모든 작업에 대한 확장 기능이 존재합니다.
GitHub가 있든 없든 삶은 계속됩니다. GitHub를 너무 애태우지 마세요. 마이크로소프트 소유가 되었으니 오히려 다행일 수도 있습니다. 이는 대안들의 성장을 촉진할 것이고, 그중 일부는 오늘날 우리가 아는 GitHub보다 더 나은 플랫폼으로 발전할 것이라 믿습니다.