๐Ÿ’ป CI/CD ๊ฐœ๋… ์ •๋ฆฌ - ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration) / ์ง€์†์  ๋ฐฐํฌ(Continuous Deployment)

rimmzยท2022๋…„ 7์›” 7์ผ
0

๐Ÿค” | QnA

๋ชฉ๋ก ๋ณด๊ธฐ
10/13
post-thumbnail

CI/CD 5๋ถ„ ๊ฐœ๋… ์ •๋ฆฌ (ํ˜„์—…์—์„œ ์“ฐ๋Š” ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค)


โœ… ํ•ด๋‹น ์˜์ƒ์„ ๋ณด๊ณ  ์ •๋ฆฌํ•˜์—ฌ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

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

๋ฐ”๋กœ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์œ„ํ•ด์„œ ์„ธ๊ณ„์ ์œผ๋กœ ๋งŽ์€ ๊ธฐ์—…๋“ค์ด CI/CD๋ฅผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.


๐Ÿ” CI/CD

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


๐Ÿ’ก CI | ์ง€์†์  ํ†ตํ•ฉ, Continuous Integration

๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ๋“ค์ด main repository์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋˜๊ณ  ํ…Œ์ŠคํŠธ ๋˜์–ด Merge ๋˜๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค.

1991๋…„ ๊ทธ๋ž˜๋”” ๋ถ€์น˜(Grady Booch)์— ์˜ํ•ด ์ฒ˜์Œ ์‚ฌ์šฉ๋˜๋‹ค๊ฐ€ ๋‚˜์ค‘์—๋Š” ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(extreme programming) ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์—์„œ ์ฑ„ํƒ๋œ๋‹ค.

๊ทธ๋ž˜๋”” ๋ถ€์น˜(Grady Booch) ๐Ÿค”
๊ทธ๋ž˜๋”” ๋ถ€์น˜๋Š” ๋ฏธ๊ตญ์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์ด๋‹ค. ๋ž˜์…”๋„ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ˆ˜์„ ๊ณผํ•™์ž์ด๋‹ค. ์ด๋ฐ” ์•ผ์ฝฅ์Šจ, ์ œ์ž„์Šค ๋Ÿผ๋ฐ”์™€ ํ•จ๊ป˜ UML์„ ๊ฐœ๋ฐœํ•œ ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•˜๋‹ค.

์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(extreme programming) ๐Ÿค”
์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ผ„ํŠธ ๋ฐฑ ๋“ฑ์ด ์ œ์•ˆํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋น„์ฆˆ๋‹ˆ์Šค ์ƒ์˜ ์š”๊ตฌ๊ฐ€ ์‹œ์‹œ๊ฐ๊ฐ ๋ณ€๋™์ด ์‹ฌํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด๋‹ค.


๐Ÿ“ CI ํฌ์ธํŠธ

01. ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ทธ๋“ค์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ main repository์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๋นˆ๋ฒˆํ•˜๊ฒŒ Mergeํ•ด์•ผ ํ•œ๋‹ค.

๋™์ผํ•œ ์†Œ์Šค ํŒŒ์ผ ์œ„์—์„œ ๋‘ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ ์„œ๋กœ ๋ณ€๊ฒฝ์„ ํ•˜๋‹ค๊ฐ€ ๋‚˜์ค‘์— Merge๋ฅผ ํ•˜๋ ค๊ณ ํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ†ตํ•ฉํ•ด์„œ ์ ์šฉํ•ด ๋‚˜๊ฐˆ๊ฑด์ง€ ๊ณ ์ƒ์„ ๋งŽ์ด ํ•˜๊ฒŒ ๋œ๋‹ค.

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

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

02. ํ†ตํ•ฉ์„ ์œ„ํ•œ ๋‹จ๊ณ„ (Build, Test, Merge)

์ฃผ๊ธฐ์ ์œผ๋กœ Merge๋œ ์ด ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ ๋˜์–ด์„œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ดํ›„์—๋„ ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋˜๋Š”์ง€ ํ™•์ธ์ด ๋˜์–ด์•ผํ•œ๋‹ค.

์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐ์กด์˜ ์‹œ์Šคํ…œ์— ๋‹ค๋ฅธ ๋ฒ„๊ทธ๋ฅผ ์ดˆ๋ž˜ํ•˜์ง€๋Š” ์•Š์•˜๋Š”์ง€ ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ๋˜์–ด์•ผํ•œ๋‹ค.

ex) ๋ณดํ†ต ๊ฐœ๋ฐœํŒ€์—์„œ ์ง„ํ–‰ํ•˜๋Š” ์˜ˆ์‹œ

  • Main Repository๊ฐ€ ์žˆ๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์€ ํ•˜๋ฃจ์—๋„ ๋ช‡ ๋ฒˆ์”ฉ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ main repository์— Merge๋ฅผ ํ•œ๋‹ค.(๊ทธ์ „์— ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๊ฐ€ ์ ์ ˆํ•œ์ง€ ํ™•์ธ ๊ณผ์ • ํ•„์š”)

  • ์ด๋ ‡๊ฒŒ Merge๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ์ž๋™์œผ๋กœ ํŒ€์—์„œ ๋งŒ๋“  CI ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด์„œ ์ถ”๊ฐ€๋œ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ด repository๊ฐ€ ๋นŒ๋“œํ™”๊ฐ€ ๋˜๊ณ , ๋นŒ๋“œ๊ฐ€ ์ž˜ ๋œ๋‹ค๋ฉด ํŒ€์—์„œ ์ž‘์„ฑํ•œ ์œ ๋‹› ํ…Œ์ŠคํŠธ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋“ค๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด์„œ ์‹คํ–‰

  • ๋นŒ๋“œ๋„ ์ž˜ ๋˜๊ณ  ํ…Œ์ŠคํŠธ ์ž˜ ๋˜์–ด์„œ ์ดˆ๋ก์ƒ‰ ์‚ฌ์ธ(Green)์ด ๋‚˜์˜ค๋ฉด ๋ฌด์‚ฌํžˆ ํ†ต๊ณผ๊ฐ€ ๋˜์–ด์„œ ๋‚˜์ค‘์— ๋ฐฐํฌํ•  ๋•Œ ๋ฐ˜์˜์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

  • ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ๋นŒ๋“œ์— ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ๋นŒ๋“œ๋Š” ์„ฑ๊ณตํ–ˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธ์—์„œ ์‹คํŒจํ•œ๋‹ค๋ฉด ๋ ˆ๋“œ ์‚ฌ์ธ(Red)์ด ๋œจ๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚จ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ž๋™์œผ๋กœ ์•Œ๋ ค์ค€๋‹ค.


๐Ÿ‘๐Ÿป CI ์›์น™์„ ๋”ฐ๋ผ๊ฐˆ ๊ฒฝ์šฐ ์žฅ์ 

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

๐Ÿ’ก CD | ์ง€์†์  ๋ฐฐํฌ(์ œ๊ณต) , Continuous Deployment(Delivery)

๋งˆ์ง€๋ง‰ ๋ฐฐํฌ ๋‹จ๊ณ„์—์„œ ์–ด๋–ป๊ฒŒํ•˜๋ฉด ์ž๋™ํ™”ํ•ด์„œ ์ด ๋ฐฐํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ์ง€๋ฅผ ๊ณ ๋ฏผํ•˜๋Š” ๋‹จ๊ณ„

Continuous Delivery

  • CI๋ฅผ ํ†ตํ•ด์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ Merge๋œ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ๊ฐ€ ๋˜๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด,

  • ์ด์ œ ๋ฐฐํฌ ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ, Release ํ•  ์ค€๋น„ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ , ์ค€๋น„๋œ Release๊ฐ€ ๊ดœ์ฐฎ์€์ง€ ์ •์ƒ์ ์ธ์ง€ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ์ง์ ‘ ๊ฐœ๋ฐœ์ž๋‚˜ ๋˜๋Š” ๊ฒ€์ฆํŒ€์ด ๊ฒ€์ฆ์„ ํ•œ ๋‹ค์Œ์— "์ด์ œ ์ตœ์ข…์ ์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•ด๋„ ๋˜๊ฒ ๋‹ค!" ๋ผ๊ณ  ๊ฒฐ์ •์ด ๋˜๋ฉด

  • ์ˆ˜๋™์ ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ Continuous Delivery ๋ผ๊ณ  ํ•œ๋‹ค.

Continuous Deployment

  • Release๊ฐ€ ์ค€๋น„๊ฐ€ ๋˜์ž๋งˆ์ž ์ž๋™์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ๋ชจ๋“  ๊ณผ์ •์„ ์ž๋™ํ™” ํ•ด๋†“๋Š” ๊ฒƒ์„ Continuous Deployment ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Continuous Delivery ์™€ Continuous Deployment๋Š” ์‚ด์ง ๋น„์Šทํ•˜์ง€๋งŒ ์ตœ์ข… ๋‹จ๊ณ„๊ฐ€ ์ž๋™ํ™”๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ๋˜์ง€ ์•Š์•˜๋Š”์ง€์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ๋ชจ๋“  ๊ณผ์ •์„ ์–ด๋–ป๊ฒŒ ์ž๋™ํ™”๋ฅผ ํ•ด๋‘๋ƒ, ์–ด๋–ป๊ฒŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ฐ๋Š๋ƒ, ๊ทธ๋ฆฌ๊ณ  ์ด ์ž๋™ํ™”์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž์‹ ๊ฐ์ด ์žˆ๋Š๋ƒ์— ๋”ฐ๋ผ์„œ ์–ด๋–ค ํšŒ์‚ฌ๋“ค์€ ์ตœ์ข… ๋‹จ๊ณ„๋ฅผ ์ˆ˜๋™์ ์œผ๋กœ ๋ฆด๋ฆฌ์ฆˆ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์–ด๋–ค ํšŒ์‚ฌ๋Š” Continuous Deployment๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์–ด์š”.

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

โณ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์ •๋ฆฌ

CI์™€ CD๋Š” ์™„๋ฒฝํžˆ ๋ถ„๋ฆฌ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ์—์„œ CI์™€ CD๋ฅผ ๊ฑฐ์ณ์„œ ๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— CI/CD ๋ฌถ์–ด์„œ ๋ถ€๋ฅธ๋‹ค.

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์€ ๋‹จ์œ„๋กœ ๊ธฐ๋Šฅ์„ ๋‚˜๋ˆ„์–ด์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ main repository์— Merge
  2. ์ž๋™์œผ๋กœ ๋นŒ๋“œ
  3. ํ…Œ์ŠคํŠธ ๊ณผ์ •
  4. ๋ฆด๋ฆฌ์ฆˆ ์ค€๋น„
  5. ์ˆ˜๋™ ๋˜๋Š” ์ž๋™์œผ๋กœ ์ตœ์ข… ๋ฐฐํฌ ์™„๋ฃŒ

๐Ÿงฐ CI/CD๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ํˆด

ํšŒ์‚ฌ๋งˆ๋‹ค ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ ํˆด์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํšŒ์‚ฌ์—์„œ ์–ด๋–ค ํˆด์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ณ  ๊ทธ ํˆด์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํžˆ ์•Œ์•„๋ณด๊ณ  ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • Jenkins, Buildkite (์ฃผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํˆด)
  • GitHub Actions (์š”์ฆ˜ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํˆด)
  • GitLab CI/CD, Bitbucket Pipelines, circleci
profile
#์˜์š•๋„˜์น˜๋Š”#๐Ÿ’ป#โœจ#FE#๐Ÿ’ช๐Ÿป

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