본문 바로가기
프로젝트

GitHub Actions vs Jenkins

by son_i 2024. 4. 23.
728x90

개인 프로젝트의 CI/CD를 적용하기 위해 tool들을 조사해보았다.

 

CI / CD 기본 개념 (tistory.com)

 

CI / CD 기본 개념

CI (Continuous Integration) : 지속적인 통합 -> 빌드와 테스트 자동화 모든 개발이 끝난 후 코드 품질을 관리하는 고전적인 방식의 단점을 해소하기 위해 나타난 개념 새로운 코드 변경 사항이 정기적

soni-developer.tistory.com

 

GitHub Actions와 Jenkins의 자료를 가장 많이 찾아볼 수 있었다.

그래서 이 두 개의 차이점을 비교해서 어떤 것을 적용할지 고민해보았다.

 

Jenkins
자유도 + 유연성
GitHub Actions
설정 간편
서버 설치 필요 클라우드에서 동작, 어떤 설치도 필요 없음.
작업이 동기적으로 일어나서
제품을 시장 배포시까지 더 많은 시간 소요
비동기 (작업의 완료에 상관없이 다음 작업 실행)
CI / CD 가능
계정과 트리거 기반으로 동작하며 
GitHub 이벤트는 처리 불가
모든 GitHub 이벤틑에 대해 GitHub Actions를 제공하고 있으며 많은 언어와 프레임워크 지원
환경 호환성을 위해 Docker 이미지에서 동작. 모든 환경에 호환.
캐싱 기법을 위한 플러그인 제공 캐싱 필요하면 직접 캐싱 메커니즘을 작성해야함.
공유 기능 제공하지 않음. GitHub 마켓 플레이스 통해 공유 가능.

> Jenkins는 전세계 사람들이 이용하고 유명해서 문서도 다양.

하지만 호스팅을 직접 A-Z까지 해야해서 관련된 모든 문서를 관리해야하는 부분과 이로인한 비용 발생.

 

규모가 작은 프로젝트에서 설정하는데 많은 리소스가 발생. github actions가 좋음.

규모가 클수록 GitHub Actions보다 Jenkins 추천.

 

GitHub Actions는 GitHub에서 제공하는 완전 관리형 서비스이므로 이를 실행하기 ㅜ이ㅐ 인프라를 확장하고 운영하는 방법을 알 필요가 없다.

 

Jenkins보다 GitHub Actions의 최대 장점은 설정이 쉽다는 것. GitHub 작업은 클라우드에서 작동, 러너라고 하는 로컬에서 실행할 수 도 이음. 반대로 jenkins에는 공식 관리 서비스 제품이 없음.

 

=> Jenkins 서버에는 설치가 필요하지만 GitHub Actions에는 설치가 필요하지 않음.

설정 프로세스가 GitHub Actions에서 훨씬 편리함. GitHub Actions는 일련의 도커 실행이라 docker build하고 docker run 하면 돼서 실행 및 디버그가 매우 쉬움.

 

따라서 나는 GItHub Actions로 CI/CD를 먼저 구축해보려고 한다.