핵심 인사이트 (3줄 요약)
- 본질: CI/CD는 코드 변경 시 **빌드·테스트를 자동 실행(CI: Continuous Integration)**하고, 검증된 코드를 **스테이징·프로덕션에 자동 배포(CD: Continuous Delivery/Deployment)**하는 소프트웨어 엔지니어링의 핵심 자동화 체계다.
- 가치: 수동 빌드·배포는 인적 오류·시간 낭비·릴리스 공포(Fear of Release)를 유발하지만, CI/CD 파이프라인은 커밋→빌드→테스트→배포를 30분 이내에 자동 완료하여 DORA 지표(배포 빈도·리드 타임)를 극적으로 개선한다.
- 판단 포인트: CI(통합) vs CD-Delivery(수동 승인 후 배포) vs CD-Deployment(완전 자동 배포)를 구분하고, 트렁크 기반 개발(Trunk-Based Dev) + 피처 플래그 조합이 Elite 팀의 표준이다.
Ⅰ. 개요 및 필요성
┌───────────────────────────────────────────────────────┐
│ CI/CD 파이프라인 단계 │
├───────────────────────────────────────────────────────┤
│ [CI — Continuous Integration] │
│ 커밋 → 빌드 → 단위 테스트 → 통합 테스트 │
│ → 코드 품질 검증 (린트·커버리지) │
│ │
│ [CD — Continuous Delivery] │
│ CI 통과 → 스테이징 배포 → QA → 수동 승인 → Prod │
│ │
│ [CD — Continuous Deployment] │
│ CI 통과 → 자동 Prod 배포 (승인 없음) │
└───────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: CI는 공장 조립 라인의 품질 검사(불량 자동 탐지)이고, CD는 검사 통과한 제품을 매장(프로덕션)에 자동 진열하는 것이다.
Ⅱ. 아키텍처 및 핵심 원리
CI vs CD 비교
| 구분 | CI | CD (Delivery) | CD (Deployment) |
| 자동화 | 빌드·테스트 | + 스테이징 배포 | + 프로덕션 배포 |
| 승인 | 자동 | 수동 승인 | 자동 |
| 위험 | 낮음 | 중간 | 높음 (자동 배포) |
파이프라인 도구
| 도구 | 특징 |
| GitHub Actions | GitHub 내장, YAML 정의 |
| GitLab CI | GitLab 내장, .gitlab-ci.yml |
| Jenkins | 오픈소스, 플러그인 생태계 |
| ArgoCD | K8s GitOps CD |
- 📢 섹션 요약 비유: CI/CD 도구는 자동차 공장의 로봇 팔이다. 사람 없이 용접(빌드)→검사(테스트)→출고(배포)를 자동으로 한다.
Ⅲ. 비교 및 연결
| 비교 | 수동 배포 | CI만 | CI/CD |
| 배포 빈도 | 월 1회 | 주 1회 | 하루 여러 번 |
| 리드 타임 | 주~월 | 일 | 시간 |
| 인적 오류 | 빈번 | 줄어듦 | 최소 |
Ⅳ. 실무 적용 및 기술사 판단
파이프라인 설계 Best Practice
- 빠른 피드백: 단위 테스트 먼저, 느린 E2E 테스트는 나중에.
- 피처 플래그: 불완전 기능도 main에 머지 → 플래그로 숨김.
- 트렁크 기반: 장기 브랜치 금지 → 머지 충돌 최소화.
Ⅴ. 기대효과 및 결론
| 지표 | 수동 | CI/CD | 개선 |
| 배포 빈도 | 월 1회 | 하루 N회 | 30× |
| 리드 타임 | 수 주 | 수 시간 | 100× |
| 변경 실패율 | 높음 | 낮음 | 테스트 자동화 |
CI/CD는 현대 소프트웨어 개발의 기본 인프라이며, GitOps·Progressive Delivery·AIOps와 결합하여 지속 진화하고 있다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| CI | 지속적 통합 (빌드+테스트 자동화) |
| CD | 지속적 전달/배포 |
| GitOps | CD의 선언적 구현 |
| 트렁크 기반 개발 | CI 최적화 브랜치 전략 |
| DORA Metrics | CI/CD 성과 측정 지표 |
📈 관련 키워드 및 발전 흐름도
[수동 빌드·배포 (2000s)]
│
▼
[CI 서버 (Jenkins, 2004~) — 자동 빌드·테스트]
│
▼
[CD (Docker+K8s, 2014~) — 자동 배포 파이프라인]
│
▼
[GitOps (2017~) — 선언적 CD (ArgoCD/Flux)]
│
▼
[현재: Progressive Delivery + AIOps — AI 기반 배포 판단]
👶 어린이를 위한 3줄 비유 설명
- CI/CD는 공장의 자동 조립 라인이에요. 재료(코드)를 넣으면 검사(테스트)하고 완제품(배포)이 나와요.
- 불량품(버그)이 발견되면 즉시 라인이 멈추고 알려줘요.
- 덕분에 하루에 여러 번 새 제품(기능)을 안전하게 출시할 수 있답니다!