- 개인 프로젝트 관리와 CI/CD 통합을 중심으로 GitLab을 장기간 사용해 온 경험을 설명
- 초기에는 무료 비공개 저장소 제공이 GitHub 대비 주요 장점이었으며, 이후에도 워크플로우가 완전히 정착
-
Container Registry 기능을 가장 자주 활용하며, 별도 Docker Hub 계정이나 토큰 관리 없이 이미지 저장 가능
-
GitLab CI의 설정 파일 기반 파이프라인, 무료 공유 러너, 풍부한 문서 등이 주요 강점으로 언급
- 다만 웹 인터페이스 속도 저하와 기능 과잉이 단점으로 지적되며, GitHub과 GitLab을 목적별로 병행 사용하는 방식이 효율적임
GitLab 사용 배경
- GitHub이 비공개 저장소에 요금을 부과하던 시기에 GitLab이 무료 비공개 저장소를 제공해 사용을 시작
- 여러 실험적 프로젝트를 공개하지 않고 관리할 수 있었음
- 이후 GitHub이 무료 정책을 도입했지만, 이미 CI 파이프라인·Docker 이미지·배포 스크립트 등이 GitLab 중심으로 구축되어 전환 필요성이 사라짐
Docker Registry 기능
- 모든 GitLab 프로젝트에는 Container Registry가 기본 포함
- 로컬 또는 CI에서 이미지를 빌드해 푸시하고, 필요한 곳에서 풀어 사용하는 단순한 흐름
-
별도 Docker Hub 계정이나 토큰 관리 불필요, 풀 제한 걱정 없음
- 개인 프로젝트에는 충분한 기능이며, 10GB 용량 제한도 실제로는 문제되지 않음
- 오래된 태그 정리와 레이어 공유로 공간 효율 유지
CI/CD 환경
- GitLab CI는 초기부터 ‘설정 파일 기반 CI’ 개념을 구현
-
.gitlab-ci.yml 파일만 추가하면 파이프라인이 자동 실행
- 설정이 버전 관리되어 과거 파이프라인 상태 추적 가능
- 기본 파이프라인은 이미지 빌드·푸시·선택적 배포로 구성
-
공유 러너는 무료이지만 속도는 느림, 필요 시 자체 러너를 VPS에 손쉽게 설치 가능
- CI/CD 문서는 매우 방대하며, 일단 패턴을 익히면 기존 설정 복사 재사용으로 효율적 관리 가능
불편한 점
-
웹 인터페이스 속도가 느리며, 머지 요청·파이프라인·로그 전환 시 대기 시간이 발생
- 최근 다소 개선된 듯하지만 여전히 GitHub보다 느림
-
기능 과잉 문제 존재
- 이슈 트래킹, 위키, 패키지 레지스트리, 보안 스캐닝 등 다양한 기능이 있으나 실제 사용 비율은 약 10% 수준
- 그러나 필요 시 이미 내장된 기능을 활용할 수 있는 잠재적 이점도 있음
비용과 워크플로우
- 약 12개의 개인 프로젝트를 무료로 운영 중이며, 활성 프로젝트부터 중단된 실험까지 모두 포함
- GitLab은 비공개 작업 공간, GitHub은 공개 프로젝트 공유 공간으로 구분
- GitHub은 협업과 가시성 확보에, GitLab은 실험과 자동화 관리에 각각 적합
- 두 플랫폼을 병행하는 구조가 워크플로우의 균형과 효율성을 유지하는 방식으로 작동