🥔GitLab이란 무엇인가?
- GitLab은 Git 기반 소스 코드 관리(SCM)를 중심으로
소프트웨어 개발 전 과정(DevOps 라이프사이클)을 하나의 플랫폼에서 지원하는 도구다.
- 코드 저장소, 협업 기능, CI/CD, 배포 관리까지 단일 플랫폼에서 제공한다.
- GitHub와 유사하지만 CI/CD와 DevOps 기능이 기본 내장되어 있다는 점이 가장 큰 특징이다.
🥔GitLab의 핵심 개념
Git 기반 원격 저장소
- GitLab은 Git을 기반으로 한 원격 저장소다.
- 코드 버전 관리, 브랜치 전략, 히스토리 추적이 가능하다.
- GitHub와 Git 사용 방식의 기본 개념은 동일하다.
🥔GitLab의 주요 기능
📁 소스 코드 관리 (SCM)
- Repository 단위로 프로젝트를 관리한다.
- Branch와 Merge Request(MR)를 통해 코드 변경을 관리한다.
- 라인 단위 코드 리뷰와 승인 정책을 지원한다.
- Maintainer, Developer 등 역할 기반 권한 관리를 제공한다.
👥 협업 도구
- Merge Request(MR)를 통해 코드 변경 제안, 리뷰, 토론을 한 곳에서 진행한다.
- 이슈(Issues)를 통해 작업 단위와 버그를 관리한다.
- 위키(Wiki)를 통해 프로젝트 문서를 관리한다.
- 코드 변경 이력을 체계적으로 추적한다.
⚙️ CI/CD (GitLab의 핵심 강점)
- GitLab CI/CD가 기본 내장되어 있다.
.gitlab-ci.yml 파일로 파이프라인을 정의한다.
- 빌드(Build), 테스트(Test), 배포(Deploy) 단계를 자동화한다.
- 커밋, MR 생성, 특정 브랜치 push 시 파이프라인이 자동 실행된다.
👉 외부 CI 도구 없이 코드 관리부터 배포까지 하나의 흐름으로 관리한다.
🐳 DevOps / DevSecOps 지원
- Container Registry를 제공한다.
- Kubernetes 연동을 지원한다.
- SAST, DAST, Dependency Scan 등 보안 스캔 기능을 제공한다.
- Infrastructure as Code(IaC) 환경을 지원한다.
🥔GitLab vs GitHub 간단 비교
| 항목 | GitLab | GitHub |
|---|
| 저장소 | Git 기반 | Git 기반 |
| CI/CD | 기본 내장 | Actions 필요 |
| 설치형 | Self-hosted 가능 | 제한적 |
| DevOps 통합 | 매우 강함 | 상대적으로 약함 |
| UI | 다소 복잡 | 직관적 |
🥔GitLab 사용 형태
- GitLab에서 직접 호스팅하는 서비스다.
- 별도 설치 없이 빠르게 시작할 수 있다.
🏢 Self-Hosted GitLab
- 사내 서버에 GitLab을 직접 설치해 운영한다.
- 보안, 권한, 네트워크를 내부 정책에 맞게 제어한다.
- 대규모 조직이나 보안 요구사항이 높은 환경에서 많이 사용된다.
🥔GitLab에서 자주 쓰는 용어
- Project는 하나의 저장소 단위다.
- Group은 여러 프로젝트를 묶고 권한을 관리하는 단위다.
- Merge Request(MR)는 코드 병합 요청이다.
- Pipeline은 CI/CD 실행 단위다.
- Runner는 CI 작업을 실제로 수행하는 머신이다.
🥔GitLab을 언제 쓰면 좋은가?
- 코드 관리와 CI/CD를 한 번에 사용하고 싶을 때 적합하다.
- 팀 단위 협업과 코드 리뷰 프로세스가 중요한 경우에 유리하다.
- 사내 보안 정책으로 인해 Self-hosted 환경이 필요한 경우에 적합하다.
- DevOps 자동화를 적극적으로 도입하려는 팀에 적합하다.