CI/CD의 개념

1. 지속적 통합
CI(Continuous Integration, 지속적 통합)는 자동화된 빌드/테스트를 통해 주기적으로 코드의 변경 사항을 병합하는 딘계를 말한다. 코드의 변경 사항이 공유 브랜치로 병합되면 자동으로 테스트(단위 테스트, 통합 테스트 등)를 실행해서 변경 사항이 제대로 적용되었는지 확인한다. CI를 통해 개발자들은 코드 변경 사항을 쉽고 안전하게 공유 브랜치로 병합할 수 있다. 따라서 개발 생산성을 높이면서도 코드 품질 유지가 가능하다.
2. 지속적 전달
CD(Continuous Delivery, 지속적 전달)는 변경 사항을 프로덕션에 릴리즈하기 위한 코드 변경이 자동으로 준비되는 프로세스를 말한다. 지속적 전달은 CI의 확장으로 프로덕션에 배포하기 전에 명시적인 승인 과정을 거친다. 승인 과정에는 다양한 테스트(UI 테스트, 로드 테스트 등)가 포함된다.
3. 지속적 배포
CD(Continuous Deployment, 지속적 배포)는 변경 사항을 저장소에서 프로덕션까지 자동으로 릴리즈하는 프로세스를 가리킨다. 지속적 전달과 달리 전체 릴리즈 프로세스를 자동화하므로 코드 변경 사항이 모든 필수 테스트를 통과하는 즉시 프로덕션으로 배포된다. 변경 사항이 자동으로 프로덕션 환경에 적용되므로 사용자 피드백을 지속적으로 수신하고 통합할 수 있다는 장점이 있다. 다만 적절한 선행 테스트가 부족한 경우 서비스가 치명적인 버그에 노출될 수 있으므로 주의가 필요하다.
참고 자료
Last updated