Jenkins 101: 첫 번째 파이프라인 쉽게 시작하기 (Declarative vs. Scripted)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
CI/CD 도입 초보자, Jenkins 사용자, DevOps 엔지니어
- 난이도: 중간 (기초 개념 설명 포함)
핵심 요약
- Declarative 파이프라인은 구조화된 문법과 내장 오류 처리로 간단한 워크플로우에 적합
- 예:
pipeline { agent any; stages { ... } }
- Scripted 파이프라인은 Groovy 언어 기반으로 복잡한 로직 처리 가능
- 예:
node { stage('Build') { sh 'npm install' } }
- 설치 및 실행 단계:
- Docker 명령어:
docker run -p 8080:8080 jenkins/jenkins:lts
- Jenkins UI에서 Pipeline script 입력 후 실행
섹션별 세부 요약
- CI/CD 자동화의 필요성
- 수동 빌드/테스트의 단점 (예: 매번 테스트 실행, 오류 발생 가능성)
- Jenkins의 역할: 코드 커밋 → 배포까지의 전체 과정 자동화
- Declarative 파이프라인의 특징
- 구조화된 문법 (IKEA 설명서 유사)
- 내장 오류 처리 및 재시도 기능
- 예시:
```groovy
pipeline {
agent any
stages {
stage('Build') { steps { sh 'npm install' } }
}
}
```
- Scripted 파이프라인의 특징
- Groovy 언어 직접 사용 (루프, 조건문 처리 가능)
- 유연성과 복잡한 로직 구현 가능
- 예시:
```groovy
node {
stage('Test') {
def tests = ['unit', 'integration']
tests.each { test -> sh "npm run test:${test}" }
}
}
```
- Declarative vs. Scripted 비교
- | Declarative | Scripted
|---|---
| ✅ 간단한 문법 | ✅ 유연한 Groovy 스크립트
| ✅ 내장 오류 처리 | ✅ 복잡한 로직 지원
| ❌ 커스터마이징 제한 | ❌ 학습 곡선이 높음
- Jenkins 설치 및 실행 방법
- 설치: jenkins.io에서 다운로드 또는 Docker 사용
- 파이프라인 생성: Jenkins UI → New Item → Pipeline 선택 → Pipeline script 입력
- 자주 발생하는 문제 및 해결 방법
- 권한 오류:
npm
또는docker
도구에 대한 Jenkins 권한 설정 - 문법 오류: Jenkins 내장 Pipeline Syntax Generator 사용
- 플러그인 누락: NodeJS, Docker Pipeline, Blue Ocean 등 설치
- 실무 팁
- Jenkinsfile 버전 관리: 코드 리포지토리에 저장하여 변경 추적
- Blue Ocean 플러그인 사용: 시각적 UI로 파이프라인 모니터링
- 단계적 확장: 테스트 자동화부터 시작 → 이후 단계 추가
결론
- Declarative로 90%의 간단한 워크플로우 구현, Scripted로 복잡한 로직 처리
- Jenkinsfile을 코드 리포지토리에 저장해 변경 추적
- Blue Ocean 플러그인 사용으로 시각적 파이프라인 모니터링 가능
- 첫 번째 파이프라인 실행 시:
docker run -p 8080:8080 jenkins/jenkins:lts
명령어 사용