문성준의 단단해지기

[넓고 얕은 지식] 젠킨스(Jenkins)란 무엇일까? 본문

넓고 얕은 지식

[넓고 얕은 지식] 젠킨스(Jenkins)란 무엇일까?

단단한 문성준 문성준 2017.07.17 22:41


 

젠킨스(Jenkins)는 소프트웨어 개발시 지속적 통합(continuous integration) 서비스를 제공하는 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해 준다.

MIT라이선스를 따른다.

 

(MIT라이선스: 매사추세츠 공과대학교(MIT) 을 기원으로 하는 소프트웨어 라이선스 중 가장 대표적인 것이다.)

 

젠킨스는 원래 허드슨 프로젝트로 개발되었다. 허드슨의 개발은 2004년 여름에 썬마이크로시스템즈에서 시작되었다.

2005년 2월에 java.net 에 처음 출시 되었다.

 

(썬마이크로시스템즈(주) 는 컴퓨터,소프트웨어,정보 기술을 개발 및 제공하는 미국의 회사로 빌 조이(Bill Joy)에 의해 설립되었고. '네트워크가 곧 컴퓨터다'(The Network is the computer)라는 슬로건을 사용하였다. 썬이라고도 약칭한다.

썬은 대표적으로 솔라리스 운영체제,자바 플랫폼 등의 여러 소프트웨어들을 개발하였다.)

 

--썬마이크로즈는 2010년에 오라클에 공식 합병되었죠--

 

젠킨스는(Jenkins) CI툴이라고도 불리는데...

 

여기서 잠깐 CI를 설명하자면

 

소프트 웨어 공학에서 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것이다.

작은 단위의 작업, 빈번한 적용, 지속적인 통합은 모든 개발을 완료한 뒤에 퀄리티 컨트롤을 적용하는 고전적인 방법을 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 초점이 맞추어져 있다.

또한 ,연속적 빌드와 인터그레이션은 프로젝트의 성공 여부를 결정짓는 핵심요소이다.

CI(Continuous Integration)은 프로젝트에 투입되는 시간과 노력을 효율화 하는데 매우 중요한 사안이다.

CI의 특징으로는

 

1. 소스코드 일관성 유지

-소스 관리 시스템이 필요함

 

2. 자동 빌드

-커밋에 따른 자동 빌드

-시간 간격에 의한 빌드

 

3. 자동 테스팅

-빌드 과정에서의 테스팅(기능적 요소 및 비기능적 성능적 요소를 매번 검증)

 

4. 일일 체크아웃과 빌드

-소스의 무결성을 유지

 

 

 

========> 지속적 통합

 

이를 위해 나온것이 젠킨스라고 봐도 무방하다..

 

젠킨스와 같은 CI툴이 등장하기 이전에는 일정시간마다 빌드를 실행하는 방식이 일반적이였다.

 

젠킨스는 정기적인 빌드에서 한번 나아가 서브버전,Git과 같은 버전관리 툴과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정 할 수 있다.

 

젠킨스의 자동화된 빌드와 테스트 작업들은

 

-프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출

-자동화 테스트 수행

-결합 테스트 환경에 대한 배포작업

등등의 여러 가지의 플러그인을 온라인으로 간단히 인스톨 할 수 있는 제공을 기능하고 있다.

 

 또 추가 지식이 있으시다면 댓글로 +.+

 

 

 

 

'넓고 얕은 지식' 카테고리의 다른 글

MongoDB의 기본구조  (0) 2017.08.05
[넓고 얕은 지식] 젠킨스(Jenkins)란 무엇일까?  (0) 2017.07.17
0 Comments
댓글쓰기 폼