롯데카드 · GitLab 도입 가이드 01. GitLab CI/CD 기능 상세
CHAPTER 01 · 고객 문의 2번

01. GitLab CI/CD 기능 상세

고객 문의 — GitLab CI/CD 기능 상세 — 실제 데모 혹은 화면이라도 어떻게 구성되어 있는지 확인이 가능하면 좋겠습니다.

요약 답변

GitLab CI/CD는 저장소 루트의 .gitlab-ci.yml 파일 하나로 파이프라인을 정의합니다. Stage(단계)와 Job(작업)으로 구성되고, 커밋·Merge Request·스케줄·수동 실행 등으로 파이프라인이 시작되며, Runner라는 실행 에이전트가 Job을 수행합니다. 웹 UI에서 파이프라인 편집기, 시각화, 실행 이력, Job 로그, 테스트·보안 리포트까지 모두 확인할 수 있습니다. GitLab CI/CD 자체는 Free 티어부터 모든 배포 형태(GitLab.com, Self-Managed, Dedicated)에서 제공됩니다.

화면 흐름 (Siren Order 프로젝트 실제 화면)

아래 순서대로 보여주면 "구성 → 시각화 → 실행 이력 → 단계별 결과 → Job 상세 → 보안 리포트 → 실행 로그" 전체 흐름이 한 번에 설명됩니다.

01-1. 파이프라인 편집기 (Pipeline Editor)

파이프라인 편집기
파이프라인 편집기
  • 위치: 프로젝트 > Build > Pipeline editor
  • .gitlab-ci.yml을 웹에서 직접 편집하고 문법 검증을 받을 수 있습니다. 화면 상단에 "Pipeline syntax is correct"처럼 즉시 검증 결과가 표시됩니다.
  • 이 프로젝트는 로컬 파일에 전체 파이프라인을 직접 적는 대신, 그룹 공유 템플릿 프로젝트(infograb/devrel/devsecops-platform/templates)를 include로 가져와 사용합니다. 조직 표준 파이프라인을 중앙에서 관리하는 방식입니다.

01-2. 파이프라인 시각화 (Visualize)

파이프라인 시각화
파이프라인 시각화
  • 편집기의 Visualize 탭이 설정 파일을 해석해 Stage별 Job 그래프를 그려줍니다.
  • 이 프로젝트는 build 1개 Job, test 27개 Job 등으로 확장되는 것을 확인할 수 있습니다. include된 템플릿까지 합쳐서 최종 형태를 보여주므로, 실제 실행 전에 구성을 검토하기에 좋습니다.

01-3. 파이프라인 실행 목록

파이프라인 목록
파이프라인 목록
  • 위치: 프로젝트 > Build > Pipelines
  • 이 프로젝트에는 실제 실행 이력 18건이 있습니다. 각 행에서 상태( Passed / Warning / Failed / Skipped / Canceled ), 커밋 메시지, 브랜치, Stage별 진행 상태를 한눈에 봅니다.
  • 목록에서 branch / merge request / latest / agent session 같은 배지로 파이프라인이 어떤 경로로 시작됐는지 구분됩니다.

01-4. 파이프라인 상세 (Stage 그래프)

파이프라인 상세
파이프라인 상세
  • 개별 파이프라인 화면에서 Stage 순서대로 Job 카드가 배열됩니다. 이 실행은 build → test(단위 테스트, SAST, Secret Detection, IaC 스캔) → package(BuildKit 컨테이너 빌드) → verify(컨테이너 스캔) → dast 순서입니다.
  • 상단에 커밋, 연결된 Merge Request, 총 소요 시간, Job 수가 표시됩니다.
  • dast Job은 "allowed to fail"로 설정되어 있어 실패해도 파이프라인 전체는 Warning으로 유지되는 사례를 보여줍니다. 보안 스캔을 점진적으로 도입할 때 쓰는 방식입니다.

01-5. Job 목록과 결과

Job 목록
Job 목록
  • Jobs 탭에서 각 Job의 상태, 소요 시간, Stage, 아티팩트 다운로드/열어보기를 제공합니다.
  • gradle:build, gradle:test, semgrep-sast, secret_detection, kics-iac-sast, docker:buildkit, container_scanning, dast 8개 Job이 보입니다.

01-6. 파이프라인 보안 리포트

파이프라인 보안 리포트
파이프라인 보안 리포트
  • Security 탭에서 SAST, Container Scanning, Secret Detection 결과를 취약점 단위로 확인합니다.
  • 참고: 보안 스캔 제품군은 Ultimate 기능입니다. Premium 환경에서는 이 탭 대신 CI 로그와 아티팩트(JSON 리포트)로 결과를 확인하는 방식을 안내합니다. (티어 구분은 챕터 03. Premium 기능 사용 범위 참고)

01-7. Job 실행 로그

컨테이너 스캔 Job 로그
컨테이너 스캔 Job 로그
  • Job을 클릭하면 실시간 실행 로그가 표시됩니다. 사용된 Runner(executor, 이미지), 스캔 대상 컨테이너, 생성된 아티팩트(gl-container-scanning-report.json, SBOM)까지 추적됩니다.
  • 장애 분석 시 이 화면에서 원인을 직접 확인합니다.

주요 개념 정리

개념설명비고
Pipeline커밋/MR/스케줄/수동 실행으로 생성되는 CI/CD 실행 단위Stage > Job 구조
StageJob 실행 순서를 정의 (build, test, deploy 등)같은 Stage의 Job은 병렬 실행
Job스크립트를 실행하는 최소 단위컨테이너 이미지 지정 가능
RunnerJob을 실제로 실행하는 에이전트Self-Managed는 자체 Runner 등록, GitLab.com은 Linux/Windows/macOS 공유 Runner 제공
CI/CD 변수비밀번호·API 키 등 설정값 전달Protected(보호 브랜치 전용)·Masked(로그 마스킹) 지원
ArtifactsJob 산출물 저장/전달 (JAR, 리포트, SBOM)후속 Job으로 전달 가능
include / 컴포넌트파이프라인 설정을 재사용 단위로 분리CI/CD Catalog에 버전별 공개 가능
Merge Request 파이프라인MR 소스 브랜치 내용으로 실행병합 전 품질 게이트로 사용
Environments배포 대상 환경 관리수동 승인(보호 환경)과 연계 가능
Pipeline schedules정기 실행 (야간 스캔 등)cron 형식

데모 프로젝트의 실제 구성 (참고 설명용)

  • Siren Order는 include로 공유 템플릿 9개(글로벌, Gradle, Docker, SAST, Dependency Scanning, Secret Detection, Container Scanning, DAST, IaC)를 가져오고, 프로젝트 변수(DOCKER_BUILD_TOOL: buildkit 등)로 동작을 조정합니다.
  • juice-shop은 CI/CD Catalog 컴포넌트(secret-detection, sast-scanner, dependency-scanning, kaniko-build, container-scanning, license-compliance 등)를 단계별로 조합한 구성입니다. 컴포넌트는 버전을 고정해 재사용할 수 있습니다.

공식 출처

  • CI/CD 개요: https://docs.gitlab.com/ci/ (Tier: Free, Premium, Ultimate / Offering: GitLab.com, Self-Managed, Dedicated)
  • CI/CD 컴포넌트와 Catalog: https://docs.gitlab.com/ci/components/
  • 파이프라인 상세: https://docs.gitlab.com/ci/pipelines/