반응형
젠킨스(Jenkins) 잡(Job)은 젠킨스에서 실행할 특정 작업을 정의한 실행 단위입니다. CI/CD(Continuous Integration/Continuous Deployment) 환경에서 자동화된 빌드, 테스트, 배포 등의 작업을 수행하는 하나의 프로세스를 의미합니다.
1. 젠킨스 잡의 주요 역할
젠킨스 잡은 주로 다음과 같은 작업을 수행합니다:
✅ 코드 빌드(Build)
✅ 테스트 실행(Test Execution)
✅ 소프트웨어 패키징(Artifact Creation)
✅ 배포(Deployment)
✅ 스크립트 실행(Script Execution)
2. 젠킨스 잡의 종류
젠킨스에서는 다양한 유형의 잡을 만들 수 있으며, 주요 잡 유형은 다음과 같습니다:
1) Freestyle Project (프리스타일 프로젝트)
- 가장 기본적인 형태의 잡
- 소스 코드 빌드, 테스트, 배포를 포함한 여러 작업을 순차적으로 실행 가능
- GUI 기반 설정으로 간편하게 사용 가능
2) Pipeline (파이프라인)
- 스크립트 기반(Jenkinsfile)으로 파이프라인을 정의하여 실행
- 복잡한 CI/CD 프로세스를 코드로 관리 가능
- Declarative 또는 Scripted 방식으로 작성 가능
3) Multi-Configuration Project (다중 설정 프로젝트)
- 여러 환경(예: OS, JDK 버전, 브라우저 등)에서 테스트를 실행할 때 사용
- 매트릭스 기반으로 서로 다른 조합의 설정을 적용하여 실행 가능
4) Multi-Branch Pipeline (멀티 브랜치 파이프라인)
- Git 등의 소스 코드 관리 시스템과 연동하여, 브랜치마다 자동으로 파이프라인을 생성
- 브랜치별 CI/CD 프로세스를 자동화하는 데 유용
5) Folder (폴더)
- 여러 개의 잡을 그룹화하여 관리하는 기능
3. 젠킨스 잡 실행 방식
젠킨스 잡은 다음과 같은 방식으로 실행될 수 있습니다.
1) 수동 실행
- 사용자가 직접 젠킨스 UI에서 "Build Now(지금 빌드)" 버튼을 클릭하여 실행
2) 자동 실행 (트리거 설정)
- 특정 이벤트(예: Git 코드 푸시, 특정 시간, 다른 잡 실행 후 등)에 따라 자동 실행 설정 가능
3) Webhook
- GitHub, GitLab과 같은 리포지토리에서 Webhook을 설정하여 코드 변경 시 자동으로 빌드 트리거
4. 젠킨스 잡 설정 요소
젠킨스 잡을 설정할 때 주요 요소는 다음과 같습니다:
1) 소스 코드 관리
- Git, SVN 등의 소스 코드 저장소와 연결하여 코드 가져오기
2) 빌드 트리거
- 코드 변경 감지 (예: Git Push)
- 정기 실행 (예: H 12 * * 1-5 → 월~금 12시에 실행)
- 다른 잡 실행 후 실행
3) 빌드 단계
- Shell Script 실행
- Gradle, Maven, NPM 등을 이용한 빌드
- Docker 컨테이너 실행
4) Post-Build Actions (빌드 후 작업)
- 이메일 알림 전송
- 테스트 결과 보고
- 빌드 아티팩트(결과물) 저장
- 배포 수행 (서버 업로드 등)
5. 젠킨스 잡 실행 과정 예시
Git 코드 푸시 → 자동 빌드 & 배포
1️⃣ 개발자가 GitHub/GitLab에 코드 푸시
2️⃣ 젠킨스 Webhook이 트리거되어 잡 실행
3️⃣ 소스 코드 다운로드
4️⃣ 유닛 테스트 실행
5️⃣ 애플리케이션 빌드
6️⃣ Docker 이미지 생성 & Push
7️⃣ Kubernetes 또는 서버에 배포
8️⃣ 빌드 완료 후 이메일/Slack 알림 전송
6. 젠킨스 잡 관리 팁
- 잡 실행 히스토리 관리: 오래된 빌드 로그 정리
- 에러 발생 시 알림 설정: Slack, Email 연동
- 병렬 실행 활성화: 여러 작업을 동시에 실행하여 속도 개선
- 환경 변수 사용: 동적인 빌드 설정 적용 가능
- 플러그인 활용: Git, Docker, Kubernetes 등 다양한 플러그인 추가 가능
✅ 정리
- 젠킨스 잡(Jenkins Job)은 빌드, 테스트, 배포 등의 자동화 작업을 수행하는 실행 단위
- 기본적으로 Freestyle, Pipeline, Multi-Configuration 등의 다양한 잡 유형 제공
- Git 코드 변경, 특정 시간, 다른 잡 완료 후 실행 등의 트리거 설정 가능
- 실행 결과를 보고하고, 배포까지 자동화 가능
- Webhooks, Slack 알림, Docker, Kubernetes 연동 등으로 CI/CD 효율성 향상 가능
CI/CD 자동화를 고려한다면 파이프라인(Pipeline) 방식을 적극 활용하는 것이 좋음! 🚀
반응형