어플리케이션의 개발단계에서 부터 배포까지의 모든 단계들을 자동화를 통해 좀 더 효율적이고 빠르게 사용자에게 자주 배포할 수 있도록 만드는 것이다.
버그 수정 및 새로 만드는 기능들이 매인 Repository
에 주기적으로 빌드되고 테스트 되서 Merge
되는것을 말한다.
기능들을 최대한 작은단위로 개발하고 통합해 나가는 것이 같은 프로젝트를 만들어 나가는 동료 개발자들와의 소통에서도 원활하게 이루어지고 사용자들에게도 빠르게 배포가 가능하다.
주기적으로 Merge
된 변경사항이 자동으로 build
되어서 코드 변경 이후에도 빌드가 성공적으로 되는지 확인이 되어야 한다. 그리고 기존 시스템의 버그들이 자동으로 테스트도 되어야 한다. 주기적으로 Merge
하기 때문에 개발 생산성 향상고 빠른 문제점 발견이 가능하다.
마지막 배포단계에서 어떻게 자동화로 만들수 있을지에 대한 고민을 하는 단계이다.
CI를 통해 주기적으로 변경된 코드들이 자동으로 Build
되고 Test
되었다면 배포단계에서 Release
할 준비를 마친다. 여기서 준비된 Release
가 문제가 없는지 개발자 혹은 검증팀의 검증을 마친뒤 수동적으로 배포하는 단계가
Continuous Delivery(지속적인 제공) 이다.
Release
단계에서 모든 과정을 자동으로 해놓는 것이 Continuous Deployment(지속적인 배포) 이다.