젠킨스란 소프트웨어 개발시 지속적인 통합(Continuous integration)을 제공해주는 도구이다. 더불어 지속적인 배포환경까지 구축할수 있는 도구 있다.
젠킨스와 같은 CI 도구들이 나오기전에는 일정시간동안 빌드를 실행하는 방식이 일반적이였다.
Jenkins는 빌드, 테스트, 배포 프로세스를 자동화하여 개발자의 시간 절약과 개발 생산성을 높일수 있다. 게다가 SVN,Git과 같은 버전관리 시스템과 연동하여 커밋을 감지하면 빌드가 작동되도록 설정도 할수 있다.
지속적 통합은 개발자들이 빠른 주기로 작업한 내용을 통합 브랜치에 통합하고 빌드하는 프로세스를 의미한다. 간단히 요약하자면 빌드/테스트 자동화 과정이라고 할 수 있다.
CI는 통합하는 과정에서 발생하는 이슈를 가능한 빨리 발견하기 위해 필요하다. 기능을 개발할 때는 코드를 여러 번 수정하게 되는데, 이 과정에서 코드를 반영하고, 버전 관리 시스템에서 변경 사항을 가져오고, 소스코드를 빌드하고, 단위 테스트를 진행하고, 통합하고, 통합된 코드를 빌드하고, 이를 묶어 배포하는 등 여러 과정을 수행한다. CI 환경에서는 젠킨스 같은 도구를 이용해 모든 과정을 빠르게 에러 없이 진행할 수 있다.
CD는 CI 이후에 더 나아가 통합된 코드를 자동으로 테스트하고, 테스트를 통과한 코드를 프로덕션 환경에 안전하게 전달할 수 있는 프로세스를 의미한다.
이를 통해 개발된 최신 버전의 어플리케이션을 언제든지 운영 환경에 배포할 수 있는 상태를 유지할 수 있고, 사용자에게 빠르게 신규 기능을 제공하면서 버그 수정과 보완 사항을 신속하게 적용할 수 있다.