
지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment & Delivery)
코드 변경 사항을 빠르게 테스트하고 배포하기 위한 자동화된 프로세스
CI(Continuous integration)
- 작업한 코드를 주기적으로 통합해 코드 품질을 지속적으로 검증하는 프로세스
- 주요 요소
- 코드 병합
- 작성한 코드를 자주 병합해 충돌을 최소화
- 자동화된 빌드 및 테스트 실행
- 자동화된 테스트
- 단위 테스트, 통합 테스트 등을 통해 코드 품질 보장
- 빌드 자동화
- 장점
- 충돌을 조기에 발견
- 변경으로 인한 버그를 신속하게 탐지
CD(Continuoust Delployment & Delivery)
- Continuoust Delivery
- 코드 테스트 후, 운영 환경에 배포할 준비
- 실제 배포는 수동으로 수행하나, 단계는 자동화되어있음
- Continuoust Deployment
- 테스트를 통과한 코드를 자동으로 운영 환경에 배포함
- 배포 주기를 짧게 해 사용자에게 빠르게 기능 제공
- 주요 요소
- 자동화된 배포
- 스테이징 환경, 프로덕션 환경으로의 배포 자동화
- 모니터링
- 롤백
- 장점
- 사용자에게 빠르게 새로운 기능 제공
- 배포로 인한 위험 및 비용 감소
CI/CD 주요 단계
코드 커밋 → 빌드 → 테스트 → 배포