220719_TIL : CI/CD

백승한·2022년 7월 19일
0

CI/CD

어플리케이션 개발 단계부터 배포 때까지 모든 단계들을 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것

CI (Continuous Integration) 지속적인 통합

버그 수정이나 새로 만드는 기능들이 매일 Repo에 주기적으로 빌드되고 테스트가 되어서, 마지막에 merge되는 것

  1. 최대한 작은 단위로 나누어서 개발하고 통합하는 것이 중요

  2. 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화
    주기적으로 머지된 코드의 변경사항이 자동으로 빌드가 되어서, 코드 변경 사항 이후에도 빌드가 성공적으로 되었는지 확인이 되어야한다. 변경 이후 기존 시스템에 다른 버그를 초래하지는 않았는지 자동으로 테스트까지 되어야한다.

CD (Continoous Delivery/Deployment) 지속적인 제공/배포

CI 단계를 거쳤다면, 배포(Release)할 준비 과정을 거친다. 준비 과정 중에 준비 상태를 개발자 혹은 검증팀이 검증을 한 다음에 배포결정이 이루어지고나서! 수동적으로 배포 하는 것을 Continoous Delivery라고 한다.

배포 준비가 되자마자 자동으로 사용자에게 배포할 수 있도록 자동화 해놓는 것이 Continoous Deployment

최종단계가 자동화냐 아니냐에 따라 나뉘어진다.

회사마다 어느정도의 / 얼마만큼의 자동화를 했느냐가 다르기 때문에 CI/CD라고 해서 모든 회사가 같은 프로세스를 갖는 것이 아니다.

CI/CD 파이프라인 정리

개발자가 작은 단위로 기능을 나누어서 주기적으로 Main Repo에 머지를 하면, 자동으로 빌드를 하고 테스트 과정을 거쳐서 Release 준비를 한다. 여기서 수동적(Delivery)으로 또는 자동적(Deployment)으로 최종 배포를 거치게 된다.

  • CI/CD를 위한 다양한 Tool 소개

참고자료 - 드림코딩

profile
방문해주셔서 감사합니다🙂

0개의 댓글