2026년 2월 14일
CI (Continuous Integration), CD (Continuous Delivery)
1. 기존 개발 환경의 문제점과 CI/CD 도입 필요성
![]() |
- 전통적인 개발 환경의 코드 통합과 배포 문제들을 해결하기 위해 작게, 자주, 자동화 적용하는 개발/배포 철학인 CI (Continuous Integration)와 CD (Continuous Delivery or Continuous Deployment)가 등장
2. CI (Continuous Integration)의 개념 및 단계 별 활동
(1) CI의 개념 및 주요 단계
| 개념 | 소프트웨어 품질 확보를 위해 코드 통합 주기 단축, 자동 빌드와 테스트로 품질을 검증하는 개발 프로세스 |
|---|---|
| 주요 단계 | ![]() |
(2) CI의 주요 단계 및 활동
| 주요 단계 | 활동 | 도구 사례 |
|---|---|---|
| ① 코드 커밋 (Code Commit) | – Git 등 VCS Repository에 코드 푸시(Push) – Pull Request, Review 후 메인 브랜치에 병합(Merge) | – GitHub – GitLab |
| ② 빌드 (Build) | – 버그, 코드 스타일 위반, 보안 취약점 등 검사 – 소스 코드를 바이너리로 변환 등 실행 가능한 형태 생성 | – Jenkins – Gradle |
| ③ 테스트 (Test) | – 단위 코드가 의도대로 작동하는지 검증(Unit Test) – 전체 코드가 정상 동작하는지 검증 (Integration Test) | – JUnit – Playwright |
- 배포 빈도, 변경 실패율, 평균 복구 시간(MTTR 등), 코드 커버리지, 빌드 시간, 테스트 통과율 및 배포 실패 등으로 CI/CD 파이프라인 수준 측정
3. CD (Continuous Delivery)의 개념 및 단계 별 활동
- CD: Continuous Delivery 또는 Continuous Deployment
(1) CD의 개념 및 주요 단계
| 개념 | 사용자에 소프트웨어 신속 제공을 위해 코드 검증 및 운영 환경 배포를 자동화하는 프로세스 |
|---|---|
| 주요 단계 | ![]() |
(2) CD의 주요 단계 및 활동
| 주요 단계 | 활동 | 도구 사례 |
|---|---|---|
| ④ 아티팩트 생성/저장 (Artifact Repository) | – 빌드/테스트 완료 결과물(실행 파일, Docker 이미지 등)에 버전을 추가하여 저장소에 안전하게 저장 | – JFrog – Nexus Repo. |
| ⑤ 스테이징 환경 배포 (Staging Deployment) | – 운영 환경과 거의 동일하게 구성된 환경에 배포 – 실제 데이터와 유사한 환경에서 최종 점검 진행 | – Argo CD – Jenkins |
| ⑥ 운영 환경 배포 (Production Deployment) | – 실제 사용자가 사용하는 운영 환경에 배포 – 롤링, 블루/그린, 카나리 배포 등 중단 최소화 | – Argo CD – Jenkins |
- CI/CD의 기술적 도구를 기반으로 신뢰 구축과 개발/운영의 벽(Silo) 해소, 지속적 개선(Continuous Improvement) 문화 및 프로세스로 적용한 DevOps로 진화
3. CI/CD 파이프라인 기반 DevOps
(1) DevOps의 개요
| 개념 | 수행 절차 |
|---|---|
| 개발과 운영의 합성어로 개발과 운영 간의 상호 작용을 원활하게 하기 위한 개발 방법론 | ![]() |
(2) DevOps의 구성요소
| 구분 | 구성요소 | 역할 |
|---|---|---|
| 품질 | 테스트 자동화 | – 서비스 통합/시스템 테스트 – 단위테스트(xUnit), UI 테스트 |
| 프로세스 내재화 | – 업무 백로그-운영을 프로세스화 – 운영 이슈 개선 위한 프로세스 | |
| 프로세스 | 소규모 릴리즈 | – 변화에 유연, 롤백 용이 – Cycle-time 감소, 피드백 강화 |
| 지속적 통합 (Cont. Integration) | – 개발초기-릴리즈 간 요구 반영 – CMDB 코드 통합, Test, Release | |
| 도구 | 어플리케이션 릴리즈 자동화 | – 개발팀은 형상관리 기반 배치 – 운영팀은 표준화GW 사용 |
| 프로비저닝 | – IaC 기반 코드 자동 설치, 시스템 구성 – Tool: 퍼펫(Puppet), 셰프(Chef) |
[참고]
- RedHat, CI/CD(지속적 통합/지속적 배포)란, 2025.2
- IBM, Chrystal R. China, Micheal Goowin, 지속적 통합이란 무엇인가요



