본문 바로가기

Infrastructure/Git

[Git] Git Repository

Git Repository

코드를 관리하기 위한 깃 리포지토리 서비스를 알아본다.

대표적으로 사용되는 서비스는 GitHub, GitLab이 있으며 AWS에게 완전관리를 받는 CodeCommit까지 알아보도록 한다.

깃(Git)

깃은 소스 코드의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 결국 여러 명의 사용자의 코드를 관리하기 위해서는 깃 리포지토리라고 하는 원격 저장소 서비스가 필요하다. 우리는 이번 장에서 깃 리포지토리에 대해서 알아보고 우리의 서비스에 맞는 서비스를 선정해보도록 한다.

개인 프로젝트를 진행하거나 깃 리포지토리의 종류가 크게 중요하지 않다면 고민없이 압도적으로 많은 사용자들이 사용하는 GitHub을 사용하는 것을 추천한다. (2022.09.05 기준)


설치형 지원 여부 및 가격

만약 보안적 이슈로 인해 코드가 회사의 서버에 위치해야 한다면 CodeCommit은 사용할 수 없고 GitHub 또는 GitLab을 사용해야 한다. GitLab의 경우 무료 버전도 설치형(Self-Managed)을 사용할 수 있지만 GitHub의 경우 가장 비싼 요금제($231 per user/year)를 사용해야 한다.

깃 리포지토리를 설치형으로 사용해야 하는 경우 지불해야 하는 최소 비용은 아래와 같다.

  • GitLab: $0
  • GitHub: $231 per user/year
  • CodeCommit: 설치형 불가

일단 필자는 여기서 GItHub은 후보군에서 제외하였다.

깃 리포지토리 서비스를 이용하기 위해 사용자마다 연간 $231는 적지 않은 비용이기 때문이다.

또한, GitHub Enterprise 버전에서 지원하는 수많은 기능을 과연 효율적으로 사용할 수 있을지 의문이 들었기 때문이다.

CodeCommit의 경우 설치형으로 사용이 불가능하지만 후보군에서 제외하지 않았다. (

사실 필자는 AWS의 완전관리형 서비스를 좋아한다.

) 제외하지 않은 이유는 글의 하단부에서 따로 정리한다.


가격표

GitLab

GitLab Free Tier는 사용자 제한없이 사용하는 줄 알았지만 5 users per namespace를 보고 인원수의 제한이 있다는 것을 알게 되었다. 그렇다면 왜 지금까지는 인원수의 제한이 없었을까.

2022.10.19 부터 적용되기 때문에 지금까지 인원 제한에 걸린 없었다.

또한 SaaS 버전만 인원 제한이 있기 때문에 설치형으로 사용하는 경우에는 인원제한 없이 사용이 가능하다.

GitHub

CodeCommit

CodeCommit의 경우 요금제가 없으며 5명을 초과하는 사용자가 사용하게 되면 $1(per user/month)를 지불해야 한다.


최소 비용

글을 정리하면서 10명의 개발자가 개발하는 환경이라는 가정을 하고 최소 비용을 계산해본다.

부가적인 기능은 다루지 않고 단순히 코드를 관리하기 위한 기능만 사용한다고 가정한다.

  SaaS(월) 설치형(월)
GitHub 0 $192.5 + 서버 유지비용
GitLab $190 서버 유지비용
CodeCommit $5 사용 불가

설치형의 경우 서버 유지비용을 계산할 때 서버 비용 뿐만 아니라 깃 리포지토리 서비스를 관리하는 관리자의 리소스가 투입되기 때문에 인건비도 추가로 계산해야 한다.


결론

상황에 따라 사용하기 적절한 서비스가 있겠지만 간략하게 정리해보려한다.

정리하기에 앞서 GitHub과 GitLab을 마지막으로 비교해본다.

지원 서비스

CI/CD

전체적인 비교는 링크를 통해서 확인해야 한다. 물론 GitLab사에서 작성한 문서이기 때문에 GitLab이 압도적으로 많은 기능을 제공하는 것으로 나와 있으므로 GitHub 공식문서와 비교하여 확인해봐야 한다.

지금까지 글을 작성하면서 정리한 필자의 주관적인 의견을 정리하면 아래와 같으며 바라보는 관점에 따라서 다른 의견이 나올 수 있다.

  • 서비스의 규모가 적고 간편하게 사용하고 싶은 경우: GitHub
  • 깃 리포지토리를 전문적으로 관리하는 인력이 있고 제공하는 기능을 효율적으로 사용할 수 있는 경우: GitLab
  • 모든 관리를 AWS에게 위임하고 편리하게 사용하고 싶은 경우: CodeCommit

이번 장에서는 깃 리포지토리의 종류와 특징에 대해서 알아보았다.

다음 장에서는 깃 리포지토리를 시작으로 어떻게 CI/CD 파이프라인이 구축할 수 있는지에 대해서 알아보도록 한다.

참고한 자료