어플리케이션 개발부터 배포까지 이 모든 단계들을 자동화를 통하여 효율적으로 빠르게 사용자에게 빈번이 배포할 수 있도록 하는 것이다.
CI는 Continuous Integration(지속적인 통합)의 약자이며,
CD는 Continuous Delivery(지속적인 제공) / Continuous Deployment(지속적인 배포)의 약자이다.
Continuous Delivery와 Continuous Deployment는 각각 서로 연관성이 있고, 또 함께 섞어서 사용하기 때문에 비슷하다. 자세한 내용은 밑에서 알아보자
두 명의 개발자가 동일한 소스 파일을 수정할 때 충돌이 발생할 수 있다. 이것은 코드를 통합하는 과정에서 자연스럽게 발생하는 문제 중 하나이다. 때로는 새로운 기능을 개발하는 시간보다 충돌을 해결하는 데 더 많은 시간이 걸릴 수 있다.
= 기능을 구현할 때는 작은 단위로 나누어서 개발하고 통합해나가는 것이 중요!
코드를 주기적으로 Merge하면 자동으로 코드의 변경 사항을 빌드해야 한다. 이를 통해 코드 변경 후에도 Build의 성공여부를 확인하고, 기존 시스템에 버그를 유발하지 않는지를 테스트하여 확인해야 한다.
이 과정을 통해 코드의 통합이 안정적으로 이뤄지고, 테스트를 통해 배포 전에 문제를 발견하고 수정할 수 있다.
Continuous Delivery(CD):
Continuous Deployment(CD):
이 두 개념의 차이점은 릴리즈가 준비되었을 때 마지막 배포 단계가 자동화되었는지의 여부이다. Continuous Delivery에서는 릴리즈는 수동으로 배포되지만, Continuous Deployment에서는 릴리즈가 자동으로 배포된다.
CODE -> BUILD -> TEST -> RELEASE -> DEPLOY(자동화 O / 자동화 X)