IT지식/Computer Science

CI/CD 파이프라인 구축이란?

맨땅에헤딩개발자 2024. 12. 28. 11:52

 

흔히들 CI/CD를 통해 파이프라인을 구축하여 지속적으로 배포를 해야한다. 라는 말을 많이 들어보셨을 겁니다.

도대체 CI/CD란 무엇인가에 대해서 알아봅시다.

 

 

 

 

가장 먼저 CI/CD를 사용하는 이유에 대해서 알아봅시다.

만약 실제 서비스중인 어플리케이션이 있다고 해봅시다. 개발자1이라는 사람이 코드를 수정 후 충분한 테스트를 하지 않고

현재 운영하는 서버에 다이렉트로 커밋을 했는데 오류가 발생해 서버가 내려가는 사태가 발생할 수 있습니다.

이러한 상황을 방지하기 위해 CI/CD 파이프라인 구축을 통한 운영서버에 지속적 통합 및 배포가 이루어져야합니다.

 

 

CI(Continuous Integration)란?

 

지속적으로 애플리케이션의 새로운 코드들이 테스트 및 빌드가 되어 통합 레퍼지토리에 저장되는 것을 의미합니다.

 

 

개발자1이 수정한 코드를 개발서버에 커밋 후 개발자2가 땡겨받아 수정을 이어나가거나 또는

개발자1과 개발자2가 같은 부분을 수정하여 충돌이 나는 경우 MERGE를 통해 협의 후 코드를 배포할 수 있습니다.

 

 

CD(Continuous Delivery/Deployment)란?

 

CI를 통해 빌드 및 테스트가 완료되어 배포될 준비를 끝마친 애플리케이션을 개발자가 수동(Delivery) 또는

자동(Deployment)으로 운영서버에 배포를 진행하는 것을 뜻합니다.

 

 

 

 

 

CI/CD의 대표적 툴

 

- jenkins

  무료(단, 별도의 서버가 필요함)

  다양한 플러그인, IDE 지원

  규모가 작은 프로젝트의 경우 리소스 낭비가 발생할 수 있음

 

 

- githubActions

   복잡한 과정없이 바로 깃허브에서 사용할 수 있음

   깃허브의 모든 이벤트에 대한 작업을 제공하고 다양한 언어와 프레임워크를 지원함

   public은 무료 private 저장소의 경우 매월 3000분 무료(이후 유료 전환)

   

 

 

CI/CD 파이프라인을 통한 지속적 빌드 및 배포를 통해 얻을 수 있는 이점

 

- 개발자들 사이에 코드가 충돌나는 것을 막을 수 있음

- MERGE를 통해 코드검토가 수월해짐

- 중간에 개발서버를 두어 운영서버에 다이렉트로 문제발생이 되는 것을 방지할 수 있음