[Jenkins] 젠킨스의 개요

728x90
반응형

프로젝트 초기에 구성했던 젠킨스에 관련해서 간단하게 정리해봅니다.

  1. 젠킨스를 왜 선택하게 되었고, 

  2. 어떻게 구성 하였으며, 

  3. 얼마나 업무 효율이 향상되었는지




프로젝트를 진행하다 보면, 실무적으로 지속적으로 문의오는 내용이 있습니다. 

혹시.. 지금 빌드를 뽑아주실 수 있나요?

현재 적용되어 있는 빌드가 최신 버전인가요?

빌드 뽑는데 오래 걸릴까요? 바로 배포 가능하신가요?

일례적인 사례지만, 더 많은 업무요청이 있을 것으로 여겨집니다. 



형상관리 시스템 ( Git, SVN ) 을 사용하고 있었기에, 지속적으로 빌드를 생산해주고, 현재 커밋되어진 내용들에 오류가 있지 않은지 지속적으로 판단하기 위해 

CI 시스템을 구축해야 겠다고 생각했습니다. 

그 중 오픈소스이며, 가장 많이 사용되고 있는 젠킨스를 선택하게 되었으며, 

현재 프로젝트가 웹서버로 구성되고 있기 때문에, 빌드 이후 배포까지 처리하기 위해 적합하다고 판단하여 젠킨스를 도입하였습니다. 




젠킨스 개요

Jenkins는 Agile의 창시자 중 한명인 마틴 파울러씨가 주장한 지속적 통합 ( CI : Continuous Integration )을 구현하기 위한 자바 오픈 소스 소프트웨어입니다. 웹 어플리케이션 형태를 하고 있으며, 국내에서는 허드슨 (Hudson) 이라는 이름으로도 알려져 있습니다. 

2010년 오라클과의 상표권 문제로 인해 Jenkins로 이름이 바뀌게 되었습니다. 

 



CI (Continuous Integration) 란 무엇인가?

지속적 통합이라는 뜻으로 형상관리 시스템 (SVN or Git) 에 있는 Source 파일을 읽어들여 자동으로 빌드하여 실행할 수 있는 결과물 형태로 주기적으로 생산해주는 시스템



 

Jenkins가 제공하는 기능에는

    • 웹 인터페이스를 통한 간편한 설정
    • 강력하고 편리한 레포팅 기능
    • 지속적인 자동화 빌드
    • 지속적인 자동화 테스트
    • 커버리지 감시
    • 코드 품질 감시
    • 다양한 인증기반과 결합한 인증 및 권한 관리 기능
    • Groovy Script 를 이용한 고수준의 잡 스케쥴링 기능
    • 커맨드라인 인터페이스 제공
    • 자동화된 배포 관리
    • 분산 빌드 가능
    • 윈도우 커멘드 스케쥴링 실행기능

이 있다고 합니다. (출처 : More Agile)

 



저희가 프로젝트에 Jenkins 도입하려 했던 이유는

  1. 지속적인 자동화 빌드

  2. 자동화된 배포 관리

  3. 윈도우 커맨드 스케쥴링 실행 가능

위 세가지 이유로 인해서 젠킨스를 도입하였습니다.




다음 포스트에서는 젠킨스를 어떻게 설치 하였는지 기본 환경 및 설치 과정을 정리해보겠습니다. 



728x90