CI/CD
애플리케이션 배포 과정을 자동화하여 더 짧은 주기로 고객에게 서비스를 제공하는 방식
CI(Continuous Integration) - 지속적 통합
: 개발자들이 코드 변경사항을 주기적으로 메인 브랜치에 병합하는 과정을 자동화한 것
코드 변경사항이 발생할 때마다 자동으로 빌드와 테스트를 수행하여 문제를 조기에 발견할 수 있음
CD(Continuous Delivery/Deployment) - 지속적 전달/배포
: 애플리케이션의 변경사항을 production 환경으로 배포하는 과정을 자동화 한 것 (CI 이후 단계를 자동화하는 것)
- Continuous Delivery : 배포 가능한 상태로 준비하는 과정까지는 자동화하고 실제 배포는 사람의 승인을 거쳐 수동으로 진행
- Continuous Deployment : production 환경에 배포하는 과정까지 모두 자동화
협업에서는 GitHub Actions, Jenkins, GitLab CI 등의 도구를 사용하여 CI/CD 파이프라인 구축
- 개발자가 PR을 올리면 자동으로 테스트/빌드 실행
- 테스트/빌드를 성공한 경우 메인 브랜치로의 머지 활성화
- 메인 브랜치 머지 시 production 환경으로 자동 배포
CI/CD 파이프라인
- 개발자가 코드를 작은 단위로 기능을 나누어서 주기적으로 메인 레포지토리에 merge
- 자동으로 빌드
- 테스트 과정
- 릴리즈 준비
- 수동적으로 또는 자동으로 최종 배포