“지식에 대한 투자는 최고의 보상을 가져다줄 것이다.” - '벤자민 프랭클린'
Jenkins
Jenkins 탄생
창시자는 키와구치 코스케로 알려져 있습니다. 소프트웨어의 CI/CD를 위해서 만들어진 툴입니다. 처음에는 Hudson 이름을 가지고 시작된 프로젝트였지만, 프로젝트 기여자들과 Oracle의 상표권 충돌 이후, 2011년에 Jenkins라는 이름으로 확정되었다고 합니다.
장점
- CI/CD 중에서 많은 사람들이 사용함으로 커뮤니케이션이나 정보가 많습니다.
- GitHub Actions보다 커스터마이징이 다양합니다.
단점
- 공부의 양 많음 : 러닝 커브(Learning Curve)가 발생할 수 있습니다. 궁금한 나머지, Chat-GPT에 젠킨스를 실전에 사용하기 위해서 공부를 며칠 동안 공부 해야 할까 물어봤는데, 적게는 며칠에서 길게는 몇 달이라고 하네요.

Jenkins를 사용하는 데 필요한 공부워크 플로우(Workflow)
일(Jobs)
액션(Actions)
이벤트 트리거(Event Triggers)
환경설정(Environment Variables) 등등의 공부가 필요합니다.
- 플러그인 관리 까다로움 : 플러그인 설치, 관리가 어렵습니다. Jenkins plugin만 검색해도 연관 검색어에 Jenkins 플러그인 설치 오류가 바로 나올 정도로 Jenkins 버전에 따라 플러그인 버전을 맞춰줘야 합니다.

GitHub Actions
Git Actions 탄생
GitHub Actions은 2018년 GitHub Universe 컨퍼런스에서 처음 발표된 GitHub의 개발자들이 만든 CI/CD 툴입니다. 개발자들이 많이 사용하는 형상 관리 툴인 Git과 연동이 쉬운 특징을 가지고 있습니다.
장점
- Git과의 연결 : GitHub에서 만든 것으로 코드 관리를 하면서 다른 연결 필요 없이 자동적으로 Git과의 이벤트에 대한 작업을 제공합니다.
- 구축의 편리성 : workflow을 공유할 수 있어서, 구축이 간편합니다.
단점
- 가격 : public 저장소는 무료로 사용 가능하지만, private 저장소에는 한 달에 500MB 저장 공간과, 2000분의 실행 시간을 무료로 사용할 수 있습니다.
- 커뮤니티 상대적 부족 : 2005년부터 만들어진 Jenkins보다 커뮤니티와 정보가 부족한 편입니다.
Jenkins VS Git Actions 차이점
| Feature | GitHub Actions | Jenkins |
|---|---|---|
| 서버 | GitHub로 호스팅 | 별도의 서버 필요 |
| 가격 | public은 무료, private은 비용 발생 | Open Source로 무료 |
| 구성 | YAML | 대시보드 |
| 공유 | GitHub 마켓 플레이스를 통해 공유 가능 | 공유 불가 |
| 유연성 | GitHub의 특징과 인프라에 제한 | 커스터마이징 가능 |
| 정보 | Jenkins보다 최신으로, 커뮤니티나 정보가 떨어짐 | 정보가 많음 |
| 사용성 | 비교적 사용이 쉬움 | 러닝 커브 발생 |
| GitHub | 모든 GitHub 이벤트에 대한 작업을 제공 | GitHub 플러그인 필요 |
그래서 어떤 걸 적용?
개인적으로 대규모로 진행되는 프로젝트에서는 오픈 소스며 무료로 사용할 수 있고, 커뮤니티가 잘 구축되어 있는 Jenkins을 사용하는 것이 좋을 것 같습니다.
반대로 소규모로 진행되며, 적용해야 할 시간이 적은 경우에는 GitHub Actions을 사용하는 것이 좋을 것 같다는 생각이 듭니다.
마치며
작은 프로젝트를 하다가 외주를 받아 큰 프로젝트를 하게 되었는 데 로컬에서 빌드하고 SSH로 로그인하고 실서버에 접속해서 빌드 파일을 옮긴 후, 실행하던 파일을 종료하고 다시 빌드하는 과정이 반복되니 귀찮게 느껴졌던 것 같습니다.
그러던 중, 동료가 CI/CD를 적용하는 게 어떻냐고 해서 알아보는 중에, Jenkins와 GitHub Actions가 대표적인 것으로 알려져 있어서 둘 중 우리 회사에 알맞은 게 뭐인지 고민하면서 글로 작성하기로 결정했습니다.
아직 개발자로서 부족한 점이 많고 배울 것이 많이 남았다고 생각이 들었습니다. 다음에는 Jenkins와 GitHub Actions 각각의 특징과 사용법에 대해서 공부해야겠습니다.
💡 더 성장하는 개발자가 될 수 있도록, 틀린 부분을 알려주신다면 감사하겠습니다.
'서버' 카테고리의 다른 글
| Flyway 적용 과정 (1) | 2024.12.03 |
|---|---|
| CI/CD란? (0) | 2023.10.04 |
| [Nginx] Windows / Linux 명령어 (0) | 2022.06.04 |
| 외부접근 가능한 port 열기 (0) | 2022.04.14 |