CI (Continuous Integration, 지속적 통합)
CI는 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경사항을 중앙 레포지토리에 정기적으로 병합하는 방식입니다. 여러명의 개발자가 어플리케이션의 각기다른 기능을 동시에 작업하는 것을 목표로 합니다.
물론 기존에도 github과 같이 같은 레포지토리에 여러명이 각기 다른 어플리케이션의 기능을 만들다가 조직이 정한 한날에 모두모여 병합을 시도하면 각자 기능의 변경사항에 따라 충돌할 수 있습니다. CI는 빌드 및 테스트를 자동화 해주어 이러한 충돌을 방지해줍니다.
CI의 동작예시
- 개발자는 자신의 로컬에서 코드를 수정하고 github에 push를 했다.
- CI도구에서 변경된 코드에 대한 빌드와 테스트를 수행하고 그결과를 피드백 해준다.
빌드 & 테스트에 이상이 있는 경우 → 실패 : 통합불가
빌드 & 테스트에 이상이 없는 경우 → 성공 : 통합가능
CI의 이점
- 개발 생산성 향상
- 지속적 통합을 사용하면 수동작업에 대한 부담을 덜고 오류 및 버그를 줄여 팀 생산성을 높인다.
- 버그의 조기발견과 해결
- 테스트를 빈번하게 수행함으로서 버그를 조기발견 할수 있다.
- 업데이트를 더 빠르게 제공
CD(Continuous Delivery/Deploy, 지속적 전달/배포)
CD는 배포를 수동으로 하느냐 자동으로하느냐에 다라 2가지로 나뉜다.
- 지속적 전달 : 프로덕션 배포를 위한 상태가 되고 배포 자체는 수동으로 실행한다.
- 개발팀과 비즈니스팀간의 커뮤니케이션 부족 문제를 해결한다.
- 지속적 배포 : 프로덕션까지 자동으로 배포한다.
- 어플리케이션의 제공 속도를 증가시킨다.
CI/CD를 위한 도구로는 Jenkins, TravisCI등이 있다.
참고
aws.amazon.com/ko/devops/continuous-integration/
www.redhat.com/ko/topics/devops/what-is-ci-cd
github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/frontend/ci-cd.md
'FrontEnd' 카테고리의 다른 글
Next js - [window is undefined 에러] (0) | 2021.02.27 |
---|---|
CSS 애니메이션 & JS 애니메이션 (0) | 2021.01.14 |
모듈 번들러와 트랜스파일러 (0) | 2021.01.14 |
BOM & DOM (0) | 2021.01.13 |
자바스크립트 엔진이 코드를 실행하는 과정 (0) | 2021.01.13 |