Jenkins는 소프트웨어 구축, 테스트, 제공 또는 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 독립현 오픈 소스 자동화 서버이다.
Jenkins는 기본 시스템 패키지, 도커를 통해 설치하거나 JRE(Java Runtime Environment)가 설치된 시스템에서 독립 실행형으로 실행할 수 있다.
CI/CD
환경을 구축할 수 있다.Jenkins와 같은 CI 툴이 나오기 전에는 일정 시간마다 빌드를 실행하는 것이 일반적이었는데, Jenkins는 Git
과 같은 버전 관리 시스템과 연동하여 소스의 커밋을 감지하면 자동으로 빌드가 작동하여 개발 편의성이 증가되었다.
이러한 기능을 수행하는 Jenkins는 컴파일 오류를 검출하고 자동화 테스트를 수행하며 정적 코드 분석으로 인한 코딩 규약 준수 여부를 체크하고 프로파일링 툴을 이용한 성능 변화 감시, 결합 테스트 환경에 대한 배포 작업에 큰 도움을 준다.
프로젝트 기간 중에 개발자들은 순수한 개발 작업 이외의 DB 설정, 환경 설정, 배포 작업과 같은 단순 작업에 시간과 노력을 들이는데, 이러한 작업을 Jenkins로 쉽게 수행할 수 있게 된다.
Jenkins는 온갖 종류의 개발 작업을 지원하기 위한 오픈 소스 자동화 서버이다.
약 1400가지가 넘는 플랫폼, UI, 관리, 소스코드 관리, 빌드 관리의 플러그인을 가지고 있다.
Jenkins는 개인이 확인하지 못한 코드 표준 준수 여부의 검사나 정적 분석을 통한 코드 품질 검사를 빌드 내부에서 수행한다. 또한 2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용된 프로젝트에는 그에 따른 빌드 파이프라인 구성이 필요하게 된다. 예를 들어, 도메인->서비스->UI 와 같이 각 레이어 참조 관계에 따라 순차적으로 빌드를 진행해야 하는 경우 Jenkins는 이러한 빌드 파이프라인을 스크립트로 작성하여 제어할 수 있다.