

Jenkins란 무엇인가
Jenkins는 CI/CD를 자동화하기 위한 오픈소스 자동화 서버다.
코드 변경이 발생했을 때 빌드, 테스트, 배포 과정을 사람이 개입하지 않아도 자동으로 실행해준다.
한 문장으로 정리하면
소스 코드 변경을 감지해 소프트웨어 전달 과정을 자동화하는 도구다.
왜 Jenkins를 사용하는가
개발 과정에는 반복 작업이 많다.
코드 병합, 빌드, 테스트, 배포를 매번 수동으로 처리하면 시간이 오래 걸리고 실수 가능성도 커진다.
Jenkins는 이런 작업을 파이프라인으로 정의해
정해진 규칙에 따라 안정적으로 실행한다.
CI / CD에서 Jenkins의 위치
CI는 여러 개발자가 작성한 코드를 지속적으로 통합하고 검증하는 단계다.
CD는 검증된 코드를 실제 서버 환경에 전달하거나 배포하는 단계다.
Jenkins는
CI와 CD를 연결하는 중앙 실행 서버 역할을 한다.
Jenkins의 기본 동작 흐름
- 개발자가 GitHub 저장소에 코드를 push
- GitHub webhook 또는 주기적 체크로 Jenkins 실행
- Jenkinsfile에 정의된 파이프라인 실행
- 빌드 → 테스트 → 배포 순서로 작업 진행
- 결과를 기록하고 실패 시 알림 전송
핵심 구성 요소
Jenkins Server
웹 UI와 스케줄링을 담당하는 메인 서버
Job / Pipeline
실행할 작업을 정의한 단위
최근에는 UI 설정보다 코드 기반 Pipeline 방식을 주로 사용한다.
Agent(Node)
실제 빌드와 테스트를 수행하는 실행 환경
물리 서버일 수도 있고 도커 컨테이너일 수도 있다.
Jenkinsfile
Jenkins의 동작을 코드로 정의한 파일이다.
보통 저장소 루트에 위치한다.
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'npm install'
sh 'npm run build'
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
stage('Deploy') {
steps {
sh './deploy.sh'
}
}
}
}
작업 순서와 실행 조건이 명확하게 관리된다.
Docker, Kubernetes와의 관계
Docker는 Jenkins가 다루는 빌드 대상이다.
Jenkins는 도커 이미지를 빌드하고 레지스트리에 푸시한다.
Kubernetes는 배포 대상 인프라다.
Jenkins는 쿠버네티스에 새 이미지를 배포하도록 명령한다.
전체 흐름은 다음과 같다.
코드 push
→ Jenkins 실행
→ Docker 이미지 빌드
→ 이미지 레지스트리 업로드
→ Kubernetes 배포
프론트엔드 관점에서의 Jenkins
React 코드가 push되면
Jenkins가 빌드 결과물을 생성하고
Nginx 기반 도커 이미지로 패키징한 뒤
운영 서버 또는 쿠버네티스에 배포한다.
프론트엔드 개발자가 Jenkins를 이해하면
“내 코드가 실제 서비스로 어떻게 배포되는지”를 설명할 수 있다.
장단점 정리
장점
확장성이 높고 플러그인이 매우 많다.
복잡한 배포 시나리오를 자유롭게 구성할 수 있다.
단점
초기 설정과 유지보수가 어렵다.
관리하지 않으면 설정이 빠르게 복잡해진다.
면접에서 사용할 수 있는 정리 문장
Jenkins는
소스 코드 변경을 감지해
빌드, 테스트, 배포 과정을 파이프라인으로 자동화하는
오픈소스 CI/CD 서버입니다.
'STUDY' 카테고리의 다른 글
| 오픈소스 기여도 (0) | 2025.12.22 |
|---|---|
| 프론트엔드 1기 수료생 강의 (0) | 2025.12.17 |
| CI/CD Jenkins Docker Kubernetes (1) | 2025.12.17 |
| 웹 개발 파이프라인 구축 - 쿠버네티스 (0) | 2025.12.16 |
| 웹 개발 파이프라인 구축 - 도커 (0) | 2025.12.15 |