CI
- Continuous Integration (지속적인 통합)
- 새로운 코드 변경 사항을 정기적으로 빌드 및 테스트 하여 공유 레포지토리에 통합하는 것
CI는 다수의 개발자가 형상관리 툴(Git, SVN)을 공유하여 사용하는 환경인 경우 개발자들의 commit 들이 레포지토리에 쌓이게 된다. 이때 자동화된 빌드와 테스트를 하여 원천 소스코드의 충돌 및 기능 충돌등을 방어하는 역할을 제공한다.
결국 CI는 자동화된 빌드와 테스트로 버그를 신속하게 찾아내어 소프트웨어의 품질을 개선하고 새로운 업테이트의 검증 및 릴리즈의 시간을 단축시키는 효과를 낸다.
CD
- Continuous Delivery(지속적인 서비스 제공) & Continuous Depolyment(지속적인 배포)
- Continuous Delivery 는 공유 레포지토리로 자동 Release 하는 것
- Continuous Deployment Production 레벨까지 자동으로 deploy 하는 것
- 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션 환경까지 릴리즈 되는 것
- 소프트웨어가 언제든지 신뢰 가능한 수준의 버전을 유지할 수 있도록 지원
서비스의 개발팀과 비즈니스팀 간의 커뮤니케이션 부족 문제를 해결해 배포가 될 때까지의 시간과 노력을 단축시키는 효과를 낸다.
참조
CI/CD 란 무엇인가