๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋…ธ๋ ฅ์„ ์ด๊ธฐ๋Š” ์žฌ๋Šฅ์€ ์—†๊ณ 
๋…ธ๋ ฅ์„ ์™ธ๋ฉดํ•˜๋Š” ๊ฒฐ๊ณผ๋„ ์—†๋‹ค.
- ์ด์ฐฝํ˜ธ 9๋‹จ

CI & CD/Jenkins

[Jenkins] ๐Ÿ–ฅ๏ธ ์  ํ‚จ์Šค(Jenkins)๋ž€? / ์  ํ‚จ์Šค ํŠน์ง• ๋ฐ ์žฅ๋‹จ์ 

  Junesker   2025. 2. 13.
๋ฐ˜์‘ํ˜•

Jenkins๋ž€?

 

์  ํ‚จ์Šค(Jenkins)๋ž€ ๋‹จ์–ด๊ฐ€ ์˜ˆ์ „๋ณด๋‹ค ์ง€๊ธˆ์ด ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์˜ ์ž…์„ ํ†ตํ•ด์„œ ๋“ค๋ ค์ง€๊ณ  ์žˆ๋‹ค. IT์— ๋ชธ๋‹ด๊ณ  ๊ณต๋ถ€๋ฅผ ํ•˜๊ฑฐ๋‚˜ ์ผ์„ ํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด 1๋ฒˆ์ฏค ๊ผญ ๋“ค์–ด๋ดค์„๊ฒƒ ๊ฐ™๋‹ค. Docker ๋งŒํผ์ด๋‚˜ ์œ ๋ช…ํ•œ ๋…€์„์ด์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•œ๋‹ค. ์  ํ‚จ์Šค๋Š” 'CI/CD', ์ฆ‰ ๋นŒ๋“œ/ํ…Œ์ŠคํŠธ/๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ์šด์˜์ค‘์ธ ์„œ๋น„์Šค์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ›„ ๋„ฃ๋Š”๋‹ค๊ณ  ํ–ˆ์„๋•Œ๋„ ์„œ๋น„์Šค๋ฅผ ์ค‘๊ฐ„์— ์ค‘๋‹จํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋นŒ๋“œ ํ›„ ๋ฐฐํฌ ํ•œ ํ›„์— ๋‹ค์‹œ ์„œ๋น„์Šค๋ฅผ ์žฌ ๊ฐ€๋™ํ•˜๋ ค๋ฉด ๊ณผ์ •๋„ ๋งŽ๊ณ  ์ค‘๊ฐ„ ๊ณผ์ •์— ๋”ฐ๋ฅธ ์„œ๋น„์Šค ์ค‘๋‹จ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค์„ ์  ํ‚จ์Šค(Jenkins)๊ฐ€ ํ•ด๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ๋Ÿฐ ํŠน์ง•์„ ๊ฐ€์ง„ ์  ํ‚จ์Šค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!

 

 

 

 

 

์  ํ‚จ์Šค(Jenkins)๋ž€?
์  ํ‚จ์Šค์˜ ํŠน์ง•๊ณผ ์žฅ/๋‹จ์ 

 

 

 

 

 

  ์  ํ‚จ์Šค๋ž€?


Jenkins๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ์ œ๊ณต ๋˜๋Š” ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ž‘์—…(CI/CD(Continuous Integration & Continuous Deployment) ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•)์„ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝํ˜• ์˜คํ”ˆ ์†Œ์Šค ์ž๋™ํ™” ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. Jenkins๋Š” ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€, Docker๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Java Runtime Environment(JRE)๊ฐ€ ์„ค์น˜๋œ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ๋‹จ๋…์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

CI/CD(Continuous Integration & Continuous Deployment)

  • CI(์ง€์†์  ํ†ตํ•ฉ)
    - ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์„ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •
  • CD(์ง€์†์  ๋ฐฐํฌ)- ๊ฒ€์ฆ๋œ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •

์  ํ‚จ์Šค๋Š” Java ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, Tomcat ๊ฐ™์€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ๋…๋ฆฝ์ ์ธ ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์  ํ‚จ์Šค๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” JDK๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿš€ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ:
๊ฐœ๋ฐœ์ž๊ฐ€ Git์— ์ฝ”๋“œ๋ฅผ ํ‘ธ์‹œํ•˜๋ฉด Jenkins๊ฐ€ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋™์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์†Œ์Šค ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ (GitHub/GitLab/Bitbucket ์—ฐ๋™)
  2. ์ฝ”๋“œ ์ปดํŒŒ์ผ ๋ฐ ๋นŒ๋“œ (์˜ˆ: mvn package ๋˜๋Š” gradle build)
  3. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์‹คํ–‰ (JUnit, TestNG, Jest ๋“ฑ)
  4. ์ฝ”๋“œ ์ •์  ๋ถ„์„ (SonarQube, Checkstyle ํ™œ์šฉ)
  5. ๋ฐฐํฌ (Docker ์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ ํ›„ Kubernetes ๋ฐฐํฌ)

ํ•ด๋‹น ๊ณผ์ •์ด ์™„์ „ํžˆ ์ž๋™ํ™”๋˜์–ด ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋Š” ์ˆ˜์ž‘์—… ์—†์ด ํšจ์œจ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

  ์  ํ‚จ์Šค ํŠน์ง•


๐Ÿ”น ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜

Jenkins๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐฐํฌ ๊ธฐ๋Šฅ๋งŒ ํฌํ•จํ•˜๊ณ  ์žˆ๊ณ , ๋‚˜๋จธ์ง€๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ 1,800๊ฐœ ์ด์ƒ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์˜ˆ์‹œ
- Git Plugin: GitHub/GitLab/Bitbucket๊ณผ ์—ฐ๋™

- Maven Integration Plugin: Maven ๋นŒ๋“œ ์ž๋™ํ™”
- Pipeline Plugin: CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์ฝ”๋“œํ™”
- Docker Plugin: Docker ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ๋ฐฐํฌ
- Kubernetes Plugin: ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

 

 

 

๐Ÿ”น ๋ถ„์‚ฐ ๋นŒ๋“œ ์ง€์› (Master-Agent ๊ตฌ์กฐ)

Jenkins๋Š” ๋‹จ์ผ ์„œ๋ฒ„์—์„œ ๋ชจ๋“  ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹ค์ˆ˜์˜ ์—์ด์ „ํŠธ(Worker Node)๋ฅผ ํ™œ์šฉํ•ด์„œ ๋นŒ๋“œ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด์„œ ๋นŒ๋“œ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•˜๋ฉด ์†๋„๋ฅผ ํ–ฅ์ƒ ์‹œํ‚ฌ์ˆ˜ ์žˆ๊ณ  ๋ฌด๊ฑฐ์šด ๋นŒ๋“œ๋ฅผ ๋ณ„๋„์˜ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถ„์‚ฐ ์‹œํ‚ฌ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Jenkins Master : ๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ•  (UI ์ œ๊ณต, Job ๊ด€๋ฆฌ, ๋นŒ๋“œ ์Šค์ผ€์ฅด๋ง)
Jenkins Agent : ์‹ค์ œ๋กœ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋…ธ๋“œ (์—ฌ๋Ÿฌ ๊ฐœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ)

 

 

 

๐Ÿ”น Jenkins Pipeline (์ฝ”๋“œ ๊ธฐ๋ฐ˜ CI/CD ์ž๋™ํ™”)

๊ธฐ์กด์—๋Š” GUI์—์„œ Job์„ ์ƒ์„ฑํ•ด์•ผ ํ–ˆ์ง€๋งŒ, Jenkins Pipeline์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ(์Šคํฌ๋ฆฝํŠธ)๋กœ ๋นŒ๋“œ ๊ณผ์ •์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

  • Jenkinsfile ์ด๋ผ๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋กœ Pipeline์„ ๊ด€๋ฆฌ
  • ๋ฒ„์ „ ๊ด€๋ฆฌ(Git ์—ฐ๋™ ๊ฐ€๋Šฅ), ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๊ฐ€

 

pipeline {
    agent any  
    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/example/repo.git'
            }
        }
        stage('Build') {
            steps {
                sh 'mvn package'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                sh 'scp target/*.jar user@server:/deploy/path/'
            }
        }
    }
}

 

์œ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ Jenkins์—์„œ ์‹คํ–‰ํ•˜๋ฉด, ์ž๋™์œผ๋กœ ์ฝ”๋“œ ์ฒดํฌ์•„์›ƒ → ๋นŒ๋“œ → ํ…Œ์ŠคํŠธ → ๋ฐฐํฌ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

 

 

๐Ÿ”น Jenkins ์•Œ๋žŒ

CI/CD ๊ณผ์ •์—์„œ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ์ƒํƒœ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์•Œ๋ฆผ(Notifications) ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•ด ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋ฌธ์ œํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ์ฑ„๋„์„ ํ†ตํ•ด ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ  ๋นŒ๋“œ ๊ณผ์ • ์ค‘ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋งž์ถฐ ์•Œ๋žŒ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์–‘ํ•œ ์ฑ„๋„
- ์ด๋ฉ”์ผ(Email) : ๊ธฐ๋ณธ์ ์ธ ์•Œ๋žŒ ๋ฐฉ์‹(SMTP ์„ค์ • ํ•„์š”)
- ๋ฉ”์‹ ์ € ์—ฐ๋™ : Slack, Discord, Teams, Telegram ๋“ฑ ์‹ค์‹œ๊ฐ„ ํ˜‘์—… ๋„๊ตฌ์™€ ํ†ตํ•ฉ
- Webhook : ์™ธ๋ถ€ ์‹œ์Šคํ…œ(API ์„œ๋ฒ„, ์ฑ—๋ด‡, ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ๋“ฑ)๊ณผ ์—ฐ๋™
- ์ด์Šˆ ํŠธ๋ž˜์ปค : Jira, Githup ๋“ฑ ๋นŒ๋“œ ์‹คํŒจ ์‹œ ์ž๋™์œผ๋กœ ํ‹ฐ์ผ“ ์ƒ์„ฑ
- ๋Œ€์‹œ๋ณด๋“œ(Grafana, Prometheus ๋“ฑ)์™€ ์—ฐ๋™ํ•ด ๋นŒ๋“œ ์ƒํƒœ ์‹œ๊ฐํ™”

์•Œ๋žŒ ํŠธ๋ฆฌ๊ฑฐ(Trigger) ์ œ๊ณต
- ์„ฑ๊ณต(Success) : ๋ชจ๋“  ๋‹จ๊ณ„๊ฐ€ ์ •์ƒ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ
- ์‹คํŒจ(Failure) : ๋นŒ๋“œ ๋˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ–ˆ์„ ๋•Œ
- ๋ถˆ์•ˆ์ •(Unstable) : ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์‹คํŒจ ๋“ฑ ๊ฒฝ๊ณ  ์ƒํ™ฉ
- ์—ฐ์† ์‹คํŒจ(Repeated Failure) : ๊ฐ™์€ Job์ด ์—ฐ์†ํ•ด์„œ ์‹คํŒจํ•  ๋•Œ
- ๋ฐฐํฌ ์™„๋ฃŒ(Deployment Completed) : ํ”„๋กœ๋•์…˜์— ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐฐํฌ๋˜์—ˆ์„ ๋•Œ

 

 

 

 

 

  ์  ํ‚จ์Šค ์žฅ์ 


๐Ÿ”น ๋‹ค์–‘ํ•œ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ํ™˜๊ฒฝ ์ง€์›

Java, SpringBoot, Node.js, Python, C++, .NET ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Docker, Kubernetes์™€ ์—ฐ๋™ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ๊ณ  AWS, Azure, GCP ๋“ฑ ๋‹ค์–‘ํ•œ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์™€ ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿ”น ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ & ์ž๋™ ํ…Œ์ŠคํŠธ

CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ๋ฒ„๊ทธ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์ฆ‰๊ฐ ์•Œ๋ฆผ์„ ํ†ตํ•ด ์ง€์›์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (์ด๋ฉ”์ผ, Slack, Teams, Webhook ๋“ฑ ์ง€์›) 

 

์ฝ”๋“œ ํ‘ธ์‹œ → ์ž๋™ ํ…Œ์ŠคํŠธ ์‹คํ–‰ → ๊ฒฐ๊ณผ ํ™•์ธ ๊ฐ€๋Šฅ

 

 

 

๐Ÿ”น ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•œ ํ™•์žฅ์„ฑ

  • SonarQube์™€ ์—ฐ๋™ํ•˜์—ฌ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ถ„์„ ๊ฐ€๋Šฅ
  • Ansible, Terraform๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์ธํ”„๋ผ ์ž๋™ํ™” ๊ฐ€๋Šฅ
  • Selenium๊ณผ ์—ฐ๋™ํ•˜์—ฌ UI ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๊ฐ€๋Šฅ

 

 

 

๐Ÿ”น ์˜คํ”ˆ ์†Œ์Šค & ๋ฌด๋ฃŒ

๊ธฐ์—…์—์„œ๋„ ๋น„์šฉ ๋ถ€๋‹ด ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ™œ๋ฐœํ•ด์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

  ์  ํ‚จ์Šค ๋‹จ์ 


โŒ ์„ค์ •์ด ๋ณต์žกํ•˜๋‹ค

์ดˆ๊ธฐ์— ์„ค์น˜ํ•˜๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์ด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Infrastructure as Code ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

โŒ UI/UX๊ฐ€ ๋ถˆํŽธํ•˜๋‹ค

๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Jenkins ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ง๊ด€์ ์ด์ง€ ์•Š์•„ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ์— ์–ด๋”˜๊ฐ€ ๋ชจ๋ฅผ ๋‹ต๋‹ตํ•จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์ด ์—†์ด๋Š” ์‚ฌ์šฉํ•˜๋Š”๋ฐ์— ์žˆ์–ด์„œ ์–ด๋ ค์›€์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž Jenkins์—๋Š” Blue Ocean ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (๋ชจ๋“  UI ์ œ๊ณต)

 

 

 

โŒ ๋นŒ๋“œ ์†๋„ ๋ฌธ์ œ

Jenkins ์ž์ฒด๊ฐ€ ๋ฌด๊ฒ๊ณ , CI/CD ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŽ์œผ๋ฉด ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ํฌ๋ฏ€๋กœ ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž Jenkins Agent ๋ถ„์‚ฐ ๋นŒ๋“œ ์‚ฌ์šฉ ๋˜๋Š” Kubernetes ๊ธฐ๋ฐ˜์˜ Jenkins๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

@Junesker


 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€