Search
📱

CI

날짜
2024/07/23
파트
안드로이드
서기
블로그 업로드 여부

CI툴 선택 기준

CI를 처음 해보는 관계로 러닝커브를 줄이고자 가장 범용적으로 사용되는 툴을 선택하고자 하였다.
2023년 가장 많이 사용되는 CI 도구 옵션 17개를 조사한것에 따르면 Jenkins와 GitHub Actions 그리고 GitLabCI를 가장 많이 사용한 것을 볼 수 있다.

지난 1년간의 CI툴 관심도 변화(구글트렌드)

평균
Jenkins : 74
GitHub Action : 22
GitLab CI/CD : 1
TeamCity : 2
Atlassian Bamboo : 0
구글트렌드를 통해 지난 위 5가지의 CI/C툴을 비교해본 결과 지난 1년간의 관심도는 Jenkins와 GitHub Actions가 압도적인 것을 볼 수 있다.
따라서 Jenkins와 GitHub Actions를 최종 후보로 선정하였고 이 둘을 비교해보았다.

CI툴 비교

Jenkins
GitHub Actions
서버 설치가 필요자체 서버에서 사용하기 때문에 비교적 성능 좋음
클라우드에서 동작하므로 어떤 설치도 필요 없음클라우드를 통해서 동작하기 때문에 비교적 성능 낮음
작업이 동기적으로 일어나므로,제품을 시장까지 배포하는 데에 더 많은 시간이 소요됨
비동기 CI/CD 가능함
계정과 트리거에 기반하고 있으며GitHub 이벤트를 처리할 수 없음
모든 GitHub 이벤트에 대해 GitHub Actions을 제공하고 있으며많은 언어와 프레임워크도 지원함
환경 호환성을 위해 Docker 이미지에서 동작해야 함
모든 환경에 호환됨
캐싱 기법을 위해 플러그인을 제공하고 있음.
캐싱이 필요하다면 직접 캐싱 메커니즘을 작성해야 함
공유할 수 있는 기능을 제공하고 있지 않음
GitHub 마켓플레이스를 통해 공유할 수 있음
우선 CI툴로 GitHub Actions를 선택하였다. 이유는 다음과 같다.
우리가 진행하는 프로젝트는 규모가 크지 않으므로 높은 성능을 필요로 하지 않는다.
Jenkins는 많이 사용되는 만큼 많은 레퍼런스들이 있지만 설정이 복잡하고 우리 프로젝트에 맞는 레퍼런스를 찾기에 쉽지 않다. 이에 비교하여 GitHub Actions는 내가 사용 할 비슷한 워크 플로우를 찾기 쉽다.
Jenkins를 사용할 시 별도의 서버를 두어야 하므로 서버를 구축하는 오버헤드와 비용이 발생한다.
GitHub Actions를 사용할 경우 관리 포인트가 GitHub한군데 이므로 관리에 용이하다.
[참고 자료]