PMDEXIT 프로젝트 용어사전

CI/CD

Continuous Integration and Delivery · CI/CD

통합·테스트·배포를 자동화해 짧은 주기로 안전하게 출시.

CI/CD란 무엇인가

CI/CD(Continuous Integration and Delivery, 지속적 통합·지속적 배포)는 코드의 통합·테스트·배포 과정을 자동화해 짧은 주기로 안전하게 출시할 수 있게 하는 실천 체계다. CI는 여러 개발자가 작성한 변경을 형상관리 저장소로 자주 합치고, 합칠 때마다 빌드와 자동 테스트를 돌려 결함을 조기에 드러내는 활동을 가리킨다.

CD는 그 검증을 통과한 산출물을 스테이징과 운영 환경까지 자동으로 흘려보내는 활동을 가리킨다. 핵심은 사람이 손으로 반복하던 절차를 파이프라인으로 옮겨 실수를 줄이고 출시 간격을 좁히는 데 있다.

01체크아웃02빌드03테스트04정적분석05패키징06배포
전형적 파이프라인 단계 흐름

왜 작은 단위로 자주 합치는가

변경을 오래 묵혀 두었다가 한 번에 합치면 충돌과 회귀가 한꺼번에 터져 원인 추적이 어려워진다. 작은 단위로 자주 통합하면 문제가 생긴 시점과 변경 범위가 좁아 결함을 가까운 곳에서 잡을 수 있다.

이는 통합 비용을 뒤로 미루지 않고 매번 분산해 갚는 구조다. 통합의 빈도를 높이려면 자동화된 검증이 빨라야 하며, 테스트가 느리면 개발자가 통합을 회피하게 되어 체계 전체가 무너진다.

파이프라인의 단계 구성

전형적인 파이프라인은 소스 체크아웃, 빌드, 단위·통합 테스트, 정적 분석, 산출물 패키징, 배포의 순서로 이어진다. 각 단계는 앞 단계가 성공해야 다음으로 넘어가는 관문 역할을 하며, 어느 단계든 실패하면 그 자리에서 파이프라인을 멈춰 결함이 하류로 번지지 않게 한다.

빠르고 값싼 검증을 앞에, 느리고 비싼 검증을 뒤에 배치하는 것이 비용 효율의 기본이다. 같은 산출물을 환경마다 다시 빌드하지 않고 한 번 만든 결과물을 그대로 승격해야 환경 간 차이로 인한 사고를 줄일 수 있다.

구분최종 배포적합 영역
지속적 제공사람이 승인규제 강한 영역
지속적 배포자동 반영롤백 역량 충분
CD 두 갈래 비교

지속적 배포와 지속적 제공의 구분

CD라는 약어는 지속적 제공(Continuous Delivery)과 지속적 배포(Continuous Deployment)를 함께 가리켜 혼동을 부른다. 지속적 제공은 운영에 올릴 수 있는 상태까지 자동으로 준비하되 최종 배포는 사람이 승인하는 방식이다.

지속적 배포는 검증을 통과하면 사람의 개입 없이 운영까지 자동으로 반영하는 방식이다. 어느 쪽을 택할지는 도메인의 위험도, 롤백 역량, 조직의 신뢰 수준에 따라 결정되며, 규제가 강한 영역일수록 승인 게이트를 두는 편이 안전하다.

테스트 신뢰도가 전제다

파이프라인이 자동으로 배포를 밀어 올린다는 것은 테스트가 통과를 곧 안전으로 보증한다는 뜻이다. 따라서 자동화의 가치는 검증의 신뢰도를 넘어설 수 없다.

간헐적으로 실패하는 불안정한 테스트가 방치되면 개발자가 실패 결과를 무시하기 시작하고, 그 순간 파이프라인은 형식만 남고 의미를 잃는다. 커버리지 숫자를 채우는 데 매달리기보다 회귀를 실제로 잡아내는 검증을 갖추는 편이 출시 안전성에 직결된다.

컨테이너·DevOps와의 결합

CI/CD는 DevOps 문화를 코드 흐름 위에서 구현하는 핵심 도구이며, 컨테이너와 결합할 때 효과가 커진다. 빌드 결과를 컨테이너 이미지로 한 번 만들어 두면 개발·검증·운영이 동일한 산출물을 공유하므로 환경 차이로 인한 변수를 줄일 수 있다.

인프라 구성까지 코드로 관리하면 배포의 재현성이 높아져 롤백과 재배포가 단순해진다. 결국 CI/CD는 빌드와 배포의 자동화에 그치지 않고, 변경을 안전하게 운영까지 흘려보내는 조직의 운영 능력 자체를 가시화한다.

관련 용어