CI/CD 툴 결정
1. 자동화 툴 선정 기준
서버와 마찬가지로 Gregori 서비스의 요구 조건을 기준으로 자동화 툴을 결정했다. 결정 기준은 다음과 같으며 번호가 낮을 수록 중요도가 높다.
무료
시장에서 검증된 서비스
애플리케이션 호환성
다양한 요구사항 충족
2. 자동화 툴 선택

위 그림처럼 JetBrains는 매년 개발자 설문 조사를 실시하고 결과를 공개한다. 표본의 원시 데이터와 방법론을 함께 공개하고 있어 다른 자료에 비해 신뢰성이 높으며 참고 자료로 사용할 만 하다고 생각했다. JetBrains의 설문조사를 참고해서 만든 2017년 ~ 2022년 자동화 툴 순위 표는 다음과 같다.

최근 몇 년은 순위권에 들지 못하거나, Custom tool이거나, 타사 서비스의 일부인 자동화 툴(Gitlab CI 등)은 제외했다. 결과적으로 살펴볼 자동화 툴은 다음과 같다.
Jenkins(1.17위)
GitHub Actions(2.33위)
Travis CI(3.33위)
CircleCI(5위)
무료인가?
Jenkins: 오픈 소스 프로젝트라서 무료
GitHub Actions: 공개 저장소(public repository)는 무료
Travis CI: 무료 평가판 플랜이 있으며 10,000개의 크레딧이 소진되면 요금제 가입 필요
CircleCI: 무료 플랜이 있으며 최대 6,000분의 빌드 시간 및 활성 사용자 5명
금액으로 보면 Jenkins가 제일 합리적이다. Gregori가 공개 저장소인 만큼 GitHub Actions도 고려해봄직 하다. 그러나 Travis CI와 CircleCI는 제한적인 무료 요금제라는 게 단점이다.
시장에서 검증된 서비스인가?
JetBrains의 2021년, 2022년 설문에 따르면 개인은 GitHub Actions을 사용하고 회사는 Jenkins를 사용했다는 걸 알 수 있다. 일반적으로 회사 서비스는 비공개 프로젝트이고 이전하는데 비용이 발생한다. 따라서 GitHub Actions을 새로 사용하거나 이전하기보다 Jenkins를 사용하는 비율이 높은 걸로 추측된다. 다만 표본의 편향을 감안하더라도 GitHub Actions이 Jenkins보다 관리와 활용이 쉬워 점유율이 꾸준히 상승하는 것으로 판단된다(link). Travis CI는 유료 정책에 비례한 서비스 품질을 느끼지 못해 계속 점유율이 떨어지는 것으로 보인다. 또한 CircleCI는 무료 플랜이 있으나 유료 플랜이 다른 무료 서비스보다 양질의 경험을 제공하지 못하는 걸로 판단된다.
애플리케이션 호환성
Jenkins: Gradle Plugin을 지원
GitHub Actions: Gradle Build Actions 제공
Travis CI: gradle-site-plugin 제공
CircleCI: gradle plugin 제공
CI/CD 도구이고 Spring이 대중적인 프레임워크인 만큼 대부분의 자동화 툴이 지원한다.
다양한 요구사항 충족
Jenkins: 거대한 생태계를 갖추고 있어 환경에 맞게 커스터마이징 가능
Hudson에서 분기되어 2011년 출시
437,000,000개의 검색 결과
GitHub Actions: GitHub라는 강력한 형상관리 툴과 융합해서 편하게 사용 가능
2020년에 출시
256,000,000개의 검색 결과
Travis CI: GitHub와의 통합해서 기능 제공
2011년에 출시
24,300,000개의 검색 결과
CircleCI: 플랜에 따라 기능 제공
2011년에 출시
5,290,000개의 검색 결과
구글 검색 결과가 모든 걸 말해주진 않지만, 서비스의 관심도와 정보의 양을 가늠할 수 있다. Jenkins는 오래된 만큼 검색 결과도 많으며 생태계도 잘 구축되어 있다. 두드러지는 건 GitHub Actions인데 출시 연도에 비해서 뜨거운 관심을 받고 있다. 다양한 요구사항을 충족하기 위해서는 생태계가 잘 구성되어야 한다. 게시글도 그 일부분이라고 생각하면 Jenkins와 GitHub Actions가 합격점이라고 볼 수 있다.
종합 평가
Jenkins
- 2011년 서비스 시작 - 무료(오픈소스) - 1.17위(회사 1위) - gradle 플러그인 지원 - 437,000,000 검색 결과
◎
◎
○
◎
GitHub Actions
- 2020년 서비스 시작 - 공개 저장소 무료 - 2.33위(개인 1위) - Gradle Build Actions 제공 - 256,000,000 검색 결과
○
◎
○
◎
Travis CI
- 2011년 서비스 시작 - 무료 평가판(1만 크레딧) - 3.33위 - gradle-site-plugin 제공 - 24,300,000 검색 결과
✕
△
○
✕
CircleCI
- 2011년 서비스 시작 - 무료 플랜(시간 및 사용자 제한) - 5위 - gradle plugin 제공 - 5,290,000 검색 결과
△
△
○
✕
Jenkins와 GitHub Actions 둘 다 높은 평가를 받았다. 차이점이 있는 건 플랜 부분인데 Gregori는 공개 저장소라서 무료라고 볼 수 있다. 확장성에서 Jenkins를 고를지 편의성에서 GitHub Actions를 고를지가 주요 포인트였다. 지금 당장의 확장성은 Jenkins가 앞서고 있으나 성장세와 편의성을 고려하면 GitHub Actions이 더 잠재력이 있다고 판단했으므로(작년에 1위를 하기도 했고) Gregori 프로젝트에서는 GitHub Actions를 사용하기로 했다.
참고 자료
Last updated