CI/CD

kingmo·2022년 5월 6일
0

배포

목록 보기
3/3

CI (Continuous Integration)

CI는 Continuous Integration 즉, 지속적인 통합이라는 의미로
어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어
공유 레포지토리에 통합 하는 것을 의미한다.

CI가 필요한 환경

다수의 개발자가 Git과 같은 형상관리 툴을 공유하여 사용하는 환경
지속적으로 서비스를 해야하는 어플리케이션은 기능을 추가할 때마다
commit을 날려 Repository에 버전 업데이트를 실시해 줘야한다.

여기서 협업을 하는 개발자가 많을 수록 Repository에는
수많은 commit이 쌓이게 되는데 그럴 때마다 기능별로
빌드 / 테스트 / Merge 하려면 상당히 번거롭다.

이런 상황에서 자동화된 빌드, 테스트는 원천 소스코드의
충돌 등을 방어하는 이점을 제공한다.

궁극적으로 이러한 CI의 핵심 목표는
버그를 신속하게 찾아 해결하고, 소프트웨어의 품질을 개선하면서
새로운 업데이트의 검증 및 릴리즈 시간을 단축시키는 것에 있다.

CD (Continous Delivery or Continous Depolyment)

지속적인 서비스 제공 혹은 지속적인 배포라는 의미로
CD는 Continous Delivery 혹은 Continous Depolyment 의 축약어 이다.
해석하자면, 지속적인 서비스 제공 혹은 지속적인 배포라는 의미이다.

Continous Delivery는 공유 레포지토리로 자동으로 Release하는 것을 의미하고,
Continous Depolyment는 Production 레벨까지 자동으로 deploy하는 것을 의미한다.

따라서 CI가 새로운 소스코드의 빌드, 테스트, 병합까지를 의미하였다면,
CD는 개발자의 변경 사항이 레포지토리를 넘어, 고객의 Production 환경까지 릴리즈 되는 것을 의미한다.

profile
인간 js엔진

0개의 댓글