애플리케이션 배포 과정을 자동화하여 더 짧은 주기로 고객에게 서비스를 제공하는 방식
CI - Continuous Integration - 지속적 통합
CD - Continuous Delivery - 지속적 전달 또는 Continuous Deployment - 지속적 배포
CI 는 개발자들이 코드 변경사항을 주기적으로 메인 브랜치에 병합하는 과정을 자동화한 것
이 과정에서 코드 변경사항이 발생할 때마다 자동으로 빌드와 테스트를 수행하여 문제를 조기에 발견
ex - 여러 개발자가 함께 작업할 때 한 개발자의 변경사항이 다른 개발자의 작업과 충돌하거나 전체 애플리케이션에 문제를 일으킬 수 있는데, CI를 거치면 이러한 문제를 병합 이전에 미리 파악할 수 있음
CD는 CI 이후 단계를 자동화, 애플리케이션의 변경사항을 production 환경으로 배포하는 과정을 자동화한 것.
Continuous Delivery는 배포 가능한 상태로 준비하는 과정까지는 자동화하고 실제 배포는 사람의 승인을 거쳐 수동을 진행.
반면, Continuous Deployment는 production 환경에 배포하는 과정까지 모드 자동화
현업에선 Github Actions, Jenkins, GitLab CI 등의 도구를 사용하여 CI/CD 파이프라인을 구축