소개
Jenkins 파이프라인의 기초를 다루는 이번 실습에 오신 것을 환영합니다. Jenkins 파이프라인은 전체 빌드, 테스트 및 배포 프로세스를 코드로 정의할 수 있게 해주는 강력한 기능입니다. 이러한 정의는 일반적으로 애플리케이션 소스 코드와 함께 버전 관리되는 Jenkinsfile이라는 텍스트 파일에 저장됩니다. 이러한 관행을 "Pipeline-as-Code"라고 합니다.
이번 실습에서는 구조화되고 사용자 친화적인 파이프라인 생성 방식을 제공하는 선언적 파이프라인 (Declarative Pipeline) 구문에 중점을 둡니다. 실습을 마치면 다음을 수행할 수 있게 됩니다.
- Jenkins 웹 인터페이스에서 새로운 파이프라인 프로젝트 생성
- 선언적 구문을 사용하여 기본적인
Jenkinsfile작성 - 로컬 Git 저장소의
Jenkinsfile을 사용하도록 프로젝트 구성 - 파이프라인 실행 및 출력 결과 확인
- 파이프라인을 여러 스테이지로 구성
- 환경 변수를 사용하여 구성 관리
실습을 위해 Jenkins 인스턴스가 컨테이너 내에서 이미 실행 중입니다. 시작해 봅시다.
Jenkins 에서 파이프라인 프로젝트 생성
첫 번째 단계는 Jenkins 에서 새로운 파이프라인 프로젝트를 생성하는 것입니다. 이 프로젝트 유형은 Jenkinsfile에 정의된 파이프라인을 실행하기 위해 특별히 설계되었습니다.
- 데스크톱 인터페이스에서 Firefox 브라우저를 엽니다. 브라우저는 자동으로
http://localhost:8080으로 연결되므로 URL 을 직접 입력할 필요가 없습니다. 별도의 로그인은 필요하지 않습니다. - Jenkins 대시보드 왼쪽 메뉴에서 New Item을 클릭합니다.
- Enter an item name 필드에
my-first-pipeline을 입력합니다. - 프로젝트 유형 목록에서 Pipeline을 선택합니다.
- 페이지 하단의 OK 버튼을 클릭합니다.

- 프로젝트 구성 페이지로 이동합니다. 현재는 설정을 그대로 두고, 페이지 하단으로 스크롤하여 Save를 클릭합니다.
이제 빈 파이프라인 프로젝트가 생성되었습니다. 다음 단계에서는 Jenkinsfile을 생성하고 이 프로젝트가 해당 파일을 사용하도록 구성하겠습니다.
로컬 Git 저장소를 사용하도록 SCM 구성
이제 Jenkins 컨테이너 내부에서 제공되는 로컬 Git 저장소로부터 파이프라인 정의를 가져오도록 Jenkins 프로젝트를 구성합니다. 이를 통해 외부 네트워크 연결 상태와 관계없이 실제 Pipeline script from SCM 워크플로우를 사용할 수 있습니다.
데모 저장소 위치: git://localhost/pipeline-demo.git
Jenkins 가 이 저장소에서 로드할 Jenkinsfile을 살펴보겠습니다.
pipeline {
agent any
environment {
DEPLOY_TARGET = 'staging'
}
stages {
stage('Build') {
steps {
echo 'Building the application...'
sh 'echo "Compiling source code..."'
}
}
stage('Test') {
steps {
echo 'Testing the application...'
sh 'echo "Running unit tests..."'
}
}
stage('Deploy') {
steps {
echo "Deploying the application to ${env.DEPLOY_TARGET}..."
sh 'echo "Application deployed successfully!"'
}
}
}
}
이 선언적 파이프라인 스크립트는 여러 스테이지를 포함하며 주요 개념을 보여줍니다.
pipeline { ... }: 전체 파이프라인을 정의하는 메인 블록입니다.agent any: 사용 가능한 모든 에이전트에서 이 파이프라인을 실행하도록 Jenkins 에 지시합니다.environment { ... }: 파이프라인 전체에서 사용할 수 있는 환경 변수를 정의합니다.stages { ... }: 파이프라인의 모든 스테이지를 감싸는 래퍼입니다.stage('...') { ... }: 특정 스테이지를 정의합니다. 스테이지는 워크플로우를 시각화하는 데 도움을 줍니다.steps { ... }: 스테이지 내에서 실행될 실제 명령을 포함합니다.echo '...': 빌드 로그에 메시지를 출력하는 단계입니다.sh '...': 셸 명령을 실행하는 단계입니다.
이제 이 저장소를 사용하도록 Jenkins 프로젝트를 구성합니다.
- 브라우저의 Jenkins UI 로 돌아가서
my-first-pipeline프로젝트 페이지로 이동합니다. - 왼쪽 메뉴에서 Configure를 클릭합니다.
- Pipeline 섹션까지 아래로 스크롤합니다.
- Definition 드롭다운을 "Pipeline script"에서 Pipeline script from SCM으로 변경합니다.
- 나타나는 SCM 드롭다운에서 Git을 선택합니다.
- Repository URL 필드에
git://localhost/pipeline-demo.git을 입력합니다. - Script Path 필드에
Jenkinsfile을 입력합니다. - Save를 클릭합니다.

이제 프로젝트가 로컬 Git 저장소에 정의된 파이프라인을 실행하도록 설정되었습니다.
파이프라인 실행 및 출력 확인
프로젝트 구성이 완료되었으므로 파이프라인을 실행하고 실제로 작동하는 모습을 확인해 보겠습니다.
my-first-pipeline프로젝트 페이지에서 왼쪽 메뉴의 Build Now를 클릭합니다.새로운 빌드가 예약되고 왼쪽의 Build History 패널에 나타납니다. 기록 아래의 Stage View에서 "Build" 스테이지가 실행되고 완료되면 녹색으로 변하는 것을 볼 수 있습니다.

자세한 출력을 보려면 빌드 기록에서 빌드 번호 (예: #1) 를 클릭합니다.
빌드 요약 페이지에서 왼쪽 메뉴의 Console Output을 클릭합니다.

로그를 살펴보면 파이프라인 단계에서 출력된 메시지를 확인할 수 있으며, 파이프라인이 성공적으로 실행되었음을 알 수 있습니다.
...
[Pipeline] { (Build)
[Pipeline] echo
Building the application...
[Pipeline] sh
+ echo Compiling source code...
Compiling source code...
[Pipeline] } // stage
[Pipeline] { (Test)
[Pipeline] echo
Testing the application...
[Pipeline] sh
+ echo Running unit tests...
Running unit tests...
[Pipeline] } // stage
[Pipeline] { (Deploy)
[Pipeline] echo
Deploying the application to staging...
[Pipeline] sh
+ echo Application deployed successfully!
Application deployed successfully!
[Pipeline] } // stage
...
Finished: SUCCESS
첫 번째 파이프라인을 성공적으로 실행하고 출력을 확인했습니다. 저장소의 Jenkinsfile 에 정의된 세 가지 스테이지 (Build, Test, Deploy) 가 자동으로 실행된 것을 확인하십시오.
파이프라인의 다중 스테이지 이해
실제 환경의 파이프라인은 애플리케이션 빌드, 테스트, 배포와 같은 여러 스테이지로 구성됩니다. 로컬 저장소의 Jenkinsfile은 이미 이러한 개별 스테이지를 포함하고 있어 이 중요한 개념을 잘 보여줍니다.
여러 스테이지로 구성된 파이프라인 구조를 살펴보겠습니다.
stages {
stage('Build') {
steps {
echo 'Building the application...'
sh 'echo "Compiling source code..."'
}
}
stage('Test') {
steps {
echo 'Testing the application...'
sh 'echo "Running unit tests..."'
}
}
stage('Deploy') {
steps {
echo "Deploying the application to ${env.DEPLOY_TARGET}..."
sh 'echo "Application deployed successfully!"'
}
}
}
my-first-pipeline프로젝트의 Jenkins UI 로 돌아가서, 아직 실행하지 않았다면 Build Now를 클릭하여 파이프라인을 다시 실행합니다.프로젝트 대시보드의 Stage View를 관찰합니다. "Build", "Test", "Deploy" 스테이지를 나타내는 세 개의 열이 보일 것입니다. Jenkins 는 빌드가 각 단계를 거칠 때마다 진행 상황을 시각화합니다.

Stage View 에서 아무 스테이지나 클릭하면 해당 스테이지에 대한 상세 로그를 볼 수 있습니다.
각 스테이지가 순차적으로 실행되는 방식에 주목하십시오. Jenkins 는 한 스테이지가 성공적으로 완료될 때까지 기다린 후 다음 스테이지로 넘어갑니다.
파이프라인을 스테이지로 구성하면 모니터링하기 쉽고 유지 관리가 용이한 명확한 워크플로우를 만들 수 있습니다. 각 스테이지는 CI/CD 프로세스의 논리적 단계를 나타내므로, 문제가 발생한 지점을 쉽게 파악하고 빌드 진행 상황을 시각화할 수 있습니다.
파이프라인의 환경 변수 이해
마지막 단계에서는 환경 변수에 대해 알아봅니다. environment 지시어를 사용하면 파이프라인 전체에서 사용할 수 있는 변수를 정의할 수 있습니다. 이는 단계마다 값을 하드코딩하지 않고 구성 설정을 관리하는 데 이상적입니다.
로컬 저장소의 Jenkinsfile은 배포 대상을 지정하는 환경 변수를 통해 이 개념을 이미 보여주고 있습니다.
환경 변수가 어떻게 정의되고 사용되는지 살펴보겠습니다.
pipeline {
agent any
environment {
DEPLOY_TARGET = 'staging'
}
stages {
// ... other stages ...
stage('Deploy') {
steps {
echo "Deploying the application to ${env.DEPLOY_TARGET}..."
sh 'echo "Application deployed successfully!"'
}
}
}
}
Jenkins 파이프라인의 환경 변수에 대한 핵심 사항:
environment { ... }블록은 파이프라인 전체에서 사용할 수 있는 변수를 정의합니다.- 변수는
${env.VARIABLE_NAME}구문을 사용하여 액세스합니다. - 변수 보간 (interpolation) 이 포함된 문자열에는 반드시 큰따옴표 (
") 를 사용해야 합니다. Groovy 의 변수 보간은 큰따옴표로 묶인 문자열 내에서만 작동하기 때문입니다. - 환경 변수를 사용하면 파이프라인이 더 유연해지고 유지 관리가 쉬워집니다.
아직 실행하지 않았다면 Build Now를 클릭하여 Jenkins 에서 새 빌드를 트리거합니다.
빌드가 완료된 후 빌드의 Console Output을 확인합니다. "Deploy" 스테이지 로그를 보면 변수가 올바르게 치환된 것을 확인할 수 있습니다.
...
[Pipeline] { (Deploy)
[Pipeline] echo
Deploying the application to staging...
[Pipeline] sh
+ echo Application deployed successfully!
Application deployed successfully!
[Pipeline] } // stage
...
Finished: SUCCESS
DEPLOY_TARGET환경 변수 값인staging이 echo 문에 자동으로 치환된 것을 확인하십시오.
환경 변수는 파이프라인 코드 자체를 수정하지 않고도 다양한 환경 (개발, 스테이징, 운영) 에 맞게 쉽게 구성할 수 있는 유연한 파이프라인을 만드는 데 필수적입니다.
요약
축하합니다! Jenkins 파이프라인 입문 실습을 성공적으로 마쳤습니다. CI/CD 워크플로우를 코드로 정의하는 핵심 개념을 배웠습니다.
이번 실습을 통해 다음을 연습했습니다.
- Jenkins UI 에서 파이프라인 프로젝트 생성
- Jenkins 에 제공되는 로컬 Git 저장소의
Jenkinsfile을 사용하도록 프로젝트 구성 - 여러 스테이지가 포함된 선언적 파이프라인의 구조 이해
- 파이프라인 실행 및 콘솔 출력 확인
- 명확성과 조직화를 위해 파이프라인이 논리적 스테이지로 구성되는 방식 관찰
- 파이프라인을 더 동적으로 만들기 위해 환경 변수가 정의되고 사용되는 방식 이해
이러한 기초 기술은 정교한 자동화 파이프라인을 구축하는 데 필수적입니다. 이제 매개변수 사용, 자격 증명 관리, 다양한 빌드 및 배포 도구와의 통합과 같은 더 고급 주제를 탐색할 준비가 되었습니다.

