📜 TIL

[2021.07.07] Jenkins란?

둥굴둥굴둥굴레차 2021. 7. 8. 00:03

 

 

 

 

 

Jenkins란?

소프트웨어 개발 시 지속적인 통합 서비스(CI )를 제공하는 툴
빌드를 자동화 해주어 반복작업을 최소화해준다.

오픈 소스이며 CI/CD를 구현할 수 있는 가장 많이 사용되는 무료 도구 중 하나.
메이븐(Maven)을 사용한 빌드 작업을 지원함.

 

다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.

 

 

[참고] CI란?

Continuous Integration

빌드주기 비 효율성을 줄이기 위한 프로세스.

CI를 사용하면 테스트를 자동화할 수 있어, 개발 릴리스 주기를 단축하고 제품 품질을 향상시킬 수 있다.

 

 

Jenkins가 등장하기 전의 모습

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

특히 개발자들이 당일 작성한 소스들의 커밋이 모드 끝난 심야 시간대에 이러한 빌드가 타이머에 의해 집중적으로 진행되었는데, 이를 nightly-build라 한다.

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

 

[참고] 빌드란?

서버에 기능을 추가 하려면 개발자가 개발자 노트북에서 개발을 하고 테스트까지 한 다음에 이상이 없으면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영해야 합니다.

서버에 반영을 하는 것을 '배포'라고 하고 배포 하기 위한 준비 과정을 '빌드'라고 합니다.

 

Jenkins가 주는 이점

  • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
  • 자동화 테스트 수행
  • 정적 코드 분석에 의한 코딩 규약 준수여부 체크
  • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
  • 결합 테스트 환경에 대한 배포작업

 

이 외에도 젠킨스는 500여가지가 넘는 플러그인을 온라인으로 간단히 인스톨 할 수 있는 기능을 제공하고 있으며

파이썬과 같은 스크립트를 이용해 손쉽게 자신에게 필요한 기능을 추가 할 수도 있다.

 

젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 테스트가 있다 하여도 든든한 안전망이 되어준다.

제대로 테스트를 거치지 않은 코드를 커밋하게 되면 화난 젠킨스를 만나게 된다.

 

 


🔽 참고한 링크들

 

[Jenkins] 젠킨스란 무엇인가

What is jenkins? 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integration) 툴 이라고 표현한다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을

ict-nroo.tistory.com

 

빌드란? 그리고 Jenkins(젠킨스)란? 써야 하는 이유

빌드란? 그리고 Jenkins(젠킨스)란? 써야 하는 이유 서버에 기능을 추가 하려면 개발자가 개발자 노트북에서 개발을 하고 테스트까지 한 다음에 이상이 없으면 사용자가 사용할 수 있게 수정된 내

krksap.tistory.com