GitLab 소개

Gitlab은 Git의 원격 저장소와 코드 리뷰, 이슈 트래커 기능등을 제공하는 소프트웨어로, 설치형 Github라는 컨셉으로 시작된 프로젝트이기 때문에 Github와 비슷한 면이 많다.

1. 패키지 종류

GitLab 패키지는 3가지로 구분된다.

  • GitLab CE : Community Edition으로 설치형이고 아무런 제한 없이 무료
  • GitLab EE : Enterprise Edition으로 설치형이고 매월 유저당 과금. 자세한 내용은 https://about.gitlab.com/pricing/ 참고
  • GitLab.com : 클라우드형이고 개인이 가입해서 사용하면 무료

EE 버전에서 좀 더 많은 기능을 제공하지만 CE 버전도 아직까지는 쓰는데 불편함을 느끼지 못함.
CE와 EE 버전 기능 비교는 https://about.gitlab.com/features/#compare 참고.

2. 기능

  • Git 저장소 및 관리
    • 프로젝트 생성하면 자동으로 git 저장소가 생성됨
  • 그룹 및 팀원
    • 그룹을 만들고 팀원을 지정해서 그룹 단위로 접근 권한을 관리할 수 있음
  • 업무 관리
    • 마일스톤을 설정하고 이슈를 등록해서 담당자를 지정해서 업무를 관리할 수 있음
    • 코드 커밋 로그에 이슈번호 넣으면 자동으로 이슈와 연결
    • 라벨을 사용해서 이슈를 구분해서 관리할 수 있음
  • 코드 리뷰
    • Merge request를 통해 코드 리뷰를 할 수 있는 프로세스를 만들 수 있음
    • 해당 request에 댓글로 커뮤니케이션 할 수 있고 소스코드에도 댓글 달 수 있음
  • 위키
    • markdown 형식 지원
    • wiki 별도 git 저장소가 생성되어 로컬에서 작업해서 push 해도 됨
  • 이력 및 통계 조회
    • Activity 이력 조회
    • Files 브라우징
    • Commit 브라우징(커밋 이력, 브랜치로 비쥬얼하게 이력 조회, 그래프로 통계 제공)
  • 검색
    • 전체 검색 : 프로젝트, 이슈, Merge request 검색 가능
    • 그룹 내 검색 : 프로젝트, 이슈, Merge request 검색 가능
    • 프로젝트 내 검색 : 코드, 이슈, Merge request, 코멘트, Wiki 검색 가능
  • Snippets
    • 재사용 가능한 소스 코드나 텍스트를 저장해서 사용하는 기능
    • 공통 유틸성 코드나 팁에 대해서 공개해서 사용하면 좋을 것 같다.
  • 관리자
    • 그룹 및 사용자 관리
    • 관리자 페이지에서 사용자 추가해도 되고 회원가입 형태도 되고 LDAP 연동도 가능함
  • 어플리케이션 지원
    • iOS, Android, Chrome App 등의 Native App 지원
    • 자세한 사항은 https://about.gitlab.com/applications 참고
  • CI
    • 패키지에 GitLab CI가 내장되어 있음
    • GitLab과 연동해서 활용하는 방법이 쉽지 않음
    • 활용 예제가 Ruby와 Python 밖에 없음 http://doc.gitlab.com/ci/examples/README.html

3. 그외 특징

  • 오픈 소스 : MIT 라이센스로 700명 이상의 개발자들이 참여하고 있는 프로젝트
  • 확장성 : 서버당 25,000 유저 지원하고 A-A 클러스터 지원

4. 장점

  • 비용 : 유저수나 프로젝트 수에 관계없이 무료
  • 사용성 : 다른 무료 솔루션들에 비해서 UI가 괜찮다. 모바일 Web, App으로도 사용 가능
  • 운영성 : 대부분의 관리는 웹 브라우저로 가능. 현재 시스템사업팀에서 svn 계정하나 만들려면 서버에 접속해서 작업해야 한다.
  • 최신성 : 오픈 소스 그룹이 활발히 활동하고 있어서 매월 업데이트 버전이 나올 정도. 업데이트하는 방법도 간편하다. 기능 추가해 달라고 요청해도 잘 받아 준다고 한다.