[CI/CD] CI/CD 파이프라인 이해

 

CI/CD 란?

CI/CD 파이프라인은 소프트웨어 개발에서 코드 작성 → 빌드 → 테스트 → 배포까지의 과정을 자동화함으로써 개발 속도품질을 동시에 끌어올리는 핵심 DevOps 전략입니다.
CIContinuous Integration(지속적 통합)을, CDContinuous Delivery(지속적 제공) 또는Continuous Deployment(지속적 배포)를 의미합니다.

 

 

Continuous Integration (지속적 통합)

CI는 여러 개발자들이 작성한 코드를 지속적으로 통합하고, 자동으로 테스트하는 과정입니다. 주요 목표는 개발자들은 코드를 중앙 저장소(git)에 병합하고, 이 과정에서 오류를 즉시 발견하여 빠르게 수정할 수 있도록 하는 것입니다.

주요 단계

 

  • Build: 코드 변경사항을 감지해 자동 빌드
  • Test: 유닛 테스트, 통합 테스트 자동 실행
  • Merge: 메인 브랜치로 병합

코드를 병합할 때마다 자동으로 품질 검증을 수행하여 문제가 있는 코드는 초기에 발견할 수 있게 합니다.

 

Continuous Delivery (지속적 제공)

CI 이후, 자동으로 코드를 스테이징 환경까지 배포하여 프로덕션 배포 준비가 된 상태를 지속적으로 유지합니다.

특징

 

  • 자동으로 스테이징 환경까지 배포
  • 사람의 승인(수동)을 통해 프로덕션으로 넘어감

개발자는 언제든지 검증된 코드를 버튼 하나로 프로덕션에 배포할 수 있게 됩니다.

 

 

Continuous Deployment (지속적 배포)

Continuous Deployment는 Delivery보다 한 단계 더 나아가, 테스트를 통과한 모든 변경사항을 자동으로 프로덕션에 배포합니다.

특징

  • 테스트 성공 시 배포도 자동
  • 수동 개입 없이 자동 운영

Netflix, Amazon 같은 대규모 서비스들이 사용하는 방식으로, 신속한 배포와 피드백이 가능합니다.

 

 

 

Continuous Delivery (지속적 제공) VS Continuous Deployment (지속적 배포)

 

 

Continuous Delivery (지속적 제공)와 Continuous Deployment (지속적 배포)의 차이는 배포를 누가 트리거하느냐에 따라 차이가 있습니다.

항목 Continuous Delivery Continuous Deployment
배포 시점 자동 테스트 후 사람이 승인해야 배포 자동 테스트 후 자동으로 배포
배포 대상 스테이징 환경까지 자동, 프로덕션은 수동 프로덕션까지 자동 배포
위험 제어 사람이 개입 → 위험 제어 가능 자동으로 릴리스 → 빠르지만 위험 가능성
필요 조건 자동화된 테스트 + 승인 절차 자동화된 테스트 + 고품질 테스트 커버리지
대표 사례 금융, 정부 등 안정성 우선 Netflix, Facebook 등 민첩성 우선

 

 

둘의 차이는 프로덕션에 자동으로 갈 것이냐로 나뉘며, 기술적 기반은 거의 같고 조직의 정책 차이로 적용 방식이 달라지는 경우가 많습니다.

 

 

CI/CD 파이프라인 구성 요소

CI/CD는 다음과 같은 순서로 구성됩니다:

  1. 코드 푸시: 개발자가 Git 등 VCS에 코드 업로드
  2. 빌드(Build): 소스 코드 컴파일 및 패키징
  3. 테스트(Test): 유닛/통합/기능 테스트 자동 수행
  4. 배포(Deploy): 성공한 코드 변경을 스테이징 또는 프로덕션으로 배포
  5. 모니터링(Monitor): 배포 이후 상태 및 성능 관찰

 

 

대표적인 CI/CD 도구

도구 특징
Jenkins 오픈소스 CI/CD 도구, 다양한 플러그인 지원
GitLab CI GitLab에 내장된 파이프라인 도구
CircleCI 클라우드 기반, 빠른 초기 셋업
Travis CI GitHub에 최적화된 CI
ArgoCD Kubernetes 환경에 특화된 CD 도구

 

 

마무리

CI/CD 파이프라인을 잘 설계하면 다음과 같은 효과를 얻을 수 있습니다:

  • 빠르고 안정적인 배포
  • 코드 품질 향상
  • 팀 간 협업 효율 증가
  • 운영 자동화

조직 규모에 따라 CI만 적용하거나, CI + CD 조합으로 단계적으로 도입할 수 있으며, Kubernetes 환경에서는 ArgoCD와 같은 툴도 좋은 선택이 될 수 있습니다.