Jenkins란?

김덕진·2025년 6월 7일

Infra

목록 보기
2/3

Jenkins는 오픈소스 기반의 자동화 서버입니다.
주로 지속적인 통합(CI)지속적인 배포(CD)를 위한 도구로 사용됩니다.

쉽게 말해, 개발한 코드를 자동으로 테스트하고 빌드하고 배포까지 해주는 자동화 매니저입니다.


🚀 Jenkins의 주요 특징

1. 플러그인 기반 구조

  • Jenkins는 수백 개의 플러그인을 통해 기능을 확장할 수 있습니다.
  • Git, Slack, Docker, AWS 등 다양한 툴과의 연동이 가능합니다.

예: Slack Notification 플러그인을 추가하면 빌드 성공/실패를 슬랙으로 받을 수 있습니다.

# 플러그인 관리 화면에서 설치 및 활성화 가능
Manage Jenkins > Plugin Manager

2. 자유로운 Job 구성

  • Freestyle Project, Pipeline, Multibranch Pipeline 등 다양한 형태의 작업 구성 제공
  • 스크립트로 빌드 과정을 제어할 수 있어 유연한 커스터마이징이 가능
// Jenkins Pipeline 예시
pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        echo 'Build Step'
      }
    }
    stage('Test') {
      steps {
        echo 'Running Tests'
      }
    }
  }
}

Jenkinsfile로 빌드 설정을 버전 관리할 수 있습니다.

3. 다양한 트리거 방식

  • GitHub webhook
  • 주기적 스케줄(Cron 방식)
  • 수동 실행
  • 다른 Job의 후속 작업 등
triggers {
  cron('H 4 * * 1-5') // 평일 오전 4시에 자동 실행
}

코드 Push 시 자동 테스트/배포를 구현할 수 있어 DevOps에 필수입니다.


🏗️ Jenkins의 구성 요소

구성 요소설명
Master전체 시스템 제어 및 Job 분배
Agent실제 빌드 실행을 담당하는 노드
Job/Project수행할 작업 정의 (빌드, 테스트, 배포 등)
PipelineJob을 단계별로 나눈 빌드 스크립트
Plugin외부 도구와의 연동 기능을 추가하는 모듈

⚙️ Jenkins 기본 설치 및 실행

설치 방법

  1. War 파일 직접 실행
    java -jar jenkins.war
  2. Docker로 설치
    docker run -p 8080:8080 jenkins/jenkins:lts
  3. 서버 패키지 설치
    • Ubuntu: apt install jenkins
    • CentOS: yum install jenkins

가장 쉬운 방법은 Docker입니다. 포팅도 쉽고 관리도 간편합니다.


📦 실무 예시: GitHub PR 자동 빌드

  1. PR 생성 시 GitHub webhook으로 Jenkins 트리거
  2. Jenkins가 코드를 clone해서 테스트 및 빌드 수행
  3. 결과를 Slack에 알림
  4. 빌드 실패 시 자동 롤백

협업에 있어 코드 품질 관리에 매우 유용합니다.


🛑 주의사항

  • 보안 설정 필수: 초기 설치 시 Admin 계정, 토큰 등을 반드시 설정
  • 리소스 관리: 빌드가 많아지면 서버 과부하 발생 가능 → Agent 분산 추천
  • 플러그인 호환성: Jenkins 업데이트 시 플러그인 호환성 문제 주의

✅ 마무리 요약

Jenkins는 복잡한 개발-배포 사이클을 자동화하여 개발 생산성을 높여주는 DevOps 필수 도구입니다.

📌 요약 리스트:

  • CI/CD 자동화 도구
  • 플러그인 기반의 확장성
  • 파이프라인 구성으로 유연한 빌드 플로우
  • 다양한 트리거 및 외부 연동 지원
profile
FrontEnd Developer

0개의 댓글