Jenkins (젠킨스)¶
Jenkins는 소프트웨어 개발 시 지속적인 통합(CI, Continuous Integration)과 지속적인 배포(CD, Continuous Delivery/Deployment)를 지원하는 오픈 소스 자동화 서버입니다.
Java로 개발되었으며, 수많은 플러그인을 통해 빌드, 테스트, 배포 프로세스를 자동화하고 시각화할 수 있는 강력한 도구입니다.
💡 핵심 특징¶
1. 광범위한 플러그인 생태계¶
Jenkins는 1,800개 이상의 플러그인을 제공하여 Git, Docker, Kubernetes, Maven, Gradle, AWS 등 사실상 거의 모든 개발/운영 도구와 연동할 수 있습니다.
2. 파이프라인 (Pipeline as Code)¶
Jenkinsfile이라는 텍스트 파일을 통해 전체 빌드 및 배포 파이프라인을 코드로 정의할 수 있습니다. 이를 통해 파이프라인을 버전 관리 시스템(Git 등)에서 관리하고, 팀원들과 공유하며, 변경 이력을 추적할 수 있습니다.
3. 분산 빌드 지원¶
마스터-에이전트(Master-Agent) 구조를 지원하여, 빌드 부하를 여러 대의 서버로 분산시키거나 다양한 운영체제 환경(Linux, Windows, macOS)에서 동시에 테스트를 수행할 수 있습니다.
4. 무료 오픈 소스¶
MIT 라이선스를 따르는 무료 오픈 소스 소프트웨어로, 비용 부담 없이 도입하여 사용할 수 있으며 활발한 커뮤니티의 지원을 받을 수 있습니다.
🚀 도입 효과¶
- 개발 생산성 향상: 반복적인 빌드/배포 작업을 자동화하여 개발자는 핵심 비즈니스 로직 구현에 집중할 수 있습니다.
- 품질 향상: 코드가 커밋될 때마다 자동으로 테스트를 수행하므로 버그를 조기에 발견하고 수정할 수 있습니다.
- 배포 안정성: 표준화된 배포 프로세스를 통해 사람의 실수(Human Error)를 방지하고 안정적인 릴리스를 보장합니다.
이 문서는 Jenkins 시리즈의 첫 번째 파트입니다. 이어지는 문서에서는 설치 방법, 사용 방법, 그리고 실전 예제에 대해 다룹니다.