[GIT] 실무에서 GitHub와 GitLab의 차이를 알아보자

창슈·2024년 11월 28일

Git

목록 보기
5/6
post-thumbnail

🏷️ GitLab의 특징

  • 지속적 통합 / 지속적 전달 (CI/CD) 데브옵스 워크 플로우를 내장

  • 단일 DevSecOps 플랫폼으로 Github 보다 TCO(Total Cost of Ownership)가 더 낮음

  • 단일 DevSecOps 플랫폼으로 Tool Chain 통합을 지원. (기본 기능을 충분히 제공함)

  • GitLab을 사용하면 Github처럼 여러 솔루션을 결합하여 생기는 숨은 비용이 들지 않음

  • 다양한 보안 기능을 기본 제공함

  • 소프트웨어 라이프 사이클의 모든 단계에 보안을 통합한 단일 애플리케이션을 지원

  • Cloub Agnostic 운영방식을 취함


🏷️ GitHub의 특징

  • 사용자가 원하는 CI/CD 도구를 직접 통합 해야함

  • 고객이 서드 파티 파트너 공급업체에서 추가 도구를 조달하고 유지 관리 하며 업데이트를 해야함
    → Github 사용에 따른 TCO는 높아지고 운영하기도 복잡해짐

  • Azure에만 의존하여 하나의 클라우드에 종속되어 있음


(GitHub와 GitLab의 기능 커버리지) # 📍GitHub와 GitLab의 핵심 차이점 'DevOps' > 데브옵스(DevOps) : Development Operations의 약어로, 소프트웨어 개발과 운영을 통합하여 효율성, 협력, 속도, 안정성을 개선하는 개발 및 운영 방법론

깃랩은 CI/CD와 데브옵스 워크플로우를 내장했다.

반면, 깃허브를 사용하면 사용자가 원하는 CI/CD 도구를 직접 통합해야 한다.
깃허브 사용자는 보통 젠킨스, CircleCI, TravisCI 같은 써드파티 프로그램을 사용한다.


📎 github가 속도를 우선시 한다면, gitlab은 안정성에 중점을 둔다.

📎 기본 기능은 같지만 서비스를 만든 철학과 초점에 차이를 갖기 때문에 사용하기에 앞서 각각의 목적과 업무 체계를 고려하여 적합한 서비스를 선택하여 사용해야 한다.


📍브랜치, 병합?? or 분리??

GitHub는 새로운 브랜치를 마스터 분기와 병합하는 것을 지지한다. 그 덕에 신속한 배포가 가능하고, 문제 발생 시 이전 버전으로 신속하게 복원할 수 있다.

GitLab의 워크플로우는 변경한 각 세트를 마스터 브랜치와 별도의 안정적인 브랜치로 생성한다. 프로덕션과 스테이징의 분기가 최소한으로 있다. 이런 다중 분기 접근방식은 여러 단계의 테스트 프로세스를 필요로 한다. 병합 요청 시 코드 검토가 까다로워진다는 단점이 있다.

→ 단, GitHubGitLab에서 브랜치 운영 방식을 병합이나 분리로 고정하진 않는다. 사용자 선택에 따라 원하는 방식을 택한다.


📍소프트웨어 서비스

GitHub는 자체적으로는 보다 적은 수의 소프트웨어 서비스를 제공한다. 대신 외부 프로그램 및 서비스와 통합하는 쉬운 방법을 제공한다. 깃허브 마켓플레이스에서 다양한 외부 서비스와 프로그램, 깃허브와 통합을 위한 소프트웨어를 이용할 수 있다.

GitLab은 완전한 소프트웨어 개발 솔루션을 제공하며, 올인원의 데브옵스 플랫폼이라고 강조한다.
지라-Jira, 마이크로소프트 팀즈, 슬랙, G-mail 같은 애플리케이션 및 플랫폼 통합을 제공한다.


📍구성과 인터페이스, 그리고 실무 워크플로우

이러한 차이점이 많지만 GitHubGitLab은 많이 유사하다.
리눅스 서버에서 실행된다는 점, 이슈 트래커를 함께 제공한다는 점 광범위한 타사 통합과 가져오기 도구를 제공한다는 점이 그에 해당한다.

인터페이스 역시 고급 개발자를 위한 커맨드라인인터페이스CLI를 가졌고, 초급 개발자를 위한 웹 인터페이스도 제공한다.

두 서비스 모두 오픝소스를 지원하지만 저장소 자체는 혼합 프로그래밍 모델을 사용한다. 기본적으로 GitHubGitLab 모두 오픈소스의 웹 기반 Repository, 깃 기반 코드 관리, 원격 Repository를 통한 로컬 파일 변경등을 제공한다. 기본적인 깃 기능을 원하지만 깃을 계속 실행하는 것을 걱정한다면 두 서비스 모두 유용하다.


📌 DevOps LifeCycle 전체를 위한 첫 번째 단일 어플리케이션 GitLab

GitHubGitLab은 모두 Git Repository를 중심으로 개발 업무를 진행하는 것은 큰 차이가 없지만, 실제로 GitLab의 경우는 개발 영역 뿐만 아니라 모든 라이프 사이클을 커버하기 때문에 GitHub보다 많은 편의를 제공한다. 관리부터 이슈를 트래킹하고 결국에는 모니터링과 보호까지 GitLab이라는 하나의 툴을 통하여 많은 것을 할 수 있게 된다. 이러한 것들은 프로젝트 산출물에 재사용성을 높여 기업의 자산 및 부가가치를 만드는데 크게 기여한다.

하지만 무엇보다 개발자 관점에서 실무 워크플로우에 영향을 가장 크게 미치는 것은 얼마나 완전한 CI/CD를 통한 DevOps환경을 구출하느냐가 중요하다.

📌 GitLab vs. GitHub CI/CD 비교 요약


🔎 본 포스팅은 'InfoGrab'의 포스팅을 참고하였습니다.
🔎 본 포스팅은 'ZDNET Korea'의 포스팅을 참고하였습니다.

profile
🐾

0개의 댓글