CI와 CD

CI (Continuous Integration, 지속적 통합)

CI는 빌드와 테스트를 자동화해서 공유 저장소에 병합시키는 프로세스를 말합니다. git과 같은 버전관리 시스템을 사용할 때 여러 명의 개발자가 하나의 공유 저장소를 사용하는 경우가 많습니다. 이렇게 되면 새로운 코드의 변경 사항이 저장소에 통합되지 않을 경우 서로 충돌할 수 있습니다.

따라서 빌드/테스트 자동화부터 코드의 일관성(Consistency)을 제공하기 때문에 지속적으로 통합한다는 용어를 사용하는 것입니다.


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

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

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

CI/CD의 대표적인 서비스로 Jenkins, Travis CI, Circle CI 등이 있습니다.

이미지 출처


참고