Spring & Spring Boot

[CI/CD] ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์ ํŠธ - GitHub Actions๋ฅผ ํ†ตํ•œ CI/CD ๊ตฌ์ถ•ํ•˜๊ธฐ - (1)

zzu_dev 2025. 2. 4. 15:43

๐Ÿ“– ๋ชฉ์ฐจ

 

 

 


 

๊ฐœ์ธ์ ์œผ๋กœ SpringBoot๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด์ปค๋จธ์Šค ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์‹œ๊ฐ„ ์ƒ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„์„ ์œ„์ฃผ๋กœ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ด๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” CI/CD๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

 

 

 

 

 

 

๐Ÿ“Œ  CI/CD๋ž€?

  CI/CD๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” Continuous Integration(์ง€์†์  ํ†ตํ•ฉ)๊ณผ Continuous Delivery/Deployment(์ง€์†์  ์ „๋‹ฌ/๋ฐฐํฌ)์˜ ์•ฝ์ž์ด๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์‹ค์ œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ˆœ๊ฐ„๊นŒ์ง€์˜ ๋ชจ๋“  ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

 

โœ”๏ธ CI(์ง€์†์  ํ†ตํ•ฉ)
๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ž์ฃผ ๋ณ‘ํ•ฉํ•˜๊ณ , ์ž๋™์œผ๋กœ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด ์ฝ”๋“œ ์ถฉ๋Œ๊ณผ ์˜ค๋ฅ˜๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•œ๋‹ค.

โœ”๏ธ CD(์ง€์†์  ์ „๋‹ฌ/๋ฐฐํฌ)
ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์‹ค์ œ ๋ฐฐํฌ๊นŒ์ง€ ์ง„ํ–‰ํ•œ๋‹ค.
 - ์ง€์†์  ์ „๋‹ฌ(Continuous Delivery): ์ฝ”๋“œ๋ฅผ ํ•ญ์ƒ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•œ๋‹ค. ๋ฐฐํฌ ์ „์— ์ตœ์ข… ์Šน์ธ์ด ํ•„์š”ํ•˜๋‹ค.
 - ์ง€์†์  ๋ฐฐํฌ(Continuous Deployment): ์Šน์ธ ์—†์ด ์ž๋™์œผ๋กœ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•œ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ๋ฐ”๋กœ ๋ฐฐํฌํ•œ๋‹ค.

<CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋‹ค์ด์–ด๊ทธ๋žจ(์ขŒ->์šฐ) - ์ฝ”๋“œ ์ปค๋ฐ‹, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ์Šคํ…Œ์ด์ง•, ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ๊นŒ์ง€์˜ ๊ณผ์ •>

 

 

  CI/CD๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ • -> ํ…Œ์ŠคํŠธ -> ๋ฐฐํฌํ•˜๋Š” ๋ชจ๋“  ๊ณผ์ •์„ ์ž๋™ํ™”ํ•ด ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ํ’ˆ์งˆ์„ ๋ณด์žฅํ•œ๋‹ค.

 

 

 

 

 

 

 

๐Ÿ’ก๊ทธ๋ ‡๋‹ค๋ฉด CI/CD๋Š” ํ•„์ˆ˜์ผ๊นŒ?

๊ผญ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ์™€ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ”„๋กœ์ ํŠธ์˜ ๋ณต์žก์„ฑ๊ณผ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ๋„์ž…ํ•˜๋ฉด ๋œ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ณ , ๋ณ€๊ฒฝ ์ฃผ๊ธฐ๊ฐ€ ๋นจ๋ผ์ง€๋ฉฐ ํ’ˆ์งˆ๊ณผ ์•ˆ์ •์„ฑ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด ํ•„์ˆ˜์ด์ง€๋งŒ,
๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋“œ๋ฌธ ๊ฒฝ์šฐ, ์˜ˆ์‚ฐ๊ณผ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ์—๋Š” ๋„์ž…ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‚˜์ค‘์— ๋„์ž…ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์•„๋ž˜์—์„œ CI/CD๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

 

 

 

 

 

 

 

๐Ÿ“Œ  CI/CD๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ

  • CI (Continuous Integration)๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ
    1. ํŒ€ ํ˜‘์—…์ด ํ™œ๋ฐœํ•œ ํ™˜๊ฒฝ
      • ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ, ํ†ตํ•ฉ ๊ณผ์ •์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. CI๋Š” ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณ‘ํ•ฉํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์„ ์‹ ์†ํžˆ ํ•ด๊ฒฐํ•œ๋‹ค.
    2. ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค
      • ๋นˆ๋ฒˆํ•œ ์ฝ”๋“œ ์ปค๋ฐ‹๊ณผ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” CI๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ฆ‰์‹œ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋˜๋ฏ€๋กœ, ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๊ณ  ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
    3. ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
      • ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ •๊ธฐ์ ์œผ๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ CI๋Š” ํ…Œ์ŠคํŠธ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•ด ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค.
    4. ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๊ฐ€ ์งง์€ ์• ์ž์ผ ํ™˜๊ฒฝ
      • ์งง์€ ์ฃผ๊ธฐ๋กœ ๊ฐœ๋ฐœ, ํ†ตํ•ฉ, ๋ฐฐํฌ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ์• ์ž์ผ ๋ฐฉ์‹์—์„œ๋Š” ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด ํ•„์ˆ˜์ ์ด๋‹ค.

     * CI๋Š” ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ๋นˆ๋ฒˆํ•˜๊ณ  ํŒ€ ๊ทœ๋ชจ๊ฐ€ ํฐ ํ™˜๊ฒฝ์—์„œ๋Š” ํ•„์ˆ˜์ ์ด๋‹ค.

 

 

  • CD (Continuous Delivery/Deployment)๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ
    1. ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ
      • ์ œํ’ˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ž์ฃผ ํ•„์š”ํ•˜๊ณ , ์ด๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” CD๊ฐ€ ์ ํ•ฉํ•˜๋‹ค.
    2. ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
      • ์Šคํ…Œ์ด์ง•, ํ…Œ์ŠคํŠธ, ํ”„๋กœ๋•์…˜ ๋“ฑ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, CD๋Š” ๋ชจ๋“  ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์ผ๊ด€๋œ ๋ฐฐํฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.
    3. ์šด์˜ ์ค‘๋‹จ์„ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ
      • ์‚ฌ์šฉ์ž ํŠธ๋ž˜ํ”ฝ์ด ๋†’์€ ์„œ๋น„์Šค์—์„œ๋Š” ์šด์˜ ์ค‘๋‹จ ์—†์ด ๋ฐฐํฌ๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋ฏ€๋กœ, CD์˜ ์ž๋™ํ™”๋œ ๋กค๋ง ๋ฐฐํฌ๋‚˜ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ ์ „๋žต์ด ์œ ์šฉํ•˜๋‹ค.
    4. ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค๋‚˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜
      • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋‚˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์—, CD๋ฅผ ํ†ตํ•ด ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

     * CD๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ „๋‹ฌํ•ด์•ผ ํ•˜๊ณ , ๋ฐฐํฌ ๊ณผ์ •์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๊ณ ์ž ํ•  ๋•Œ ํ•„์š”ํ•˜๋‹ค.

 

 

 

 

 

 

 

๐Ÿ’ก CI์™€ CD๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ธ์ œ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?

๊ฐ€์žฅ ์ข‹์€ ์‹œ์ ์€ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ(๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ ์งํ›„)์ด๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๋ณต์žก๋„๋‚˜ ๊ทœ๋ชจ์— ๋”ฐ๋ผ ๊ตฌ์ถ• ์‹œ์ ๊ณผ ๋ฐฉ๋ฒ•์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ€๋Šฅํ•˜๋ฉด ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ๋กœ๋ผ๋„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ด๋‹ค. ์ดˆ๊ธฐ ์…‹์—… ๋‹จ๊ณ„์—์„œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•œ๋‹ค๋ฉด, ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ธฐ ์ „์— ์ฝ”๋“œ ํ’ˆ์งˆ๊ณผ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ๊ด€๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดˆ๊ธฐ ์…‹์—… ๋‹จ๊ณ„์—์„œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ–ˆ์„ ๋•Œ์˜ ์žฅ์ ๊ณผ ์…‹์—… ๋‹จ๊ณ„์—์„œ ๊ตฌ์ถ•์„ ๋†“์นœ ๊ฒฝ์šฐ ๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

 

 

- ์ดˆ๊ธฐ ์…‹์—… ๋‹จ๊ณ„์—์„œ CI/CD๋ฅผ ๊ตฌ์ถ•ํ–ˆ์„ ๋•Œ์˜ ์žฅ์ 

โœ”๏ธ ์ฝ”๋“œ ํ’ˆ์งˆ ํ™•๋ณด: ์ดˆ๊ธฐ๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ์™€ ์ฝ”๋“œ ๊ฒ€์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋ฉด ํ’ˆ์งˆ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.
โœ”๏ธ ๋ฐฐํฌ ํšจ์œจ์„ฑ: ์ˆ˜๋™ ๋ฐฐํฌ๋ฅผ ์ค„์ด๊ณ  ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
โœ”๏ธ ๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ: ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋น ๋ฅด๊ฒŒ ํ†ตํ•ฉ๋˜๊ณ  ํ…Œ์ŠคํŠธ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—… ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.
โœ”๏ธ ํ‘œ์ค€ํ™”๋œ ์›Œํฌํ”Œ๋กœ์šฐ: ํŒ€์›๋“ค์ด ์ผ๊ด€๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์–ด ํ˜ผ๋ž€์„ ์ค„์ด๊ณ  ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค.

 

 

 

- ์ดˆ๊ธฐ ์…‹์—… ๋‹จ๊ณ„์—์„œ CI/CD ๊ตฌ์ถ•์„ ๋†“์นœ ๊ฒฝ์šฐ ๋‹จ์ 

โ—๏ธ์ฝ”๋“œ ๋ฒ ์ด์Šค๊ฐ€ ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋‚˜์ค‘์— CI/CD๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋น„์šฉ์ด ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค.
โ—๏ธ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค.
โ—๏ธ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ๋ฐœ์ƒํ•œ ํ’ˆ์งˆ ๋ฌธ์ œ๋ฅผ ๋’ค๋Šฆ๊ฒŒ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์–ด ๋ฒ„๊ทธ ์ˆ˜์ •์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ๋‹ค.

 

 

 


 

 

 

 

 

 

 

๐Ÿ’ก CI/CD๊ฐ€ ๋ฌด์—‡์ธ์ง€, ํ•„์š”ํ•œ ํ™˜๊ฒฝ๊ณผ ๊ตฌ์ถ• ์‹œ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.

 

ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ๋ณด๋ฉด ์†Œ๊ทœ๋ชจ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์ธ๋ฐ ๊ตฌ์ถ•์„ ํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‚˜ ์‹ถ์€ ์ƒ๊ฐ์ด ๋“ค ์ˆ˜๋„ ์žˆ์ง€๋งŒ,

์ง€๋‚œ ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹ค๋ฅธ ํŒ€์›๋“ค์ด ๊ตฌ์ถ•์„ ํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด์„œ ์ง์ ‘ ํ•ด๋ณด๊ณ  ์‹ถ์€ ์ด์œ ๋„ ์žˆ๊ณ ,

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด ๊ตฌ์ถ•์„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

๊ทธ๋Ÿผ ์ด๋ฒˆ์—” CI/CD๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋„๊ตฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

 

 


 

 

 

 

 

 

 

๐Ÿ“Œ  CI/CD๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋„๊ตฌ

  ๋Œ€ํ‘œ์ ์ธ CI/CD ํˆด์—๋Š” GitHub Actions, Jenkins, GitLab CI/CD, Travis CI, Bamboo ๋“ฑ์ด ์žˆ๋‹ค.

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๋Š” GitHub Actions์™€ Jenkins ๋‘ ๊ฐ€์ง€๋ฅผ ๋น„๊ตํ•ด๋ณด์ž.

ํŠน์ง• GitHub Actions Jenkins
์„ค์น˜ GitHub์— ๋‚ด์žฅ ๋ณ„๋„ ์„ค์น˜ ํ•„์š”
์œ ์—ฐ์„ฑ GitHub์— ์ตœ์ ํ™” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์— ์ ํ•ฉ
๋Ÿฌ๋„ˆ ๊ด€๋ฆฌ GitHub ํ˜ธ์ŠคํŒ…(๊ธฐ๋ณธ) / ์…€ํ”„ ํ˜ธ์ŠคํŒ… ์ง€์› ์‚ฌ์šฉ์ž ์ง์ ‘ ๊ด€๋ฆฌ ํ•„์š”
๋น„์šฉ ์ œํ•œ๋œ ๋ฌด๋ฃŒ ์ œ๊ณต, ์ถ”๊ฐ€ ์‚ฌ์šฉ๋Ÿ‰ ์œ ๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค(์„œ๋ฒ„ ๋น„์šฉ ๋ณ„๋„)
ํ•™์Šต ๊ณก์„  ๋‚ฎ์Œ ๋‹ค์†Œ ๋†’์Œ
ํ™•์žฅ์„ฑ ์ œํ•œ์  ๋งค์šฐ ์œ ์—ฐ
์ปค๋ฎค๋‹ˆํ‹ฐ ์ตœ์‹  ๊ธฐ์ˆ , ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅ ์˜ค๋ž˜๋œ ์ปค๋ฎค๋‹ˆํ‹ฐ, ๋ฐฉ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ

 

 

  • GitHub Actions๋Š” GitHub ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ„๋‹จํ•˜๊ณ  ์‹ ์†ํ•œ CI/CD๋ฅผ ์›ํ•˜๋Š” ํŒ€์— ์ ํ•ฉํ•˜๋‹ค.
  • Jenkins๋Š” ๋ณต์žกํ•œ ์š”๊ตฌ์‚ฌํ•ญ, ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ, ํ™•์žฅ์„ฑ์„ ํ•„์š”๋กœ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค.

 

 

์œ„์˜ ํŠน์ง•์„ ๋ณด๊ณ  ์„ค์ •์ด ๊ฐ„ํŽธํ•˜๊ณ , ๋ณ„๋„์˜ ์„ค์น˜๊ฐ€ ํ•„์š” ์—†๋Š” GitHub Actions๋ฅผ ์‚ฌ์šฉํ•ด์„œ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

 

 

 

 

 

 

 

์—ฌ๊ธฐ๊นŒ์ง€ CI/CD์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.

์ด์–ด์„œ GitHub Actions๋ฅผ ํ†ตํ•ด CI/CD๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

[Spring & Spring Boot] - [CI/CD] ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์ ํŠธ - GitHub Actions๋ฅผ ํ†ตํ•œ CI/CD ๊ตฌ์ถ•ํ•˜๊ธฐ - (2)

 

 

* CI/CD์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์•„๋ž˜ ๊ธ€์„ ์ถ”์ฒœํ•œ๋‹ค.

 

<์ง€์‹ ์‚ฌ์ „> CI/CD๋ž€? DevOps์˜ ํ•ต์‹ฌ - ์ง€์†์  ํ†ตํ•ฉ/๋ฐฐํฌ์˜ ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ ์™„๋ฒฝ ์ •๋ฆฌ

์•ˆ๋…•ํ•˜์„ธ์š”, ์นด์นด์˜คํด๋ผ์šฐ๋“œ์ž…๋‹ˆ๋‹ค. ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ Continuous Integration/Continuous Deployment(์ดํ•˜, CI/CD)๋Š” ์„ ํƒ์ด ์•„๋‹Œ ํ•„์ˆ˜๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅธ ๊ฐœ๋ฐœ๊ณผ ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๋ฅผ ๋™์‹œ์— ๋‹ฌ์„ฑํ•˜๊ธฐ

blog.kakaocloud.com

 

 

 

 

 

 

 

๐Ÿ“Œ  ์ฐธ๊ณ 

 

CI/CD(CI CD, ์ง€์†์  ํ†ตํ•ฉ/์ง€์†์  ๋ฐฐํฌ): ๊ฐœ๋…, ํˆด, ๊ตฌ์ถ•, ์ฐจ์ด

CI/CD๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ†ตํ•ฉ ๋ฐ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ œ๊ณต ๋ฐ ๋ฐฐํฌ๊นŒ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ผ์ดํ”„์‚ฌ์ดํด ์ „์ฒด์—์„œ ์ง€์†์ ์ธ ์ž๋™ํ™”์™€ ์ง€์†์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

www.redhat.com

 

 

CI/CD๋ž€ ๋ฌด์—‡์ผ๊นŒ?

์˜ค๋Š˜์€ CI/CD์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ ํŽธํ•œ ๊ธ€์”จ์ฒด๋กœ ์ž‘์„ฑํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค :) CI/CD๋ž€? CI/CD๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ํ•œ ๋ฒˆ์ฏค์€ ๋‹ค๋“ค ๋“ค์–ด๋ดค์„ ๋งŒํ•œ ๋‹จ์–ด์ผ ๊ฒƒ์ด๋‹ค. CI/CD๋Š” ์• ํ”Œ๋ฆฌ

jud00.tistory.com