Github 과 Gitlab 의 차이

Yuri Lee·2021년 5월 2일
13
post-thumbnail

Git이란?

  • git 은 소스 코드 버전 관리 시스템으로 로컬에서 변경 사항을 추적하고 원격 리소스에서 변경 사항을 푸시하거나 가져올 수 있다.

GitHub란?

  • Github는 공개적으로 사용 가능한 무료 서비스로 모든 코드를 공개해야 한다.
  • EveryBody! github에 푸시한 코드를 보고 개선을 위한 제안을 제공할 수 있다. 오픈소스 역할
  • Github는 현재 수만 개의 오픈 소스 프로젝트를 위한 소스 코드를 호스팅 한다.

GitLab 이란?

  • Gitlab은 개인 또는 조직이 Git repository 의 내부 관리를 제공하는데 상용할 수 있는 Github 으로 즉 비공개된 Github라고 할 수 있다.

GitLab 의 사용 이유?

  • GitLab은 중앙 서버에서 Git 저장소를 관리하는 좋은 방법이다.
  • GitLab은 리포지토리 또는 프로젝트를 완벽하게 제어 할 수 있으며, 공개 또는 비공개 여부를 무료로 결정할 수 있다.

GitLab과 GitHub, 실무에서의 차이?

구축

  • 실무에 도입하기 위해서 가장 먼저 고려되는 사항은 아마도 비용
  • GitHub, GitLab 라이센스마다 가격은 다를 것이고 그 기능은 또 다르기 때문에 비용을 통해서 비교되는 것은 자세한 견적을 통해서만 확인할 수 있다.
  • 우리나라 회사 대부분이 설치형(Self-Managed)을 선호하실 텐데요, GitHub의 경우에는 기본적으로 SaaS 형태로 제공되며 유저당 월 $21 비용이 드는 Enterprise를 선택하셔야만 설치 버전을 사용할 수 있다. 반면, GitLab의 경우에는 모든 Tier에서 SaaS형, 설치형을 선택적으로 사용할 수 있다.

지원 서비스

  • 다른 도구들의 라이센스 정책처럼 GitLab과 GitHub 모두 라이센스에 따라 받으실 수 있는 지원이 옵션이 다르다.

  • GitLab과 GitHub의 가장 큰 차이점은 GitHub의 경우 티켓 발행과 전화 모두 영어로만 가능하지만, GitLab은 한국어, 영어를 포함한 7개의 언어로 티켓 발행이 가능하다.

실무 워크플로우

  • GitLab과 GitHub 모두 Git Repository를 중심으로 개발 업무를 진행하는 것은 큰 차이가 없다.
  • GitLab의 경우는 개발 영역뿐만 아니라 모든 라이프사이클을 커버하기 때문에 GitHub보다 많은 편의를 제공한다.
  • 관리부터 이슈를 트래킹하고 결국에는 모니터링과 보호까지 GitLab이라는 하나의 툴을 통하여 많은 것을 할 수 있게 된다.
  • 이는 프로젝트 산출물에 재사용성을 높여 기업의 자산 및 부가가치를 만드는데 크게 기여할 수 있다.
  • 무엇보다도 개발자 관점에서 실무 워크플로우에 영향을 가장 크게 미치는 것은 얼마나 완전한 CI/CD를 통한 DevOps 환경을 구축하느냐가 중요하다.
    • CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법
    • CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포
    • CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션
    • CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 일반적으로 "CI/CD 파이프라인"이라 부르며 개발 및 운영팀의 애자일 방식 협력을 통해 지원된다.

  • GitLab의 경우 CI/CD의 많은 부분을 커버하는 것은 물론 컨테이너 레지스트리에서도 차이를 나타내고 있다.
    • 컨테이너 레지스트리는 쿠버네티스, DevOps, 컨테이너 기반 애플리케이션 개발을 위한 컨테이너 이미지를 저장하는 데 사용되는 리포지토리 또는 리포지토리 컬렉션이다.
    • 컨테이너 이미지는 컨테이너(애플리케이션을 구성하는 파일 및 구성 요소를 담은 컨테이너)의 사본으로서, 이 이미지를 복사해 빠르게 스케일 아웃하거나 필요에 따라 다른 시스템으로 이동할 수 있다. 생성된 컨테이너 이미지는 일종의 템플릿이 되며, 새로운 애플리케이션을 만들거나 기존 애프리케이션을 확대 및 확장할 때 이 템플릿을 사용할 수 있다.

맺음말

  • Gitlab 의 존재유무에 대해서 알고는 있었지만 제대로 된 개념은 몰랐었다. 최초의 깃 저장소 서비스인 github 외에도 다른 서비스도 있었고, 더 다양한 서비스를 제공한다는 사실이 흥미로웠다.

https://redbinalgorithm.tistory.com/339
https://insight.infograb.net/blog/2021/02/05/gitlab-vs-github/
https://www.redhat.com/ko/topics/devops/what-is-ci-cd
https://www.redhat.com/ko/topics/cloud-native-apps/what-is-a-container-registry

profile
Step by step goes a long way ✨

0개의 댓글