GitLab이 좋은 이유

2 weeks ago 9

  • 개인 프로젝트 관리와 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은 실험과 자동화 관리에 각각 적합
  • 두 플랫폼을 병행하는 구조가 워크플로우의 균형과 효율성을 유지하는 방식으로 작동

Read Entire Article