지속적 통합 (Continuous Integration, CI): 이것은 개발자들이 자신의 코드 변경을 팀의 공유 리포지토리에 지속적으로 통합하는 것을 말합니다. 각 통합은 그 후 자동화된 빌드 및 테스트 프로세스를 통해 검증되어, 코드 변경에 대한 문제를 가능한 한 빨리 발견할 수 있습니다. 이러한 접근 방식은 문제를 신속하게 식별하고 해결하므로, 개발자가 버그에 수 시간 또는 수 일을 보내는 것을 방지하고 프로젝트 비용을 줄이는 데 도움이 됩니다.
"CD"는 지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment) 를 의미하며 이 두 용어는 상호 교환하여 사용합니다.
지속적인 서비스 제공 (Continuous Delivery, CD): 이것은 CI의 확장으로 볼 수 있으며, 소프트웨어를 언제든지 안전하게 실제 생산 환경에 배포할 수 있는 상태로 유지하는 것을 목표로 합니다. 이것은 매번 코드 변경이 이루어질 때마다 자동화된 테스트를 거친 후, 테스트를 통과한 빌드가 자동으로 스테이징 환경으로 배포되는 방식입니다. 그 후, 실제 생산 배포는 수동으로 수행할 수 있습니다.
지속적 배포 (Continuous Deployment, CD): 이것은 Continuous Delivery의 한 단계 더 나아가, 테스트를 통과한 모든 변경사항을 자동적으로 생산 환경에 배포하는 접근 방식을 말합니다. 이것은 개발 단계에서 고객에게 신속하게 제공되는 빠른 피드백 루프를 가능하게 합니다. 그러나 이런 접근 방식은 강력한 자동화된 테스팅 환경과 세밀한 모니터링을 필요로 합니다.
CI/CD(지속적 통합/지속적 배포) 는 위와 같이 소프트웨어 개발에서 코드 품질 향상, 프로세스 자동화, 빠른 피드백 주기 등의 장점을 제공하기 때문에 널리 사용되고 있습니다
너무 좋은 글이네요. 공유해주셔서 감사합니다.