CI/CD๋ž€?

niireymikยท2024๋…„ 5์›” 13์ผ

๐Ÿ’ก CI/CD๋ž€?

CI์™€ CD๋Š” ๊ฐ๊ฐ ์ง€์†์ ์ธ ํ†ตํ•ฉ, ๊ทธ๋ฆฌ๊ณ  ์ง€์†์ ์ธ ์ œ๊ณต[๋ฐฐํฌ]์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Š” ๊ฐœ๋…๋งŒ ๋‘๊ณ  ๋ณด์ž๋ฉด ์ž๋™ํ™”์™€ ์ง์ ‘์  ์—ฐ๊ด€์ด ์—†๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌถ์–ด ๋งํ•˜๋Š” CI/CD๋Š” ํ•ญ์ƒ '์ž๋™ํ™”'์˜ ๊ฐœ๋…์ด ๋”ฐ๋ผ ๋ถ™๋Š”๋‹ค. ์ž๋™ํ™”์˜ ๊ฐœ๋…์ด ๋ถ™๋Š” ๋ฐฐ๊ฒฝ์ด ๋ฌด์—‡์ธ์ง€, CI์™€ CD์˜ ์ •ํ™•ํ•œ ์˜๋ฏธ์™€ ๊ณผ์ •์„ ์ž๋™ํ™” ๊ฐœ๋…๊ณผ ํ•จ๊ป˜ ์•Œ์•„๋ณด์ž.



๐Ÿ“Œ CI (Continuous Integration)

CI์˜ ์˜๋ฏธ

Continuous Integration์€ ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋˜๋ฉด์„œ ๊ณต์œ ๋˜๋Š” ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์— ํ†ตํ•ฉ(merge)๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.


CI๊ฐ€ ์™œ ์ค‘์š”ํ•ด?

์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์ƒ๊ฐํ•ด ๋ณด์ž. ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, Git ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ, ๊ทธ ํ”„๋กœ์ ํŠธ์— 2๋ช… ์ด์ƒ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ mergeํ•˜์ง€ ์•Š๊ณ , 2์ผ 3์ผ ํ˜น์€ ๋” ์˜ค๋žœ ๊ธฐ๊ฐ„๋™์•ˆ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๋ฉฐ์น ๋™์•ˆ ์ž‘์—…ํ•œ ๋งŽ์€ ์ฝ”๋“œ๋“ค์„ ํ•œ ๋ฒˆ์— mergeํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

๋‹น์—ฐํžˆ, ์ถฉ๋Œ๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ์ƒ๊ฒจ๋‚  ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค, ์ถฉ๋Œํ•˜๋Š” ๋งŽ์€ ์ฝ”๋“œ๋“ค์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ์ข‹์€ ๋ฐฉํ–ฅ์ด ์•„๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ์—, ๊ฐ€๋Šฅํ•œ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋นˆ๋ฒˆํžˆ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ํ†ตํ•ฉํ•˜์—ฌ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

๋นˆ๋ฒˆํ•˜๊ฒŒ mergeํ•˜๋Š” ๊ฒฝ์šฐ, ๊ทธ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ฒ ๋‹ค.

  1. ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ณ„์†ํ•ด์„œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉํ•œ๋‹ค.
  2. ํ†ตํ•ฉํ•œ ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
  3. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๊ฒฐํ•œ๋‹ค.

CI์™€ ์ž๋™ํ™”

์œ„์˜ ๋‹จ๊ณ„๋Š”, "๊ท€์ฐฎ๋‹ค" ๋ผ๋Š” ์น˜๋ช…์ ์ธ ๋‹จ์ ์ด ์žˆ๋‹ค.
๋นˆ๋ฒˆํ•˜๊ฒŒ ํ†ตํ•ฉํ•ด์ค„ ๋•Œ๋งˆ๋‹ค ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ณผ์ •์ด๊ธฐ์—, ํ•œ ๋ฒˆ์— ๋ชฐ์•„์„œ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ทธ ์‹œ๊ฐ„๋ณด๋‹ค ํ›จ์”ฌ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ๋„ ์žˆ๋‹ค.

๋ฌผ๋ก  ํ•œ ๋ฒˆ์— ํ…Œ์ŠคํŠธํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ์ฝ”๋“œ๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ค ๊ณ ์น˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๋น ๋ฅด๊ณ  ์ข‹์€ ๋ฐฉ๋ฒ•์ผ์ง€๋ผ๋„, ๋‹น์žฅ์€ ๊ท€์ฐฎ์€ ์ž‘์—…์ธ ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ "๊ทธ๋Ÿฌ๋ฉด, ๊ตณ์ด ์‚ฌ๋žŒ์ด ํ•  ํ•„์š”๊ฐ€ ์—†์ง€ ์•Š์•„?" ํ•˜๋Š” ์ƒ๊ฐ์—, ์ž๋™ํ™”์˜ ๊ฐœ๋…์ด ๋”ฐ๋ผ ๋ถ™๋Š”๋‹ค. ์ด๊ฒƒ์ด์•ผ๋ง๋กœ ๋˜‘๊ฐ™์ด ๋ฐ˜๋ณต๋˜๋Š” ๊ท€์ฐฎ์€ ์ž‘์—…์„ ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„, ์ฃผ๊ธฐ์ ์ธ merge๋กœ ์ถฉ๋Œ์€ ์ตœ์†Œํ™”ํ•˜๋Š” ํŽธํ•œ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ์ด๋‹ค :>

์ž๋™ํ™”๋˜์—ˆ์„ ๋•Œ์˜ ๊ณผ์ •

  1. ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ณ„์†ํ•ด์„œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉํ•œ๋‹ค.
  2. (๋นŒ๋“œ&ํ…Œ์ŠคํŠธ ์ž๋™) ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ํ™•์ธํ•ด์„œ ํ•ด๊ฒฐํ•œ๋‹ค.

CI์˜ ์žฅ์ 

  • ์ฝ”๋“œ์˜ ๊ฒ€์ฆ์— ๋“ค์–ด๊ฐ€๋Š” ์‹œ๊ฐ„์ด ์ค„์–ด๋“ ๋‹ค.
  • ๊ฐœ๋ฐœ์˜ ํŽธ์˜์„ฑ์ด ์ฆ๊ฐ€ํ•œ๋‹ค.
  • ํ•ญ์ƒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ๋งŒ์ด ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ฐ€๊ธฐ ๋•Œ๋ฌธ์—, ์ข‹์€ ์ฝ”๋“œ ํ€„๋ฆฌํ‹ฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ“Œ CD (Continuous Delevery)

CD์˜ ์˜๋ฏธ์™€ ์ž๋™ํ™”

์ง€์†์ ์ธ ์ œ๊ณต(Continuous Delivery) ๊ณผ ์ง€์†์ ์ธ ๋ฐฐํฌ(Continuous Deployment)์˜ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค. ์ด ๋‘ ์šฉ์–ด๋Š” ์ƒํ˜ธ ๊ตํ™˜์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

CI์—์„œ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋œ ํ›„์—, ๋ฐฐํฌ ๋‹จ๊ณ„์—์„œ releaseํ•  ์ค€๋น„ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ํŒ€์ด ๊ฒ€์ฆ์„ ํ•œ๋‹ค.

๊ทธ ํ›„์— ๊ฒฐ๋ก ์ด "์ด์ œ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด๋„ ๋˜๊ฒ ๋‹ค!" ๋ผ๊ณ  ๋‚˜์„œ ๋ฐฐํฌ๋ฅผ ์ˆ˜๋™์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด continuous Delivery, ์ง€์†์ ์ธ ์ œ๊ณต์ด๋‹ค.

๋˜ํ•œ, ์œ„์™€ ๊ฐ™์ด ๋ฐฐํฌํ•œ ์ค€๋น„๊ฐ€ ๋˜์ž๋งˆ์ž ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ Continuous Deployment, ์ง€์†์ ์ธ ๋ฐฐํฌ์ด๋‹ค.

CD๋ฅผ ์ ์šฉํ•œ ํ›„์˜ ํ๋ฆ„
1. CI๋ฅผ ์ ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค.
2. ๋ฐฐํฌ ํ™˜๊ฒฝ๊ณผ ๋น„์Šทํ•œ ๊ณณ์—์„œ ๊ฒ€์ฆ์„ ์ง„ํ–‰ํ•œ๋‹ค.
3. ๊ฒ€์ฆ๋œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹ค์ œ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•œ๋‹ค.

CI์™€ CD๋Š” ์–ด๋А ์ •๋„๋ฅผ ์ž๋™ํ™”ํ• ์ง€์— ๋”ฐ๋ผ ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง€๊ธฐ์—, CI/CD๋ผ๊ณ  ํ•ด์„œ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ํšŒ์‚ฌ ํ˜น์€ ํŒ€๋งˆ๋‹ค ๊ทธ ์ •๋„๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.


์ง€์†์  ๋ฐฐํฌ์˜ ์‚ฌ๋ก€

์ง€์†์  ๋ฐฐํฌ์˜ ๊ฐ€์žฅ ํ”ํ•œ ์‚ฌ๋ก€๊ฐ€ Github Pages ์ด๋‹ค. ์ง€์ •ํ•ด๋‘” ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ •ํ•ด์ง„ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์ž˜ ์ปค๋ฐ‹ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด, Github Pages๊ฐ€ ์•Œ์•„์„œ ํ•ด๋‹น ํŒŒ์ผ์„ ์ž˜ ๋ฒˆ๋“ค๋งํ•ด์„œ Github Page ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ž๋™์œผ๋กœ ์ธํ„ฐ๋„ท์— ๋ฐฐํฌ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋กœ์จ ๊ฒฐ๊ณผ๋ฌผ์„ ์ง์ ‘ ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ฃผ๋ณ€์œผ๋กœ๋ถ€ํ„ฐ ๋น ๋ฅด๊ฒŒ ํ”ผ๋“œ๋ฐฑ๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

*๋ฒˆ๋“ค๋ง : ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ์ž‘์—… (์ฃผ๋กœ ์›น ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด)


CD์˜ ์žฅ์ 

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


CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ DevOps

์ „์ฒด ๋ฐฐํฌ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆฌ๋ฉด, ๊ทธ ์ฝ”๋“œ๊ฐ€ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ์™€ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ๊ฑฐ์ณ ๋ฐฐํฌ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ ๋œ๋‹ค. ๋ฐฐํฌ ์„œ๋ฒ„์— ๋„๋‹ฌํ•œ ๋นŒ๋“œ๋œ ์ฝ”๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ ์ตœ์ข… ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ ๋˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์„ ์œ ์ €๊ฐ€ ์ง์ ‘ ํ™•์ธํ•˜๊ฒŒ ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ '์ž๋™ํ™”'๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๋ถ€๋ถ„์€ ๋ณดํ†ต ์ฝ”๋“œ๊ฐ€ ๋นŒ๋“œ๋˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๋˜๋Š” ๋‹จ๊ณ„๊นŒ์ง€์ด๋‹ค. ์ด ๋ถ€๋ถ„์„ ์ง€์†์ ์ธ ํ†ตํ•ฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ์œ„ํ•˜์—ฌ ์ผ๋ จ์˜ ์ž๋™ํ™” ๋‹จ๊ณ„๋กœ ๋งŒ๋“œ๋Š”๋ฐ, ์ด๊ฒƒ์„ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•œ๋‹ค๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.


ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ถ„๋ฆฌ

*ํŒŒ์ดํ”„๋ผ์ธ(Pipeline) : ๋ฐฐํฌ์—์„œ ์ด ์šฉ์–ด๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ด€๋ฆฌ๋ถ€ํ„ฐ ์‹ค์ œ ์„œ๋น„์Šค๋กœ์˜ ๋ฐฐํฌ ๊ณผ์ •์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋œปํ•œ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ์„ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๋ถ„๋ฆฌํ•  ๋•Œ, ๋Œ€ํ‘œ์ ์œผ๋กœ ์“ฐ์ด๋Š” ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Source ๋‹จ๊ณ„: ์›๊ฒฉ ์ €์žฅ์†Œ์— ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” ์†Œ์Šค ์ฝ”๋“œ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ, ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ „๋‹ฌ
  • Build ๋‹จ๊ณ„: Source ๋‹จ๊ณ„์—์„œ ์ „๋‹ฌ๋ฐ›์€ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธํ•˜์—ฌ ๊ฐ€๊ณตํ•˜๋ฉฐ, Build ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ „๋‹ฌ
  • Deploy ๋‹จ๊ณ„: Build ๋‹จ๊ณ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฌผ์„ ์‹ค์ œ ์„œ๋น„์Šค์— ๋ฐ˜์˜

ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋‹จ๊ณ„๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋” ์„ธ๋ถ„ํ™”๋˜๊ฑฐ๋‚˜ ๊ฐ„์†Œํ™”๋  ์ˆ˜ ์žˆ๊ณ  DevOps๋ฅผ ์ „๋ฌธ์œผ๋กœ ํ•™์Šตํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋‹จ๊ณ„๋ฅผ ์„ธ๋ถ„ํ™”ํ•ด์„œ ๋‚˜๋ˆ„๊ธฐ๋„ ํ•œ๋‹ค.

CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ ์š”์†Œ
๋นŒ๋“œ (์†Œํ”„ํŠธ์›จ์–ด ์ปดํŒŒ์ผ)
ํ…Œ์ŠคํŠธ (ํ˜ธํ™˜์„ฑ ๋ฐ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ)
๋ฆด๋ฆฌ์Šค (๋ฒ„์ „ ์ œ์–ด ์ €์žฅ์†Œ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๋ฐ์ดํŠธ)
๋ฐฐํฌ (๊ฐœ๋ฐœ์—์„œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ์˜ ๋ณ€ํ™˜)
๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ


๋ฐ๋ธŒ์˜ต์Šค DevOps

| Development + Operation

-> ๊ฐœ๋ฐœ๋‹ด๋‹น์ž์™€ ์šด์˜๋‹ด๋‹น์ž๊ฐ€ ์—ฐ๊ณ„ํ•˜์—ฌ ํ˜‘๋ ฅํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 

์ฆ‰, ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž์™€ ์šด์˜์„ ๋‹ด๋‹นํ•˜๋Š” ์ •๋ณด๊ธฐ์ˆ  ์ „๋ฌธ๊ฐ€ ์‚ฌ์ด์˜ ์†Œํ†ต, ํ˜‘์—…, ํ†ตํ•ฉ ๋ฐ ์ž๋™ํ™”๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ๋ธŒ์˜ต์Šค์˜ ๊ฐœ๋…์€ ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด(Agile software) ๊ฐœ๋ฐœ๊ณผ CI/CD ๊ฐœ๋…๊ณผ๋„ ๊ด€๋ จ์ด ์žˆ๋‹ค.

*์• ์ž์ผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค : ์งง์€ ์ผ์ • ์ฃผ๊ธฐ์— ๋”ฐ๋ผ ๊ณ„์†ํ•ด์„œ ํ”„๋กœํ† ํƒ€์ž…์„ ํ˜•์„ฑํ•˜๊ณ  ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ฆ‰์‹œ ๊ฐœ๋ฐœ ๋ฐ ์ ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•

๋ฐ๋ธŒ์˜ต์Šค๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์ธ ๊ฒƒ์ด๋‹ค. ์ฆ‰, CI์™€ CD์˜ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด์„œ ๊ฐœ๋ฐœ๋ถ€์„œ์™€ ์šด์˜๋ถ€์„œ๊ฐ€ ํ•จ๊ป˜ ์ƒํ˜ธ ํ˜‘๋ ฅํ•˜๋ฉฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์šด์˜ํ•ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๋ฐ๋ธŒ์˜ต์Šค ์žฅ์ 

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

0๊ฐœ์˜ ๋Œ“๊ธ€