지난 블로그(GitLab과 GitHub, 실무에서 어떤 차이가 있을까요?)에서 GitLab과 GitHub에 대해서 비교해 봤습니다. 결론적으로는 GitHub의 Git에 대한 노하우는 무시할 수 없지만, 서비스 혹은 전체 라이프사이 클에 대한 여러 가지 비용적인 요소에서 GitLab이 우수하다는 것을 확인할 수 있었습니다. 이번 블로그에서는 DevOps 측면에서 GitLab CI/CD와 GitHub Action을 좀 더 면밀하게 살펴보겠습니다.

솔루션 기술 선택 문제
가장 먼저 여러분이 GitLab과 GitHub 중에 선택을 할 때, 기술적으로 어떠한 문제들을 고려해야 하는지 알아보겠습니다. 다음은 기술 의사 결정자(Technical Decision Maker) 문제들에 대한 GitLab과 GitHub의 비교입니다.
지원 여부를 💚 전부 지원 💔 지원 안함으로 표시합니다.
TDM 문제 | DevOps 솔루션 | GitLab | GitHub |
---|---|---|---|
빌드하고 코드를 테스트하는 시간을 줄이고 복잡성을 줄임 | 파이프라인 오케스트레이션 | 💚 Parent-Child 파이프라인이 동시에 작동합니다. 더 작은 하위 파이프라인으로 구성할 수 있습니다. | 💔 파이프라인 오케스트레이션이 없어 파이프라인 실행 시간이 길어집니다. |
코드 업데이트 오류 및 충돌올 제거 | 병합 오케스트레이션 | 💚 Advanced Merge Train 처리 로직은 기본 개발 브랜치를 초록불로 유지합니다. | 💔 Advanced Merge Train 처리 로직이 없어 더 많은 코드 커밋 충 돌이 발생합니다. |
초기 구성 시간과 러닝 커브를 줄임 | 미리 구성된 파이프라인 | 💚 Auto DevOps는 즉시 사용 가능한 파이프라인 구성을 제공합니다. | 💔 사전 구성된 파이프라인이 없어 파이프라인 설정 시간이 길어집니다. |
GitHub에서 누락된 GitLab CI 기능
다음은 GitHub에는 없지만 GitLab에서 제공하는 CI 기능목록입니다.
GitLab 기능 | 기능 소개 |
---|---|
Built-in CI | 플러그인 혹은 third party 구성 요소가 없습니다 |
새로운 팀원을 위한 DevOps 프로세스 단순화 | Auto DevOps는 코드를 인식하고 자동으로 DevOps 템플릿을 설정합니다. |
병합 전에 앱 리뷰를 통한 결함 감사 및 개발 시간 단축 | 리뷰앱으로 변경을 미리 확인합니다. 리뷰앱을 위한 배포환경 자동 종료 기능이 포함됩니다. |
크고 복잡한 프로젝트와 팀 모델링 및 관리 | 큰 규모의 프로젝트를 관리하기 위한 그룹 내의 하위 그룹, 그룹 파일 템플릿(표준화를 위한 그룹 수준의 템플릿), 그룹을 쉽게 찾을 수 있는 탐색 기능을 제공합니다. |