애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 통합 및 배포하는 것을 의미한다.
새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어
공유 레포지토리에 통합되는 것.
동시에 작업하여 발생할 수 있는 충돌 문제를 수시로 확인하고 해결 가능하다.
적용 예시
1. 개발자는 소스코드를 버전 관리시스템(github 등)에 저장한다.
2. 소스코드의 변동이 생기면 버전 관리 시스템에서는 CI 툴(Jenkins)로 소스코드 변경을 알린다.
3. CI 툴에서 변동된 소스코드를 대상으로 Build, Test, Merge를 진행한다.
+협업 메신저 (슬랙, 메일 등)을 통해 통합 결과를 알려준다.
개발자의 변경 사항을 레포지토리에서 고객의 프로덕션 환경까지 자동으로 배포하는 것
CD의 장점은 실제 배포할 어플리케이션의 서버가 여러 대일 때, 작업물이 여러 개일 때 나타나다.
작업물과 서버를 배포할 때 발생하는 실수를 방지한다.
코드 변경 사항이 CI를 거처 main에 merge 되면, 자동으로 배포해 주는 과정이다.

