CI/CD는 **Continuous Integration(지속적 통합)**과 **Continuous Delivery/Deployment(지속적 전달/배포)**의 약자로, 소프트웨어의 build, 테스트, deploy를 자동화하는 실천 방법입니다. 그 목표는 변경 사항을 자주, 안정적으로, 빠르게 릴리스하는 것이며, 자동화가 수작업의 오류가 발생하기 쉬운 프로세스를 대체합니다.
CI — Continuous Integration
CONTINUOUS INTEGRATION: 개발자들이 코드를 공유 branch에 자주 merge하고, 각
변경 사항은 자동으로 build되고 테스트됩니다:
→ 모든 push/PR마다: 코드를 build + 테스트 실행 (자동으로)
→ 통합 문제와 버그를 일찍 발견 (몇 주 후가 아니라 즉시)
→ main branch를 항상 동작하는 상태로 유지
→ 잦은 통합 + 자동 검증 = 더 적고, 더 작고, 고치기 쉬운 문제.
CD — Continuous Delivery / Deployment
CONTINUOUS DELIVERY → 코드는 항상 DEPLOY 가능한 상태; deploy는 자동화되어 있지만
수동으로 트리거됨 (한 번의 클릭으로 릴리스)
CONTINUOUS DEPLOYMENT → pipeline을 통과한 모든 변경 사항은 자동으로 production에
deploy됨 (수동 단계 없음) — 완전히 자동화된 릴리스
→ 둘 다 릴리스 프로세스를 자동화하여 빠르고 안정적인 deploy를 제공.
