- 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴. CI(Continuous Integration) 툴 이라고도 함.
- 일상적인 개발 작업을 자동화할 뿐 아니라 Pipeline을 사용해 거의 모든 언어의 조합과 소스코드 Repository에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위해 간단한 방법을 제공해준다.
- 각각의 단계에 대한 스크립트 작성의 필요성을 없애주지는 않지만, 사용자가 쉽게 구출할 수 있는 것보다 빠르고 강력하게 빌드,테스트,배포 도구 등 체인 전체를 통합할 수 있는 방법을 제공해준다.
- 개발중인 프로젝트에서 커밋은 매우 빈번히 일어나기 때문에 커밋 횟수만큼 빌드를 실행하는 것이 아니라 작업이 큐잉되어 자신이 실행될 차례를 기다리게 된다. 코드의 변경과 함께 이루어지는 자동화된 빌드와 테스트 작업들은 이점을 가져다 준다.
- 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
- 정적 코드 분석에 의한 코딩 규약 준수여부 체크
- 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 갓미
- 결합 테스트 환경에 대한 배포작업
- 특징
- 각종 배치 작업의 간략화
- 순수한 개발 이외에 DB셋업이나 환경설정, Deploy작업과 같은 단순 작업에 시간과 노력을 들이는 경우가 빈번한데, 데이터베이스의 구축, 어플리케이션 서버로의 Deploy, 라이브러리 릴리즈와 같이 이전에 CLI로 실행되었던 작업들이 웹인터페이스로 쉽게 가능해짐.
- Build 자동화의 확립
- 이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스를 사용하지 않을 이유가 없다.
- 젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있다.
- 자동화 테스트
- 자동화 테스트가 포함되지 않은 빌드는 CI자체가 불가능하다고 봐도 무방하다. 젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 개인이 미처 실시하지 못한 테스트가 있다하더라도 안정만이 되어준다.
- 코드 표준 준수여부 검사
- 개인이 미처 못한 코드 표준 준수 여부의 검사나 정적분석을 통한 코드 품질 검사를 빌드 내부에서 수행함으로써 기술적 부채의 감소도 기여
- 빌드 Pipeline 구성
- 2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용 된 프로젝트에는 그에 따른 빌드 파이프라인 구성이 필요하다. 스크립트를 통해 복잡한 제어까지도 가능
- 각종 배치 작업의 간략화