젠킨스 (소프트웨어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
젠킨스는 소프트웨어 빌드 자동화를 위한 오픈 소스 도구이다. 2004년 썬 마이크로시스템즈에서 허드슨이라는 이름으로 개발되었으며, 2011년 오라클과의 상표권 분쟁으로 인해 젠킨스로 이름이 변경되었다. 젠킨스는 다양한 플러그인을 통해 기능을 확장하며, 빌드 트리거, 플러그인, 보안 기능을 제공한다. 젠킨스 X는 쿠버네티스를 위한 소프트웨어 프로젝트로 발표되었다.
더 읽어볼만한 페이지
- 지속적 통합 - Travis CI
Travis CI는 소프트웨어 프로젝트의 지속적인 통합 및 제공을 위한 서비스로, `.travis.yml` 파일로 구성되며 GitHub와 연동하여 빌드를 실행하고 테스트 결과를 제공한다. - 지속적 통합 - 애저 데브옵스 서버
애저 데브옵스 서버는 팀 파운데이션 서버에서 시작하여 변경된 마이크로소프트의 온-프레미스 데브옵스 솔루션으로, 다중 계층 아키텍처를 기반으로 작업 항목, 소스 제어, 보고 기능, 팀 빌드, 릴리스 관리 등의 기능을 제공한다. - 컴파일 도구 - Libtool
Libtool은 다양한 유닉스 계열 운영 체제에서 정적 및 동적 라이브러리 생성을 관리하고, 운영 체제별 차이로 인한 소프트웨어 이식 문제를 해결하기 위해 GNU 빌드 시스템에서 사용되는 도구이다. - 컴파일 도구 - GNU 빌드 시스템
GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다. - 자바 개발 도구 - GNU 컴파일러 모음
GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다. - 자바 개발 도구 - J 샤프
J#은 마이크로소프트에서 개발한 .NET Framework 기반의 프로그래밍 언어로, 자바와 유사한 문법을 가지며 기존 자바 코드의 .NET 플랫폼 이전 및 .NET 언어와의 상호 운용성을 지원했으나 현재는 개발이 중단되었다.
| 젠킨스 (소프트웨어) - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
![]() | |
| 개발자 | 가와구치 고스케 |
| 최초 릴리스 | 2011년 2월 2일 |
| 최신 릴리스 버전 | 2.303.1 |
| 최신 릴리스 날짜 | 2021년 8월 25일 |
| 프로그래밍 언어 | 자바 |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | 자바 11, 자바 17, 자바 21 |
| 장르 | 지속적 전달 |
| 라이선스 | MIT 라이선스 |
| 웹사이트 | 젠킨스 공식 웹사이트 |
2. 역사
젠킨스는 원래 썬 마이크로시스템즈에서 '''허드슨'''(Hudson)이라는 이름으로 개발되었다.[46] 허드슨의 개발은 2004년 여름에 시작되어 2005년 2월 java.net에 처음 출시되었다.[46]
2007년경 허드슨은 크루즈 컨트롤 및 다른 오픈 소스 빌드 서버의 더 나은 대안으로 알려지기 시작했다.[1][8] 이후 썬 마이크로시스템즈가 오라클에 인수된 후, 프로젝트 이름에 대한 분쟁이 발생하여 2011년 커뮤니티 투표를 통해 프로젝트 이름이 '''젠킨스'''로 변경되고 포크되었다.[10][11] 오라클이 계속 개발하던 허드슨은 이클립스 재단에 기증되었으나 2017년 2월 개발이 중단되었다.[5][6][7]
젠킨스는 소프트웨어 개발 과정에서 지속적인 통합(CI) 서비스를 제공하기 위해 만들어졌다. 여러 조직이 협력하여 소프트웨어를 개발할 때, 특정 변경 사항이 다른 부분에 미치는 영향을 빠르게 감지하고 품질을 유지하는 것이 중요했기 때문이다. 젠킨스는 Apache Tomcat과 같은 서블릿 컨테이너에서 실행되는 서버 기반 시스템으로, CVS, Subversion, Git, Mercurial 등 다양한 버전 관리 시스템을 지원하며, Apache Ant나 Apache Maven과 같은 빌드 도구를 사용하여 프로젝트를 빌드하고 테스트할 수 있다. 주요 개발자 중 한 명은 코스케 카와구치(Kohsuke Kawaguchi)이며,[34] MIT 라이선스로 배포되는 자유 소프트웨어이다.[32]
2016년 4월 20일에는 버전 2가 출시되었으며, 기본적으로 '파이프라인' 플러그인이 활성화되었다.[16] 이 플러그인을 통해 아파치 그루비 기반의 DSL(Domain-Specific Language)을 사용하여 빌드 과정을 코드로 작성하고 관리할 수 있게 되었다. 2018년 3월에는 쿠버네티스 환경을 위한 젠킨스 X 프로젝트가 발표되었다.[17]
2. 1. 허드슨과의 분쟁 및 젠킨스로의 명칭 변경
젠킨스는 원래 허드슨 프로젝트로 개발되었다. 2010년 11월, 썬 마이크로시스템즈를 인수한 오라클과의 사이에서 허드슨 커뮤니티가 사용하는 인프라 관리 및 통제에 대한 문제가 불거졌다.[10][37] 주요 프로젝트 기여자들과 오라클 간의 협상이 진행되었으며 여러 부분에서 합의가 이루어졌지만, 오라클이 '허드슨'이라는 이름에 대한 권리를 주장하며 2010년 12월 상표 출원을 하면서[38] 이름 문제가 핵심 쟁점으로 떠올랐다.결국 2011년 1월 11일, 프로젝트 이름을 '허드슨'에서 '젠킨스'로 변경하는 것에 대한 투표가 제안되었고,[11][39] 2011년 1월 29일 커뮤니티 투표에서 압도적인 지지로 통과되어 젠킨스 프로젝트가 시작되었다.[11][40][41]
2011년 2월 1일, 오라클은 허드슨 개발을 계속할 것이며 젠킨스를 이름 변경이 아닌 포크로 간주한다고 발표했다.[12][42] 이로써 젠킨스와 허드슨은 서로를 포크라고 주장하며 두 개의 독립적인 프로젝트로 나뉘게 되었다.[12] 오라클의 포크인 허드슨은 한동안 개발이 계속되다가 이클립스 재단에 기증되었으나,[5][6] 더 이상 유지 관리되지 않았고[5][6] 2017년 2월에는 공식적으로 지원이 중단된 구식(obsolete) 프로젝트로 발표되었다.[7] 젠킨스는 2017년 2월 8일부터 이클립스에서 허드슨을 대체했다.[7]
2. 2. 수상 경력
2007년경 허드슨(젠킨스의 전신)은 크루즈 컨트롤 및 다른 오픈 소스 빌드 서버의 대안으로 주목받기 시작했다.[1][8]- 2008년 5월: 자바원 컨퍼런스에서 개발자 솔루션 부문 듀크스 초이스 상(Duke's Choice Award)을 수상했다.[9]
- 2011년: 젠킨스의 제작자인 코스케 카와구치가 허드슨/젠킨스 프로젝트에 대한 기여를 인정받아 O'Reilly 오픈 소스 어워드를 수상했다.[15]
- 2011년: InfoWorld에서 선정하는 최고의 오픈 소스 소프트웨어상인 보시 어워드(Bossie Award)를 수상했다.[28]
- 2014년: 긱 초이스 어워드(Geek Choice Award)를 수상했다.[28]
2. 3. 젠킨스 X
2018년 3월, 쿠버네티스를 위한 젠킨스 X 소프트웨어 프로젝트가 공개적으로 발표되었다.[17] 이 프로젝트는 AWS EKS를 포함한 다양한 클라우드 제공업체를 지원한다.[18]3. 빌드
빌드는 다음과 같은 다양한 방법으로 실행될 수 있다.
- 버전 관리 시스템에서 커밋이 푸시될 때 웹훅을 통해 실행된다.
- 크론과 유사한 방식으로 정해진 시간에 맞춰 실행된다.
- 특정 빌드의 URL을 요청하여 실행된다.
- 대기열에 있는 다른 빌드가 완료된 후 자동으로 실행된다.
- 다른 빌드에 의해 직접 호출되어 실행된다.
소프트웨어를 여러 조직이 함께 개발할 때, 특정 부분의 변경이 다른 부분의 품질에 나쁜 영향을 줄 수 있다. 예를 들어, 한 부분의 수정 때문에 전체 소프트웨어가 제대로 빌드되지 않는 경우가 발생할 수 있다. 이러한 문제를 빠르게 발견하고 소프트웨어의 품질을 꾸준히 유지하기 위해, 변경 사항이 생길 때마다 자동으로 빌드를 실행하고 테스트하는 과정이 중요하다.
4. 플러그인
플러그인은 젠킨스의 기능을 확장하는 핵심적인 방법이다.[43] 플러그인을 통해 자바 외 언어 지원, 다양한 버전 관리 시스템, 버그 데이터베이스, 빌드 도구 등과의 통합, 외형 변경, 기능 추가 등이 가능하다.
4. 1. 주요 플러그인
플러그인은 젠킨스의 기능을 확장하는 데 사용된다. 이를 통해 자바 외의 언어로 작성된 프로젝트 지원을 넓히고, 다양한 버전 관리 시스템 및 버그 데이터베이스와 통합할 수 있다. 많은 빌드 도구 역시 플러그인을 통해 지원되며, 플러그인은 젠킨스의 외형을 변경하거나 새로운 기능을 추가하는 데에도 활용된다.[43] 예를 들어, 단위 테스트 플러그인(JUnit은 기본 제공, MSTest, NUnit 등[19])을 사용하여 다양한 형식의 테스트 보고서를 생성하고, 젠킨스는 이 보고서를 GUI에 표시하고 추세를 시각화할 수 있다.주요 플러그인은 다음과 같다.
# 빌드 실패 시
# 빌드가 불안정한 상태일 때
# 실패했던 빌드가 성공했을 때 (문제 해결)
# 성공했던 빌드가 불안정해졌을 때 (회귀 발생)
- Credentials: 젠킨스 내에 자격 증명(예: 사용자 이름, 비밀번호, API 키 등)을 안전하게 저장하고 관리할 수 있는 표준화된 API를 제공한다. 다른 플러그인들이 이 API를 통해 다양한 유형의 자격 증명을 저장하고 사용할 수 있다.[21]
- Monitoring external jobs: 젠킨스 외부에서 실행되는 작업(예: cron 작업)의 결과를 모니터링하는 기능을 추가한다.[22]
- SSH agents: SSH 프로토콜을 통해 유닉스 계열 운영체제 머신에서 실행되는 에이전트(과거에는 '슬레이브'로 불림)를 관리할 수 있게 한다.[23] 이 플러그인은 다음과 같은 방식으로 에이전트를 시작한다.
# 지정된 호스트에 특정 사용자 이름으로 SSH 연결을 설정한다.
# 해당 사용자의 기본 자바 버전을 확인한다.
# (미구현) 기본 자바 버전이 젠킨스의 ''agent.jar'' 파일과 호환되지 않으면 적합한 자바 버전을 찾는다.
# 적합한 자바 버전을 확보하면 SFTP를 통해 최신 ''agent.jar'' 파일을 원격 머신에 복사한다 (SFTP 사용 불가 시 scp 사용).
# 에이전트 프로세스를 시작한다.
5. 보안
젠킨스의 보안은 접근 통제와 외부 위협으로부터의 보호, 두 가지 요소에 달려 있다. 접근 통제는 사용자 인증과 권한 부여, 두 가지 방법으로 사용자 지정할 수 있다. CSRF 공격 및 악성 빌드와 같은 외부 위협으로부터의 보호도 지원된다.[27]
참조
[1]
웹사이트
Why are you still not using Hudson?
http://blog.uncommon[...]
2008-05-21
[2]
웹사이트
Jenkins 1.396 released
http://jenkins.36131[...]
2018-12-08
[3]
웹사이트
LICENSE.txt
https://github.com/j[...]
GitHub
2016-10-18
[4]
웹사이트
Use Hudson: License
http://hudson.gotdns[...]
2011-01-30
[5]
웹사이트
About Jenkins
https://wiki.eclipse[...]
2017-08-06
[6]
웹사이트
About Jenkins
https://wiki.eclipse[...]
2018-09-03
[7]
웹사이트
About Jenkins
https://wiki.eclipse[...]
[8]
웹사이트
What is the difference between Hudson and CruiseControl for Java projects?
https://stackoverflo[...]
2011-01-17
[9]
웹사이트
2008 JavaOne Conference: Duke's Choice Awards Winners for 2008
http://java.sun.com/[...]
java.sun.com
2008-05-21
[10]
웹사이트
Oracle's open source missteps continue with Hudson project
https://www.infoworl[...]
InfoWorld
2018-05-31
[11]
웹사이트
Hudson devs vote for name change; Oracle declares fork
https://www.itworld.[...]
ITWorld
2018-05-31
[12]
웹사이트
Oracle hands Hudson to Eclipse, but Jenkins fork seems permanent
https://www.infoworl[...]
InfoWorld
2018-05-31
[13]
웹사이트
Jenkins organization on GitHub
https://github.com/j[...]
2018-05-31
[14]
웹사이트
Hudson organization on Github
https://github.com/h[...]
2018-05-31
[15]
웹사이트
Kohsuke Kawaguchi: Geek of the Week
https://www.red-gate[...]
2018-05-31
[16]
웹사이트
What's New in Jenkins 2.0
https://developers.r[...]
2016-08-24
[17]
웹사이트
Introducing Jenkins X: a CI/CD solution for modern cloud applications on Kubernetes
https://jenkins.io/b[...]
[18]
웹사이트
Continuous Delivery with Amazon EKS and Jenkins X
https://aws.amazon.c[...]
2018-11-23
[19]
웹사이트
Plugins Index
https://plugins.jenk[...]
[20]
웹사이트
Mailer - Jenkins - Jenkins Wiki
https://wiki.jenkins[...]
2017-11-26
[21]
웹사이트
Credentials Plugin - Jenkins - Jenkins Wiki
https://wiki.jenkins[...]
2017-11-26
[22]
웹사이트
Monitoring external jobs - Jenkins - Jenkins Wiki
https://wiki.jenkins[...]
2017-11-26
[23]
웹사이트
Jenkins source code
https://github.com/j[...]
2018-05-19
[24]
웹사이트
SSH Build Agent - Jenkins Plugin
https://plugins.jenk[...]
2020-06-12
[25]
웹사이트
Javadoc Plugin - Jenkins - Jenkins Wiki
https://wiki.jenkins[...]
2017-11-26
[26]
웹사이트
Generate and publish edoc in Jenkins using Javadoc plugin | Erlanger
http://truthisanoddn[...]
[27]
웹사이트
Securing Jenkins
https://jenkins.io/d[...]
2016-09-13
[28]
웹사이트
Awards - Jenkins - Jenkins Wiki
https://www.jenkins.[...]
2016-09-13
[29]
웹사이트
Jenkins 1.396 released
http://jenkins.36131[...]
[30]
웹사이트
Why are you still not using Hudson?
http://blog.uncommon[...]
2008-05-21
[31]
웹사이트
Use Hudson: License
http://hudson.gotdns[...]
2011-01-30
[32]
웹사이트
Use Hudson: License
http://hudson.gotdns[...]
2011-01-30
[33]
웹사이트
Hudson Renames to Jenkins
http://www.infoq.com[...]
InfoQ
2011-02-08
[34]
웹사이트
Why are you still not using Hudson?
http://blog.uncommon[...]
uncommons.org
2008-05-21
[35]
웹사이트
What is the difference between Hudson and CruiseControl for Java projects?
http://stackoverflow[...]
2011-01-17
[36]
웹사이트
"2008 JavaOne Conference: [[Java|Duke]]'s Choice Awards Winners for 2008"
http://java.sun.com/[...]
java.sun.com
2008-05-21
[37]
웹사이트
Who's driving this thing?
http://hudson-labs.o[...]
2011-01-31
[38]
웹사이트
Hudson Process Discussion Summary
http://hudson-ci.org[...]
2011-01-31
[39]
웹사이트
Hudson's future
http://jenkins-ci.or[...]
2011-01-11
[40]
웹사이트
Rename Vote Results
https://groups.googl[...]
2011-01-29
[41]
웹사이트
Jenkins!
http://jenkins-ci.or[...]
2011-01-29
[42]
웹사이트
The Future of Hudson
http://java.net/proj[...]
2011-02-02
[43]
문서
Plugins - Jenkins
https://wiki.jenkins[...]
[44]
뉴스
Jenkins 1.396 released
http://jenkins.36131[...]
Kohsuke Kawaguchi
2018-12-08
[45]
웹인용
Release list
https://github.com/j[...]
2021-08-30
[46]
웹인용
Hudson
https://www.java.net[...]
2013-06-28
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
