CI = Continuous Integration
CD = Continuous Delivery(Deployment)
지속적 통합 / 지속적 제공(배포)
CI가 성공적으로 구축될 경우,
새로운 코드 변경사항이 정기적으로 테스트 빌드 되므로,
여러 명의 개발자가 동시에 어플리케이션 개발을 할 대에 충돌 문제를 해결할 수 있다.
버그 테스트를 거쳐, 자동으로 레포지토리에 업로드 되는 것을 뜻한다. 운영팀은 이 레포지토리에서 실시간 프로덕션 환경으로 배포할 수 있다.
Delivery까지는, 코드를 업로드 하기까지의 과정이고
Deployment까지는 자동 배포까지의 과정이다.
코드 머지 -> 코드 빌드 // CI
-> 테스트 -> 배포 스테이징 -> 자동 배포// CD
소프트웨어의 결함이 발견되면, 찾는 데에 더 오래 걸리고
품질이 저하됐을 경우, 고객이 이탈할 확률이 높아진다.
뿐만 아니라, 배포하는 프로세스를 수동으로 거친다면, 자동화된 프로세스보다 시간이 더 소요되므로,
배포를 하기에 어려움이 있다. 배포의 지연은 서비스 출시의 지연과 연관이 있다.
자주 커밋 머지함으로써, 소프트웨어의 품질을 높힐 수 있다는 장점도 있다.
테스트 프로세스를 도입한다면, 소프트웨어의 결함을 배포 전에 잡을 수 있다.