CI
Continuous Integration
- 지속적인 통합
- 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 repo에 통합되는 것
- 목표: 버그를 신속하게 찾아 해결하고, 소프트웨어의 품질을 개선하고, 새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것
CI 조건
1. 형상관리 툴 사용
- 다수의 개발자가 형상관리 툴(git, svn)을 공유하여 사용하는 환경 필요
2. MSA(Micro Service Architecture) 환경
- MSA: 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태
- MAS 환경에서는 대부분 애자일 방법론이 적용되어 기능 추가가 빈번하게 발생
(Agile: 소규모 기능 단위로 빠르게 개발 & 적용을 반복하는 개발 방법론)
CD
Continuous Delivery & Continuous Deployment
- 지속적인 서비스 제공 / 지속적인 배포
- Continuous Delivery: 공유 repository로 자동으로 release
- Continuous Deployment: Production 레벨까지 자동으로 deploy하는 것
- CI는새로운 소스코드의 빌드, 테스트, 병합까지를 의미하고
CD는 개발자의 변경사항이 repository를 넘어 고객의 프로덕션 환경까지 릴리즈 되는 것을 의미한다.