개요

CI/CD는 **Continuous Integration (지속적 통합)**과 **Continuous Delivery/Deployment (지속적 전달/배포)**의 약자로, 코드 변경을 자동으로 빌드, 테스트, 배포하는 소프트웨어 개발 방식입니다. 현대 DevOps 문화의 핵심 실천 방법입니다.


핵심 개념

개념설명
CI (Continuous Integration)개발자가 코드를 자주 병합 → 자동 빌드·테스트로 통합 문제 조기 발견
CD (Continuous Delivery)CI 이후 스테이징까지 자동화, 프로덕션 배포는 수동 승인
CD (Continuous Deployment)모든 변경이 자동으로 프로덕션까지 배포 (완전 자동화)

파이프라인 흐름

[코드 커밋] → [빌드] → [단위 테스트] → [통합 테스트] → [보안 스캔]
    → [스테이징 배포] → [승인] → [프로덕션 배포] → [모니터링]
단계목적
빌드 (Build)소스 코드 컴파일, 컨테이너 이미지 생성
테스트 (Test)단위·통합·E2E 테스트 자동 실행
보안 스캔 (Security)SAST/DAST, 의존성 취약점 스캔
배포 (Deploy)스테이징/프로덕션 환경에 자동 배포
모니터링 (Monitor)배포 후 메트릭, 에러율, 롤백 판단

주요 CI/CD 도구

도구제공특징
GitHub ActionsGitHub (Microsoft)GitHub 네이티브, 마켓플레이스 20,000+ 액션
GitLab CI/CDGitLabGitLab 통합, DAG 파이프라인, 보안 스캔 내장
Jenkins오픈소스가장 오래된 CI/CD, 1,800+ 플러그인, 완전 커스텀
ArgoCD오픈소스GitOps CD, Kubernetes 전용
CircleCICircleCI빠른 빌드, Docker 레이어 캐싱
TektonGoogle/CD FoundationK8s 네이티브 CI/CD 프레임워크

자세한 도구별 비교는 CI-CD 도구 비교 참조


CI/CD 모범 사례

  1. 작은 단위로 자주 커밋 — 대규모 병합 충돌 방지
  2. 메인 브랜치는 항상 배포 가능 상태 유지
  3. 테스트 자동화 — 수동 QA 의존도 최소화
  4. 환경 일관성Docker 컨테이너로 빌드 환경 통일
  5. 시크릿 관리 — 환경변수/Vault로 민감 정보 분리
  6. 모니터링 연계 — 배포 후 자동 롤백 조건 설정
  7. 파이프라인 속도 관리 — 캐싱, 병렬 실행으로 피드백 루프 단축

배포 전략

전략설명
Rolling Update인스턴스를 순차적으로 교체
Blue-Green새 환경(Green)에 배포 후 트래픽 전환
Canary일부 트래픽만 새 버전으로 보내 검증
Feature Flags코드 배포와 기능 활성화를 분리

관련 항목