GitLab CI/CD

짜장킴·2025년 12월 31일

실무

목록 보기
4/6

GitLab CI/CD는 GitLab에 기본으로 내장된 CI/CD 시스템이다.
별도의 CI 툴(Jenkins, CircleCI 등)을 붙이지 않아도,
저장소 하나만 있으면 바로 파이프라인을 구성할 수 있다.
별도 툴 설치 ❌
GitLab 저장소에 바로 연동 ⭕

GitLab CI/CD를 배우는 게 아니라, CI/CD 파이프라인을 배우는 거고 GitLab은 그걸 구현하는 수단 중 하나다.

GitLab CI/CD의 핵심 구성 요소

.gitlab-ci.yml

  • GitLab CI/CD 파이프라인의 설계도 역할을 한다.
stages:
  - build
  - test
  - deploy
  • 어떤 작업을
  • 어떤 순서로
  • 언제 실행할지 정의
  • 이 파일 하나로 CI/CD 동작 전체가 결정된다.

Job

  • Job은 파이프라인에서 실행되는 가장 작은 작업 단위다.
  • 각 단계에서 실행되는 작업 단위
  • 수행할 작업을 정의
test:
  stage: test
  script:
    - npm install
    - npm test
  • 하나의 Job = 하나의 자동화 작업

Stage

  • 여러 Job들을 묶는 단계
  • Job들의 묶음
  • 작업을 실행할 시기를 정의
build → test → deploy
  • 앞 stage 실패 시 다음 stage는 실행 ❌

Runner

  • Job을 실제로 실행하는 머신
Docker
VM
Shell
Kubernetes 등
  • 일 시키는 사람 = GitLab
  • 일 하는 사람 = Runner
  • GitLab은 “무엇을 할지”만 결정하고, Runner가 실제 명령어(npm run build 등)를 실행한다.

GitLab CI/CD 동작 흐름

  1. 개발자가 코드 push
  2. GitLab이 .gitlab-ci.yml 확인
  3. GitLab이 Runner에게 작업 지시
  4. Runner가 실제 작업 실행
    • 빌드
    • 테스트
    • 배포
  5. 결과를 GitLab UI에 표시

GitLab CI/CD를 쓰는 이유

장점

  • GitLab과 완전 통합
  • 설정 파일 하나로 관리
  • UI에서 파이프라인 시각화
  • 브랜치 / MR 조건별 실행 가능

단점

  • Runner 개념이 처음엔 어려움
  • YAML 문법 실수 시 디버깅 빡셈
  • 파이프라인 예시
stages:
  - install
  - build
  - deploy

// 의존성을 항상 동일한 상태로 설치
install:
  stage: install
  script:
    - npm ci

// 프로젝트가 빌드 가능한 상태인지 검증
// 실제 배포 전에 가장 중요한 단계
build:
  stage: build
  script:
    - npm run build

// main 브랜치에 머지될 때만 실행
// 현재는 배포 동작을 흉내만 내는 상태
// 실제 배포를 하려면 이 부분에 서버 업로드 / 클라우드 배포 명령이 추가되어야 한다.
deploy:
  stage: deploy
  script:
    - echo "Deploying..."
  only:
    - main
profile
프론트엔드 취준생입니다.

0개의 댓글