snow · 2026.4.21 04:17 · 조회 2

Jenkins 소개

JenkinsCICDDevOps

Jenkins란?

Jenkins는 오픈소스 자동화 서버로, 소프트웨어 개발 과정에서 빌드, 테스트, 배포를 자동화하는 CI/CD(Continuous Integration / Continuous Delivery) 파이프라인을 구축하는 데 널리 사용됩니다.

2004년 Sun Microsystems에서 Hudson이라는 이름으로 시작되었으며, 2011년 Jenkins로 분기되어 현재까지 전 세계 수십만 개의 팀에서 사용되고 있습니다.


주요 특징

오픈소스 & 무료

Jenkins는 MIT 라이선스 기반의 완전 무료 오픈소스 소프트웨어입니다. 상용 솔루션 없이도 엔터프라이즈 수준의 CI/CD 환경을 구축할 수 있습니다.

풍부한 플러그인 생태계

1,800개 이상의 플러그인을 제공하여 Git, GitHub, Docker, Kubernetes, Slack, JIRA 등 다양한 도구와 통합할 수 있습니다.

분산 빌드 지원

Master-Agent 아키텍처를 통해 여러 서버에 빌드 작업을 분산하여 처리할 수 있습니다. 대규모 프로젝트에서도 빠른 빌드 속도를 유지할 수 있습니다.

Pipeline as Code

Jenkinsfile을 사용하여 파이프라인을 코드로 정의하고 버전 관리할 수 있습니다. Declarative와 Scripted 두 가지 문법을 지원합니다.


CI/CD란?

개념설명
CI (Continuous Integration)개발자가 코드를 자주 병합하고 자동으로 빌드·테스트하는 방식
CD (Continuous Delivery)CI를 통과한 코드를 스테이징 환경에 자동 배포
CD (Continuous Deployment)모든 변경 사항을 자동으로 프로덕션까지 배포

Jenkins의 핵심 개념

Job (작업)

Jenkins에서 실행하는 기본 단위입니다. Freestyle Job, Pipeline Job, Multibranch Pipeline 등 다양한 유형이 있습니다.

Pipeline (파이프라인)

여러 단계(Stage)로 구성된 자동화 워크플로우입니다.

1pipeline {2    agent any3    stages {4        stage('Build') {5            steps {6                sh 'npm install && npm run build'7            }8        }9        stage('Test') {10            steps {11                sh 'npm test'12            }13        }14        stage('Deploy') {15            steps {16                sh './deploy.sh'17            }18        }19    }20}

Agent (에이전트)

파이프라인 또는 특정 스테이지를 실행할 환경을 지정합니다. any, docker, kubernetes 등의 옵션을 제공합니다.

Trigger (트리거)

빌드를 자동으로 시작하는 조건입니다. Git push, PR 생성, 스케줄(cron), 다른 Job 완료 등을 트리거로 설정할 수 있습니다.


Jenkins vs 다른 CI/CD 도구

도구특징적합한 환경
Jenkins고도의 커스터마이징, 온프레미스레거시/복잡한 파이프라인
GitHub ActionsGitHub 통합 용이, 클라우드 기반GitHub 중심 프로젝트
GitLab CIGitLab 내장, 통합 DevOpsGitLab 사용 팀
CircleCI빠른 설정, SaaS스타트업, 빠른 시작

시작하기

이 가이드는 Jenkins를 처음 접하는 분부터 고급 파이프라인을 구성하려는 팀까지 모두를 위한 문서입니다.

  • 사용자 가이드: Jenkins 기본 사용법, Job 생성, 파이프라인 작성법
  • 관리자 가이드: 설치, 플러그인 관리, 보안 설정, 에이전트 구성
  • 사용 팁: 실무에서 유용한 팁과 베스트 프랙티스

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.