What is Jenkins?
Jenkins
젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴입니다.
CI(Continuous Integration) 툴 이라고 표현합니다.
젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이었습니다.
젠킨스는 정기적인 빌드에서 한발 나아가 SVN, Git 과 같은 버전관리시스템과 연동하여
소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있습니다.
Jenkins가 주는 이점
개발중인 프로젝트에서 커밋은 매우 빈번히 일어나기 때문에 커밋 횟수만큼 빌드를 실행하는 것이 아니라 작업이 큐잉되어 자신이 실행될 차례를 기다리게 됩니다.
코드의 변경과 함께 이뤄지는 이 같은 자동화된 빌드와 테스트 작업들은 다음과 같은 이점들을 가져다 줍니다.
- 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
- 자동화 테스트 수행
- 정적 코드 분석에 의한 코딩 규약 준수여부 체크
- 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
- 결합 테스트 환경에 대한 배포작업
이 외에도 젠킨스는 500여가지가 넘는 플러그인을 온라인으로 간단히 인스톨 할 수 있는 기능을 제공하고 있으며 파이썬과 같은 스크립트를 이용해 손쉽게 자신에게 필요한 기능을 추가 할 수도 있습니다.
Build 자동화의 확립
빌드 툴의 경우 Java는 maven과 gradle이 자리잡고 있으며,
이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스를 사용하지 않을 이유가 하나도 없습니다.
젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있습니다.
자동화 테스트
자동화 테스트는 젠킨스를 사용해야 하는 가장 큰 이유 중 하나이며,
사실상 자동화 테스트가 포함되지 않은 빌드는 CI자체가 불가능하다고 봐도 무방합니다.
젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 테스트가 있다 하여도 든든한 안전망이 되어줍니다.
제대로 테스트를 거치지 않은 코드를 커밋하게 되면 화난 젠킨스를 만나게 됩니다.
'Study > Jenkins' 카테고리의 다른 글
Jenkins에서 Tomcat 설정 (0) | 2021.11.25 |
---|---|
CentOS7 환경에 Jenkins 설치하기, jenkins 공유 서버 (0) | 2021.11.25 |
댓글