CI/CD는 소프트웨어 개발 및 배포 프로세스를 자동화하고 최적화하는 접근 방식을 나타내는 용어이다.
CI/CD는 Continuous Integration (지속적 통합) 및 Continuous Delivery/Deployment (지속적 전달/배포)의 약자이다.
개발자들이 자주 코드를 중앙 저장소 (예: git 저장소)에 병합 (통합) 하는 프로세스를 말한다.
CI의 주요 목표는 통합 오류를 조기에 발견하고 수정하기 위해 코드 변경 사항을 자주 테스트하는 것이다.
CI 프로세스는 코드가 저장소에 푸시될 때마다 자동으로 테스트를 실행하는 테스트 자동화 도구를 사용한다.
이로 인해 오류가 발견되면 즉시 수정할 수 있다.
지속적 전달은 소프트웨어를 프로덕션 준비 상태로 유지하며, 실제로 프로덕션에 배포하기 전에 수동 승인이 필요하다.
이 접근 방식은 배포 프로세스를 자동화하여 프로덕션 환경으로의 배포를 더욱 신속하고 안전하게 만든다.
지속적 배포는 Continuous Delivery의 연장선으로, 코드 변경 사항을 자동으로 프로덕션 환경에 배포하는 것을 의미한다.
수동 승인 없이 코드 변경 사항이 저장소에 푸시되자마자 자동으로 프로덕션에 배포된다.
품질 향상: 자주 테스트하고 통합함으로써 오류를 조기에 발견하고 수정할 수 있다.
속도 향상: 자동화된 배포 파이프라인을 사용하면 새로운 코드나 기능을 더 빠르게 사용자에게 제공할 수 있다.
생산성 향상: 개발자는 코드와 관련된 문제를 더 빠르게 해결하고 새로운 기능 개발에 집중할 수 있다.
신뢰성 향상: 자동화된 테스트와 배포 프로세스는 일관성 있게 실행되므로 배포 프로세스의 신뢰성이 향상된다.
CI/CD는 DevOps 문화와 밀접하게 연결되어 있으며, 빠르게 변화하는 시장 환경에서 고객의 요구사항에 신속하게 대응하기 위한 핵심 전략이다.