[Week15] 웹 개발 파이프라인 구축 (3) - 04/22

Kyulee·2026년 4월 24일

TIL 

목록 보기
74/90
post-thumbnail

지난 시간에는 쿠버네티스의 기본 개념과 실습을 진행했습니다. 이번 시간에는 지속적 통합(CI) 도구인 젠킨스(Jenkins)를 알아보고, 쿠버네티스 클러스터 환경에 설치하여 자동화 파이프라인을 구축하는 과정을 정리했습니다.


1. CI 도구로서의 젠킨스

젠킨스(Jenkins)는 소프트웨어 개발 시 CI/CD 환경을 구축해 주는 대표적인 오픈 소스 자동화 서버입니다. 다수의 개발자가 수정한 코드를 지속적으로 통합하고 빌드·테스트 과정을 자동화하여 코드의 결함을 빠르게 발견할 수 있도록 도와줍니다.

수많은 플러그인을 지원하기 때문에 확장성이 매우 뛰어나다는 것이 젠킨스의 가장 큰 특징입니다.


2. 쿠버네티스 클러스터에 젠킨스 설치

쿠버네티스 환경에 젠킨스를 설치할 때는 매니페스트 파일(YAML)을 직접 작성하거나 헬름(Helm) 패키지 매니저를 활용할 수 있습니다. 쿠버네티스 내부에서 젠킨스를 구동하면 컨테이너 기반으로 동작하므로 자원을 더 유연하고 효율적으로 관리할 수 있습니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
        - name: jenkins
          image: jenkins/jenkins:lts
          ports:
            - containerPort: 8080

3. 젠킨스 기본 사용법과 프로젝트 설정

설치를 완료하고 브라우저를 통해 접속한 뒤 초기 비밀번호를 입력해 관리자 계정을 생성하면 기본 설정이 마무리됩니다.

이후 대시보드에서 New Item을 생성하여 파이프라인을 구성할 수 있습니다. 프로젝트 성격에 따라 두 가지 방식 중 하나를 선택합니다.

프로젝트 유형설명
프리스타일 (Freestyle)UI 기반으로 단순한 빌드 작업을 설정합니다.
파이프라인 (Pipeline)코드로 빌드 과정을 상세하게 정의합니다.

4. 젠킨스 파이프라인 기초

젠킨스 파이프라인은 소스 코드의 빌드, 테스트, 배포에 이르는 전체 흐름을 코드로 정의하는 기능입니다. 주로 Jenkinsfile이라는 이름의 파일로 작성하며, 읽기 쉽고 구조화된 선언적(Declarative) 문법을 사용하는 것이 일반적입니다.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo '소스 코드를 빌드합니다.'
            }
        }
        stage('Test') {
            steps {
                echo '테스트 코드를 실행합니다.'
            }
        }
        stage('Deploy') {
            steps {
                echo '서버에 배포를 시작합니다.'
            }
        }
    }
}

파이프라인은 여러 개의 stage로 구성되며, 각 단계가 순서대로 실행됩니다. 특정 단계에서 실패하면 이후 단계는 실행되지 않아 문제를 빠르게 감지할 수 있습니다.


5. CI 파이프라인 — 단위 테스트

CI 파이프라인의 핵심은 코드가 메인 브랜치에 병합되기 전에 결함을 찾아내는 것입니다. 빌드 단계 이후에 단위 테스트 스테이지를 추가하면, 개발자가 작성한 코드가 기존 로직을 망가뜨리지 않고 정상적으로 동작하는지 자동으로 검증할 수 있습니다.

pipeline {
    agent any
    stages {
        stage('Unit Test') {
            steps {
                sh 'npm install'
                sh 'npm run test'
            }
        }
    }
}

6. CI 파이프라인 — 코드 품질 확보

단위 테스트를 통과하더라도 코드의 가독성이 떨어지거나 잠재적인 버그, 보안 취약점이 존재할 수 있습니다. 이를 방지하기 위해 파이프라인에 코드 정적 분석 단계를 추가합니다.

프로젝트에 설정된 린트(Lint) 도구를 실행하거나 SonarQube 같은 정적 분석 서버와 연동하여 코드 품질을 지속적으로 관리합니다.

pipeline {
    agent any
    stages {
        stage('Code Quality Analysis') {
            steps {
                sh 'npm run lint'
                // 필요한 경우 SonarQube 분석 스크립트를 이곳에 추가합니다.
            }
        }
    }
}
profile
안녕하세요 매일의 배움을 기록으로 자산화하는 개발자 이규현입니다 😊

0개의 댓글