Software Engineering

Github vs GitLab ? 뭐가 다르지

aiden0729

 

Git이라는 이름도 들어가고, 비슷한 UI와 일부 기능을 가지고 있어 나는 처음에 접할 때 당연히 모태가 같은 회사인줄로만 알았다. 하지만 Github는 git을 기반한 커뮤니티에 조금 더 집중되어 있고, GitLab은 git을 기반한 DevOps에 집중되어 있다.

 

항목 GitHub GitLab
UI 스타일 심플하고 직관적인 디자인, 코드 중심 뷰가 강조됨 정보량이 많고 프로젝트 전체 흐름이 UI에 녹아 있음
용어 차이 Pull Request (PR), Actions Merge Request (MR), CI/CD Pipelines
조작 편의성 GitHub Desktop 등 클라이언트 다양 GitLab은 웹 기반 중심이며, 자체 호스팅 시 커스터마이징 용이

 

 

 

사실 기업 입장에서는 CI/CD의 유무가 매우 중요한데 해당 기능이 GitLab이 압도적이기 때문에 사실 GitLab 위주로 프로젝트를 많이 진행하는 것 같다. 이슈관리도 더 세분화되어 있고, 권한제어도 더 세심하게 되어있다. 

따라서 무료이며, 빠른 개발환경이 필요한 스타트업은 Github이 조금 더 유리할 수 있고, 프로젝트가 조금 커지면 GitLab을 사용하는 것이 효율적이다. 또한 Github은 2018년에 MS가 인수하였기 때문에 Azure를 주력으로 사용하는 회사는 연동성이 조금 더 좋을 수 있다. ( 그래도 DevOps의 깊이 때문에 아마 GitLab이 유리하지 않을까 생각한다 ) 

 

 

 

1) Github 장단점

구분 장점 단점
생태계 전 세계 오픈소스 생태계 중심. 커뮤니티, 액션 마켓플레이스, 패키지 등 풍부함 오픈소스에 특화되어 있어 폐쇄망 환경, 보안 민감 기업에는 덜 적합
GitHub Actions 간편한 워크플로우 작성, Marketplace 활용 가능. 빠르게 DevOps 적용 가능 복잡한 CI/CD 파이프라인을 구성하기엔 다소 제한적 (병렬 실행 등 한계)
Microsoft 통합 Azure, Visual Studio, Copilot 등과 연계에 최적화 반대로 Google Cloud, AWS 등과의 통합은 GitLab보다 약한 편
사용 편의성 직관적인 UI/UX, 개발자 친화적 엔터프라이즈 기준의 통합관리 기능은 부족한 경우 있음
SaaS 완성도 클라우드 기반 사용이 매우 간편. 관리할 인프라가 없음 자체 호스팅 지원은 매우 제한적. GitHub Enterprise Server 비용도 높음

 

 

 

2) GitLab의 장단점

구분 장점 단점
올인원 DevOps Git + Issue 관리 + CI/CD + 모니터링 + 보안 스캔까지 한 플랫폼에 내장 설정이 복잡하고 러닝커브 있음. 각 기능의 깊이도 다름
자체 호스팅 온프레미스, 사내망, 프라이빗 클라우드 등에서 자유롭게 운영 가능 설치·업데이트·운영 유지 보수는 자체 부담
보안 & 권한 관리 고도화된 권한 제어 (role, subgroup), SAST/DAST 등 보안 내장 무료 플랜에서 일부 기능 제한 (예: 고급 권한, 보안 분석)
유연한 통합성 GitLab Runner, API, 쿠버네티스 연계 등으로 내부 인프라 통합 최적화 일부 외부 서비스(GitHub Apps 등)에 비해 마켓 생태계는 부족
TCO (총비용) 자체 구축 시, 규모에 따라 라이선스 비용 대비 효율적 대기업에서 SaaS로 사용할 경우 가격은 GitHub와 비슷하거나 높음

 

 

 

이 GitLab이 사내 어떤 Serverless에 어떤방식으로 붙느냐가 개발 및 배포에 굉장히 중요하다. 규모가 조금 있다면 아마 사내 자체 Serverless에 붙힐 수도 있는데, 빌드를 제로베이스부터 다시 차근차근 cold start 하는 곳에 붙는다면 아주 안타까운 개발 속도가 나올 수 있다. 이미 안정적인 코드인 Docker 기반의 배포에서는 어쩔 수 없지만, 병렬적으로 빠르게 실험 및 배포하여야 할 때는 AWS의 lamda layer 개념처럼 캐시되어있는 개발환경이 GitLab과 연동될 때 굉장히 시너지가 좋다고 생각한다.