본문 바로가기
DevOps/Jenkins

[DevOps] Jenkins(젠킨스)란? 쉽게 이해하는 CI/CD 자동화 도구

by SeungyubLee 2025. 10. 30.

※ Jenkins

Jenkins(젠킨스)는 개발자가 작성한 코드를 자동으로 빌드하고 테스트하고 배포까지 해주는

CI/CD(지속적 통합/지속적 배포) 자동화 도구이다.


· 오픈소스 무료
· 수많은 플러그인 제공
· Java 기반, Windows/Linux/macOS 모두 가능
· DevOps 환경에서 가장 많이 활용되는 자동화 툴

한마디로, 개발자가 코드를 Push하면 Jenkins는 자동으로 배포까지 해주는 시스템이다.

 

 왜 Jenkins가 필요한가?

<전통적인 방식>
· 개발 → 빌드 → 서버 압축 업로드 → 서비스 재배포
→ 사람 손이 많이 들어감
→ 실수 발생 확률 높음
→ 배포가 느림

<Jenkins 방식>
· Git push
· Jenkins가 자동으로 빌드 + 테스트 + 컨테이너 이미지 생성 + 배포
→ 오류 감소
→ 배포 속도 증가
→ 자동화로 안정성 확보

 

 CI/CD 개념 정리

용어 의미
CI (Continuous Integration) 코드 자동 빌드 & 테스트 Pull 받을 때 자동 테스트
CD (Continuous Delivery/Deployment) 자동 배포 Push하면 서버 반영

 

CI = 코드 품질 체크
CD = 자동 배포

 

 Jenkins 동작 흐름

개발자가 Git에 코드 Push
     ↓
Jenkins가 변경 탐지 (Webhook 등)
     ↓
코드 빌드 (Maven/Gradle)
     ↓
테스트 실행
     ↓
Docker 이미지 만들기
     ↓
이미지 레지스트리에 업로드
     ↓
Kubernetes/서버로 자동 배포

 

코드가 올라오면 Jenkins가 알아서 배포까지 진행한다.

 

 Jenkins 주요 기능

기능 설명
자동 빌드 Maven, Gradle 등 자동 빌드
자동 테스트 유닛 테스트, 통합 테스트
자동 배포 배포 스크립트, K8s(Kubernetes) 배포
Pipeline DevOps 파이프라인 구성
Plugin Slack 알림, Docker, Git 등 확장
헤드리스 환경 서버 환경에서 동작

 

 Jenkins Pipeline 예시

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/example/demo.git'
            }
        }

        stage('Build') {
            steps {
                sh './gradlew build'
            }
        }

        stage('Docker Build & Push') {
            steps {
                sh 'docker build -t myapp .'
                sh 'docker push myapp'
            }
        }

        stage('Deploy') {
            steps {
                sh 'kubectl apply -f deployment.yaml'
            }
        }
    }
}

 

Pipeline 코드로 배포 프로세스를 버전 관리할 수 있음

 

 Jenkins vs 다른 CI/CD 도구

도구 특징
Jenkins 오픈소스, 유연함 최고, 설치형
GitLab CI GitLab에 내장, DevOps 강점
GitHub Actions GitHub 연동 쉬움, 빠르게 성장
Argo CD Kubernetes GitOps 특화

 

 언제 Jenkins를 선택할까?

상황 선택
자체 서버 운영 Jenkins
복잡한 워크플로 Jenkins
온프레미스 환경 Jenkins
빠른 SaaS 활용 GitHub Actions / GitLab 추천

 

 요약

Jenkins(젠킨스)는 개발자가 코드를 올리면 자동으로 빌드하고 배포해주는 DevOps 자동화 도구이다.