젠킨스 파이프라인은 CI/CD 프로세스를 코드로 정의하는 기능입니다. 이전글에서 설명한 것 처럼 GitHub Webhook 등의 이벤트가 발생하면 젠킨스가 자동으로 해당 파이프라인 코드를 실행합니다.
Jenkins에서 파이프라인을 생성할 때 보면 두 가지 옵션이 있습니다. 바로 Pipeline Script from SCM과 Pipeline Script입니다. 이번 글에서는 이 두 방식의 차이와 사용 방법을 살펴보겠습니다.
Pipeline Script 방식은 Jenkins 서버 내부에서 직접 스크립트를 작성해 실행하는 방식입니다. Jenkins UI에서 Pipeline Script를 선택하면 스크립트를 작성할 수 있는 편집기가 나타납니다.

이 방식은 설정이 간단해 빠르게 테스트할 수 있다는 장점이 있지만, 실제 운영 환경에서는 여러 단점 때문에 잘 사용되지 않습니다. 따라서 소규모 테스트나 프로토타입 환경에서 주로 활용됩니다.
git pull 등을 수행해야 합니다.Pipeline Script 방식의 단점을 보완할 수 있는 것이 바로 SCM(Source Control Management) 방식입니다.
SCM은 소스 코드 버전 관리 시스템을 의미합니다. Git과 같은 저장소에서 소스 코드를 가져와(checkout) 그 안에 정의된 Jenkinsfile을 실행합니다. 다음과 같은 기능을 제공합니다.
저장소 기반의 관리이기 때문에 파이프라인 운영이나 협업 환경에서 높은 확장성을 가질 수 있습니다.
feature/*, develop, main 등 브랜치마다 다른 Jenkinsfile을 두거나 조건 분기를 넣어 브랜치 전략에 맞는 빌드·배포 흐름을 구성할 수 있습니다. Rules를 따르기에 PR 리뷰, 리뷰 승인 등의 분기 조건을 걸 수 있으므로 실수로 인한 배포 사고를 줄일 수 있습니다. 따라서 초기에 한 번 제대로 설정하는 것이 중요하며, 실패 시 전체 중단에 대비한 Fallback 전략이 필요합니다.
Jenkins UI에서 Pipeline에서 Definition을 Pipeline Script from SCM으로 설정하면 다음과 같은 설정창이 나옵니다.


GitHub Credentails을 만들기 위해서는 아래와 같이 작성합니다.
Username with password를 선택credentialsId: 'github-creds' 처럼 자격 증명이 가능합니다. 위 과정을 마치면 Jenkins 모든 파이프라인이 작성되었습니다. 이제 Jenkinsfile로 Script만 작성하면 CI/CD를 구축할 수 있습니다. 다음에 React부터 Spring Boot, FastAPI 프로젝트를 젠킨스 자체 빌드하여 SSH로 전송 후 원격 실행하는 방식으로 순차적으로 알아보겠습니다.