개요
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 Actions GitHub (Microsoft) GitHub 네이티브, 마켓플레이스 20,000+ 액션 GitLab CI/CD GitLab GitLab 통합, DAG 파이프라인, 보안 스캔 내장 Jenkins 오픈소스 가장 오래된 CI/CD, 1,800+ 플러그인, 완전 커스텀 ArgoCD 오픈소스 GitOps CD, Kubernetes 전용 CircleCI CircleCI 빠른 빌드, Docker 레이어 캐싱 Tekton Google/CD Foundation K8s 네이티브 CI/CD 프레임워크
자세한 도구별 비교는 CI-CD 도구 비교 참조
CI/CD 모범 사례
작은 단위로 자주 커밋 — 대규모 병합 충돌 방지
메인 브랜치는 항상 배포 가능 상태 유지
테스트 자동화 — 수동 QA 의존도 최소화
환경 일관성 — Docker 컨테이너로 빌드 환경 통일
시크릿 관리 — 환경변수/Vault로 민감 정보 분리
모니터링 연계 — 배포 후 자동 롤백 조건 설정
파이프라인 속도 관리 — 캐싱, 병렬 실행으로 피드백 루프 단축
배포 전략
전략 설명 Rolling Update 인스턴스를 순차적으로 교체 Blue-Green 새 환경(Green)에 배포 후 트래픽 전환 Canary 일부 트래픽만 새 버전으로 보내 검증 Feature Flags 코드 배포와 기능 활성화를 분리
관련 항목