기업용 git 솔루션의 필요성

git 은 훌륭한 버전 관리 툴이지만 커맨드 방식이므로 사용자 친화적이지 않다. 또 기업 환경에서 사용하려면 중앙에서 저장소 및 계정 관리, 권한 관리를 할 수 있어야 하며 git에 올라온 코드를 리뷰하거나 이슈 관리, LDAP이나 Active Directory 등 기존에 사용하는 권한관리 시스템이 있다면 연동도 지원해야 한다.

git + ssh 로 이런 환경을 구축하는 건 굉장히 힘든 일이고 또 저장소 관리자가 어려운 git 명령어와 관리 방법을 다 익혀야 하는 부담이 있다.

 

github.com 이나 gitorious.com 같은 git 호스팅 업체를 사용하면 별도의 git 서버 환경을 꾸밀 필요도 없고 편리하게 사용할 수가 있지만 소스가 외부로 유출된다는 것 때문에 기업들은 호스팅 업체를 이용하기가 꺼려질 수도 있다.

그래서 기업환경을 겨냥해서 손쉽게 git 중앙 저장소를 구축하고 편리한 환경과 다양한 기능을 제공하는 다양한 git 솔루션이 출시되어 있다. 

그중에 가장 유명한 제품들을 알아 보자.

 

Github Enterprise

git 호스팅으로 유명한 github.com 이 출시한 기업용 git 관리 솔루션이다. 가장 유명한 git 호스팅 업체의 제품이다 보니 편리한 github 의 화면과 기능을 그대로 사용할 수 있는 장점이 있지만 가격이 굉장히 비싸다.

가격은 seat pack 이라는 단위로 책정되는데 이는 github 에 연결하는 계정을 20개 단위로 하나의 seat 로 묶어서 책정된다. 만약 21개의 계정이 필요하다면 2 seat 를 구매해야 하며 2 seat는 계정 40개까지 사용 가능하다.

41개부터는 3 seat를 구매해야 하며 라이선스는 연단위 subscription 개념이라 매년 비용을 지불해야 한다. seat 당 연간 subscription 비용은 5,000 달러이다.

github Enterprise 를 구매해도 소스는 내려받을 수 없다.

또 github 는 community edition 이 없으므로 기업에서 사용하려면 반드시 Enterprise 버전을 구매해야 한다.

 

Gitorious

github 처럼 상용 및 오픈 소스 호스팅을 하는 gittorious.com 도 기업을 위한 설치형 git 솔루션을 제공하고 있다.  또 오픈소스를 지원하기 위해 커뮤니티 에디션(community edition) 을 제공하고 있으므로 필요하다면 호스팅 받지 않고 내부에 설치하여 사용할 수 있다.

단점으로는 설치가 어렵고 github 에 비해 UI 가 익숙하지 않고 사용자 수가 적어서 관련 정보 얻기가 어려울 수 있다. 그리고 커뮤니티 에디션의 라이선스가 AGPL(GNU Affero General Public License) 이므로 기업에서 사용할 경우 라이선스 이슈가 없는지 꼭 확인해 보아야 한다.

AGPL 이란?

GPL을 따르는 오픈소스를 사용하여 만들어진 2차 저작물은 소스를 반드시 공개해야 한다. 다만 외부에 배포하지 않고 내부에서만 쓸 경우 공개하지 않아도 된다. 이는 소스 수정을 적극 장려하기 위한 조치였지만 기업 내부에 DBMS 와 서버를 두고 Web 기반으로 서비스를 제공할 경우 GPL 을 피해갈 수 있었다. GPL 이 만들어 졌을 당시에는 현재와 같은 웹서비스는 존재하지 않았으므로 이런 취약점이 생겨났고 이것을  application service provider "loophole" 이라고 부른다.

AGPL 은 이 문제를 해결하기 위해 만들어진 라이선스로 기업에서는 AGPL 인 제품을 사용할 경우 라이선스 문제가 발생할 소지가 없는지 충분히 검토해 보아야 한다.

 

atlassian Stash

Confluence와 JIRA 로 유명한 협업 전문 소프트웨어 회사인 atlassian 사의 git 솔루션이다. 장점은 다른 atlassian 사 제품 (confluence, jira, bamboo, fisheye등) 과 완벽한 통합을 제공하며 미려한 UI와 잘 정비된 매뉴얼, 다양한 plugin 을 제공한다. 단점으로는 github 보다는 싸지만 상당한 비용이 든다. 11 - 25 사용자가 $1,800 이며 26 - 50 사용자는 $3,300 이다.

매년 구입 비용의 50% 를 subscription 비용으로 지불해야 업그레이드 및 기술지원을 받을 수 있다. 단 구매했다면 사용권을 획득한 것이므로 subscription 을 구매하지 않더라도 지속적으로 사용할 수 있으며 단지 업그레이드를 할 수 없고 기술 지원을 받을 수 없다. 또 다른 atlassian 제품처럼 오픈 소스 프로젝트를 진행하는 경우나 비영리 기관에서 사용시 무료로 사용할 수 있다.

구매할 경우 stash 의 소스 코드가 같이 제공되며 구매 고객은 소스의 변경이 허용된다. 단 소스의 재배포는 허용되지 않으며 소스를 수정해서 사용할 경우 atlassian 의 지원을 받을 수는 없다.

어떤 소프트웨어는 구매했어도 지속적으로 subscription 을 구매하지 않고 사용하면 라이선스 위반인 제품도 있으니 주의하자.

 

gitlab

gitlab 은 github Enterprise 같은 설치형 git 솔루션이다. github 와 비슷한 미려한 UI 를 제공하고 있으며 저장소 관리, 사용자 및 계정 관리., 코드 리뷰, merge request, 권한 관리, 내장 이슈 관리 시스템, 라인 단위 주석등 다양하고 편리한 기능을 제공하고 있다.  프로젝트의 Fork 기능도 지원하고 있으며 github의 Pull Requests 기능이 Merge Requests 란 이름으로 제공되는 것과 특정 개발자를 Following 하는 등의 SNS 기능이 없는 것 외에는 거의 기능상의 차이가 없다.

또 라이선스가 MIT License 이므로 기업내에서도 라이선스 문제없이 상용 솔루션 개발에 사용할 수 있다.

 

gitlab 은 기본적으로는 Ubuntu Linux 를 지원하지만 많은 기여자들의 덕분에 RHEL/CentOS 에서도 성공적으로 설치되고 구동되고 있다.

이 장에서는 gitlab 설치에 대해서 알아 보자.