하나씩 알아가기

CI(Continuous Integration)와 CD(Continuous Delivery/Deploy) 본문

CI(Continuous Integration)와 CD(Continuous Delivery/Deploy)

clearwater 2021. 2. 4. 23:56
728x90
반응형

CI(Continuous Integration, 지속적 통합)

CI는 빌드와 테스트를 자동화해서 공유 저장소에 병합시키는 프로세스를 뜻합니다. git과 같은 버전관리 시스템을 사용할 때 여러명의 개발자가 하나의 공유 저장소를 사용하는 경우가 많습니다. 이렇게 되면 새로운 코드의 변경 사항이 저장소에 통합되지 않을 경우 서로 충돌할 수 있습니다. 따라서 빌드/테스트 자동화로부터 코드의 일관성(Consistency)을 제공하기 때문에 지속적으로 통합한다는 용어를 사용하는 것입니다. CI 도구로는 Jenkins, TravisCI 등이 있습니다.

예시)

  • 개발자는 자신의 로컬에서 코드를 수정하고 github에 push한다
  • CI 도구에서 변경된 코드에 대한 빌드와 테스트를 수행하고 결과를 피드백 해준다

 

CD(Continuous Delivery/Deploy, 지속적 전달/배포)

CD는 CI의 빌드/테스트를 통해서 정상적으로 수행됨을 확인하면 이는 배포를 수동으로 하느냐 자동으로 하느냐에 따라 2가지로 나뉩니다.

  • 지속적 전달 : 프로덕션 배포를 위한 상태가 되고 배포 자체는 수동으로 실행합니다.
    • 개발팀과 비즈니스팀간의 커뮤니케이션 부족 문제를 해결합니다.
  • 지속적 배포 : 프로덕션까지 자동으로 배포합니다.
    • 어플리케이션의 제공 속도를 증가시킵니다.

CD를 위한 도구로는 AWS Code Deploy 등이 있습니다.

예시) CI 예시에서 CI가 정상적으로 수행되고 나면 빌드된 파일을 CD에 전달한다. CD에서는 빌드가 완료된 파일을 받아서 전처리/후처리 등을 수행한다.

 

참고 및 출처

github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/frontend/ci-cd.md

 

baeharam/Must-Know-About-Frontend

:mortar_board: 취준생이라면 반드시 알아야 하는 프론트엔드 관련 지식들. Contribute to baeharam/Must-Know-About-Frontend development by creating an account on GitHub.

github.com

jhleed.tistory.com/130

 

CI(Continuous Integration), CD(Continuous Delivery / Deployment)에 대해 알아보자.

웹 서비스를 개발/운영하다 보면 CI 와 CD라는 말을 자주 듣게 된다. 보통 CI 와 CD 를 묶어서 이야기하는 경우가 많아서 많은 사람들이(이전에 내가 그랬듯이) 두 개념을 종종 혼동하곤 한다. 이 포

jhleed.tistory.com

www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment

 

Continuous integration vs. continuous delivery vs. continuous deployment

CI is a practice that makes preparing for a release easier. CD may refer to "delivery" or "deployment," which are similar but not quite the same.

www.atlassian.com

 

728x90
반응형