[DevCamp] ⚙️ 젠킨스(Jenkins)란 무엇인가?

동건·2025년 5월 14일
0

DevCamp

목록 보기
64/85

⚙️ 젠킨스(Jenkins)란 무엇인가?

젠킨스(Jenkins)는 오픈소스로 제공되는 자동화 서버로,
소프트웨어 개발 과정에서 지속적인 통합(Continuous Integration, CI)과
지속적인 배포(Continuous Delivery, CD)를 지원한다.

다양한 플러그인을 통해 여러 개발, 테스트, 배포 도구와 연동할 수 있어
DevOps 문화를 구축하는 데 중요한 역할을 한다.


🔁 CI/CD 개념 이해

  • CI (지속적인 통합): 개발자가 변경한 코드가 자주 통합되도록 하여 코드 충돌을 방지하고 문제를 조기에 발견할 수 있게 함
  • CD (지속적인 배포/전달): 통합된 코드를 자동으로 테스트하고 배포까지 이어지는 과정

젠킨스는 이 과정을 자동화하여 개발 효율성과 코드 품질을 높인다.

🛠️ 젠킨스 주요 기능

  • 파이프라인 기반 자동화 (Jenkins Pipeline)
  • 플러그인을 통한 확장성
  • 빌드 트리거 (시간 기반, 코드 푸시 등)
  • 다양한 SCM 연동(Git, SVN 등)
  • 테스트 자동화 및 결과 리포트

🚀 젠킨스 설치 방법

젠킨스는 다양한 방식으로 설치할 수 있다:

  1. WAR 파일로 실행:
$ java -jar jenkins.war
  1. Docker로 설치:
$ docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
  1. 패키지 매니저 (예: apt, yum)를 통한 설치

🧱 젠킨스 파이프라인 기본 구조

Jenkins Pipeline은 Jenkinsfile에 정의되며 다음과 같은 형태를 가진다:

pipeline {
  agent any

  stages {
    stage('Build') {
      steps {
        echo 'Building...'
      }
    }

    stage('Test') {
      steps {
        echo 'Testing...'
      }
    }

    stage('Deploy') {
      steps {
        echo 'Deploying...'
      }
    }
  }
}

🔌 플러그인으로 기능 확장

젠킨스는 수천 개의 플러그인을 지원한다. 대표적으로:

  • Git 플러그인
  • Slack Notification
  • Docker, Kubernetes
  • SonarQube (코드 품질 분석)

플러그인을 통해 테스트 커버리지, 보안 스캔, 정적 분석 등을 파이프라인에 통합할 수 있다.


🧪 실습: GitHub와 연동한 자동 빌드

  1. GitHub에 저장소 생성 및 Jenkinsfile 추가
  2. 젠킨스에 GitHub 플러그인 설치
  3. 새 Job 생성 (Pipeline 방식)
  4. GitHub Webhook 설정하여 코드 푸시 시 자동 빌드되도록 구성

✅ 젠킨스의 장단점

장점단점
풍부한 플러그인설정이 복잡할 수 있음
활발한 커뮤니티UI가 직관적이지 않을 수 있음
다양한 언어와 도구 지원리소스 사용량이 클 수 있음

🔨 TIL

  • 젠킨스는 CI/CD 자동화를 위한 강력한 도구다.
  • 파이프라인을 통해 빌드, 테스트, 배포 과정을 코드로 정의할 수 있다.
  • 플러그인을 활용하면 거의 모든 개발/운영 도구와 연동이 가능하다.
  • GitHub와 연동하여 실시간 빌드를 구성해볼 수 있다.
profile
배고픈 개발자

0개의 댓글