CI/CD

정민준·2022년 11월 17일
0

CS공부

목록 보기
4/9

CI?

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

CI 순서
1. 개발자가 구현한 코드를 기존 코드와 병합한다.
2. 병합된 코드가 올바르게 동작하고 빌드되는지 검증한다.
3. 테스트 결과 문제가 있다면 수정하고 다시 1로 돌아간다. 문제가 없다면 배포를 진행한다.

CD?

CD(Continuous Delivery/Deploy, 지속적 전달/배포)
CD는 CI의 빌드/테스트를 통해서 정상적으로 수행됨을 확인하면 이는 배포를 수동으로 하느냐 자동으로 하느냐에 따라 2가지로 나뉜다.

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

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

참조: https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/

profile
머리 박고 개발공부중,,,

0개의 댓글