๊ธฐ์—…์šฉ ์ตœ๊ณ  CI/CD ๋„๊ตฌ ๋น„๊ต

๊ธฐ์—…์šฉ ์ฃผ์š” CI/CD ๋„๊ตฌ ๋น„๊ต: ์•„ํ‚คํ…์ฒ˜, ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ๋ฐฐํฌ ์œ„ํ—˜

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

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

CI/CD ์‹œ์Šคํ…œ ํ˜„๋Œ€ํ™”

SMART TS XL CI/CD ํŒŒ์ดํ”„๋ผ์ธ, ๊ณต์œ  ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์ธํ”„๋ผ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์ˆจ๊ฒจ์ง„ ์ข…์†์„ฑ์„ ๋ฐํ˜€๋ƒ…๋‹ˆ๋‹ค.

์ง€๊ธˆ ํƒ์ƒ‰

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

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

์ฐจ๋ก€

SMART TS XL CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์ „๋ฐ˜์— ๊ฑธ์นœ ํ–‰๋™ ๊ฐ€์‹œ์„ฑ ํ™•๋ณด

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

SMART TS XL ์ด ์†”๋ฃจ์…˜์€ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์ ์ธ ๊ตฌ์„ฑ์ด ์•„๋‹Œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์œผ๋กœ ์ทจ๊ธ‰ํ•จ์œผ๋กœ์จ ์ด๋Ÿฌํ•œ ๊ฒฉ์ฐจ๋ฅผ ํ•ด์†Œํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ๋ฌธ์ด๋‚˜ ๋„๊ตฌ๋ณ„ ๋Œ€์‹œ๋ณด๋“œ์— ์ดˆ์ ์„ ๋งž์ถ”๋Š” ๋Œ€์‹ , ๋นŒ๋“œ ์„œ๋ฒ„, ๋Ÿฌ๋„ˆ, ๋ฐฐํฌ ๋‹จ๊ณ„ ๋ฐ ๋‹ค์šด์ŠคํŠธ๋ฆผ ํ™˜๊ฒฝ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋ฐฐํฌ ๋กœ์ง์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ด€์ ์€ ์—ฌ๋Ÿฌ CI/CD ๋„๊ตฌ๊ฐ€ ๊ณต์กดํ•˜๊ณ  ๋ฐฐํฌ ๋™์ž‘์ด ๋‹จ์ผ ํ”Œ๋žซํผ์ด ์•„๋‹Œ ๋„๊ตฌ ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์—์„œ ๋น„๋กฏ๋˜๋Š” ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๊ธฐ

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

SMART TS XL ์ด ๋„๊ตฌ๋Š” ์ž‘์—… ์ˆœ์„œ ์ง€์ •, ์•„ํ‹ฐํŒฉํŠธ ์Šน๊ฒฉ ๋ฐ ํ™˜๊ฒฝ ์ „ํ™˜์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋ณธ ๋…ผ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๋ฅผ ๋ช…ํ™•ํžˆ ํ•จ์œผ๋กœ์จ ๊ธฐ์—…์€ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ ํŒŒ์ผ์ด๋‚˜ ๋„๊ตฌ ์ˆ˜์ค€์˜ ์ง€ํ‘œ๋ฅผ ๋„˜์–ด ๋ฐฐ์†ก ์œ„ํ—˜์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ๊ธฐ๋ฐ˜์„ ํ™•๋ณดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

CI/CD ๋„๊ตฌ ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋‚˜๋“œ๋Š” ์˜์กด์„ฑ ์ฒด์ธ

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

SMART TS XL ์„ ์–ธ๋œ ํ†ตํ•ฉ์— ์˜์กดํ•˜๋Š” ๋Œ€์‹  ์‹คํ–‰ ๋กœ์ง์„ ์ƒํ˜ธ ์—ฐ๊ด€์‹œ์ผœ ๋„๊ตฌ ๊ฐ„ ์ข…์†์„ฑ ์ฒด์ธ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด ๊ธฐ๋Šฅ์€ ํŠนํžˆ CI/CD ๋„๊ตฌ ํ†ตํ•ฉ ๋˜๋Š” ํ˜„๋Œ€ํ™” ์ž‘์—… ์ค‘์— ๊ธฐ์กด ์ข…์†์„ฑ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํšŒ๊ท€๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ผ ๋•Œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ƒ์‚ฐ ๋‹จ๊ณ„์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ๋ฐฐ์†ก ์œ„ํ—˜์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ CI/CD ๋ชจ๋‹ˆํ„ฐ๋ง์€ ์ž‘์—… ์„ฑ๊ณต๋ฅ ์ด๋‚˜ ๋ฐฐํฌ ๋นˆ๋„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹ ํ˜ธ๋Š” ์‚ฌํ›„ ๋Œ€์‘์ ์ธ ๊ฒƒ์œผ๋กœ, ์ด๋ฏธ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์‹คํŒจํ–ˆ๊ฑฐ๋‚˜ ์†๋„๊ฐ€ ๋А๋ ค์กŒ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. SMART TS XL ๊ฐ€์‹œ์ ์ธ ์‹คํŒจ์— ์•ž์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ตฌ์กฐ์  ์ง€ํ‘œ์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค.

์ด๋Ÿฌํ•œ ์ง€ํ‘œ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ์กฐ๊ฑด๋“ค์„ ์กฐ๊ธฐ์— ํŒŒ์•…ํ•จ์œผ๋กœ์จ, SMART TS XL ์ด๋ฅผ ํ†ตํ•ด ํŒ€์€ ์„œ๋น„์Šค ์ค‘๋‹จ, ๋กค๋ฐฑ ์ด๋ฒคํŠธ ๋˜๋Š” ์žฅ๊ธฐ๊ฐ„์˜ ๋ฆด๋ฆฌ์Šค ๋™๊ฒฐ๋กœ ์ด์–ด์ง€๊ธฐ ์ „์— ๋ฐฐํฌ ์ทจ์•ฝ์„ฑ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์—… CI/CD ํ˜„๋Œ€ํ™” ์ง€์›

CI/CD ํ˜„๋Œ€ํ™”๋Š” ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ์ €์žฅ์†Œ ํ†ตํ•ฉ ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„์ž…๊ณผ ๊ฐ™์€ ๊ด‘๋ฒ”์œ„ํ•œ ํ”Œ๋žซํผ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ์™€ ํ•จ๊ป˜ ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ „ํ™˜ ๊ณผ์ •์—์„œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์€ ์ ์ง„์ ์œผ๋กœ ์žฌ๊ตฌ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ”ํ•˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ์˜๋„์น˜ ์•Š์€ ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ์ปค์ง‘๋‹ˆ๋‹ค.

SMART TS XL ํŒŒ์ดํ”„๋ผ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ „๋‹ฌ ๋™์ž‘์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€์— ๋Œ€ํ•œ ์‹คํ–‰ ์ค‘์‹ฌ์ ์ธ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•˜์—ฌ ํ˜„๋Œ€ํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์กฐ์ง์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์กด ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ํ˜„๋Œ€ํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ–‰๋™ ์ˆ˜์ค€์—์„œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  • ์žฌ๊ตฌ์„ฑ๋œ ํŒŒ์ดํ”„๋ผ์ธ์ด ํ•ต์‹ฌ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์œ ์ง€ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ์ˆœํ™”์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฏธ์ ์ธ ์ธก๋ฉด๋ณด๋‹ค๋Š” ์œ„ํ—˜๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•˜์‹ญ์‹œ์˜ค.
  • ๊ธฐ์กด ์‹œ์Šคํ…œ๊ณผ ํ•จ๊ป˜ ์ƒˆ๋กœ์šด CI/CD ํˆด์„ ๋„์ž…ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ถˆํ™•์‹ค์„ฑ์„ ์ค„์ž…๋‹ˆ๋‹ค.

CI/CD ํ”Œ๋žซํผ์„ ๊ต์ฒดํ•˜๋Š” ๋Œ€์‹ , SMART TS XL ์ด ๊ธฐ๋Šฅ์€ ์‹ค์ œ ๊ธฐ์—… ๋ฐฐํฌ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ํ•ด๋‹น ํ”Œ๋žซํผ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” ๋ถ„์„ ๊ณ„์ธต ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” CI/CD ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ์กฐ์ง์˜ ๊ฒฝ์šฐ, ์ด๋Ÿฌํ•œ ๋™์ž‘ ๊ฐ€์‹œ์„ฑ์€ ์ œ์–ด๊ถŒ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฐฐํฌ ์†๋„๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

๊ธฐ์—… ๋ฐฐํฌ ๋ชฉํ‘œ๋ณ„ CI/CD ๋„๊ตฌ ๋น„๊ต

CI/CD ๋„๊ตฌ๋“ค์€ ๋งˆ์น˜ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋น„๊ต๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ, ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•œ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ”Œ๋žซํผ์€ ๋Œ€์šฉ๋Ÿ‰ ๋นŒ๋“œ ์ž๋™ํ™”์— ์ตœ์ ํ™”๋˜์–ด ์žˆ๊ณ , ๋‹ค๋ฅธ ํ”Œ๋žซํผ์€ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐฐํฌ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์—, ๋˜ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์€ ๊ฑฐ๋ฒ„๋„Œ์Šค ์ค‘์‹ฌ์˜ ๋ฆด๋ฆฌ์Šค ๊ด€๋ฆฌ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชฉํ‘œ ๋‹ฌ์„ฑ ๋ฐฉ์•ˆ์„ ๋ช…ํ™•ํžˆ ํ•˜์ง€ ์•Š๊ณ  ๋„๊ตฌ๋ฅผ ๋น„๊ตํ•˜๋ฉด ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ์žฅ๊ธฐ์ ์ธ ์šด์˜ ์œ„ํ—˜์„ ์ดˆ๋ž˜ํ•˜๋Š” ์ž˜๋ชป๋œ ์„ ํƒ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์  ํ‚จ์Šค

๊ณต์‹ ์‚ฌ์ดํŠธ: ์  ํ‚จ์Šค

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

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

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

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

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

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

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

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

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

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

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

์ตœ์‹  CI/CD ํ™˜๊ฒฝ์—์„œ Jenkins๋Š” ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋“œ๋ญ…๋‹ˆ๋‹ค. ๊ด€๋ฆฌํ˜• CI ์„œ๋น„์Šค๋‚˜ GitOps ๋ฐฐํฌ ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๋ฐฐํฌ ๋ฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Jenkins๋ฅผ ๋‹จ์ˆœํžˆ ๋„๊ตฌ๊ฐ€ ์•„๋‹Œ ์‹คํ–‰ ํ”Œ๋žซํผ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ˆจ๊ฒจ์ง„ ๋ฐฐํฌ ์œ„ํ—˜์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

GitLab CI / CD

๊ณต์‹ ์‚ฌ์ดํŠธ: GitLab CI/CD

GitLab CI/CD๋Š” ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์— ์ง์ ‘ ๋‚ด์žฅ๋œ ํ†ตํ•ฉ ๋ฐฐํฌ ์‹œ์Šคํ…œ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋…๋ฆฝํ˜• CI ์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ GitLab CI/CD๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ์ €์žฅ์†Œ, ๋ณ‘ํ•ฉ ์š”์ฒญ ๋ฐ ๋ฆด๋ฆฌ์Šค ์›Œํฌํ”Œ๋กœ์™€ ํ•จ๊ป˜ ๋ฐœ์ „ํ•˜๋Š” ํ•ต์‹ฌ ์•„ํ‹ฐํŒฉํŠธ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธด๋ฐ€ํ•œ ์—ฐ๋™์€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ์—์„œ ๊ฐ•์ ๊ณผ ํ•œ๊ณ„๋ฅผ ๋ชจ๋‘ ๋‚ดํฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ์ธก๋ฉด์—์„œ GitLab CI/CD๋Š” ๋ถ„์‚ฐ ๋Ÿฌ๋„ˆ๋ฅผ ํ†ตํ•ด ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰์„ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ํ•˜๋Š” ์ค‘์•™ ์ง‘์ค‘์‹ ์ œ์–ด ํ”Œ๋ ˆ์ธ์„ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ ์ •์˜๋Š” YAML ํ˜•์‹์œผ๋กœ ์„ ์–ธ์ ์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๋ฐฐํฌ ๋™์ž‘ ๊ฐ„์˜ ์ถ”์ ์„ฑ์ด ๊ฐ•ํ™”๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์€ ํŒŒ์ดํ”„๋ผ์ธ ๋กœ์ง๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ด€๋ฆฌ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์ค„์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๊ทœ๋ชจ ํฌํŠธํด๋ฆฌ์˜ค ์ „๋ฐ˜์— ๊ฑธ์ณ ํ‘œ์ค€ํ™”๋œ ๋ฐฐํฌ ํŒจํ„ด์„ ์ถ”๊ตฌํ•˜๋Š” ์กฐ์ง์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

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

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

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

์‹คํ–‰ ๊ด€์ ์—์„œ GitLab CI/CD๋Š” ์ผ๊ด€์„ฑ๊ณผ ์žฌํ˜„์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๋Ÿฌ๋„ˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋น„๋กฏํ•œ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜์—ฌ ํ™˜๊ฒฝ ์ „๋ฐ˜์— ๊ฑธ์ณ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๊ณต์œ  ๋Ÿฌ๋„ˆ๋Š” ์˜จ๋ณด๋”ฉ์„ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐ˜๋ฉด, ์ž์ฒด ํ˜ธ์ŠคํŒ… ๋Ÿฌ๋„ˆ๋Š” ๊ธฐ์—…์ด ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ, ๊ทœ์ • ์ค€์ˆ˜ ์ œ์–ด ๋ฐ ์„ฑ๋Šฅ ๋ณด์žฅ์„ ์‹œํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

  • GitLab ์ƒํƒœ๊ณ„์™€์˜ ๊ธด๋ฐ€ํ•œ ์—ฐ๊ด€์„ฑ์œผ๋กœ ์ธํ•ด ์ด์‹์„ฑ์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • ํ…œํ”Œ๋ฆฟ์„ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ํŒŒ์ดํ”„๋ผ์ธ์€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Ÿฌ๋„ˆ ํฌํ™”๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ ๋ถ„์„ ์—†์ด๋Š” ํ”„๋กœ์ ํŠธ ๊ฐ„ ์ข…์†์„ฑ ํŒŒ์•…์ด ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.

GitLab CI/CD๋Š” ํˆด๋ง ํ†ตํ•ฉ๊ณผ ์ฝ”๋“œ ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌ ๊ฐ„์˜ ๊ฐ•๋ ฅํ•œ ์—ฐ๊ณ„๋ฅผ ์ถ”๊ตฌํ•˜๋Š” ๊ธฐ์—…์— ํŠนํžˆ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ํ™”๋œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋Œ€๊ทœ๋ชจ๋กœ ์ง€์›ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ํˆด์„ ์‚ฌ์šฉํ•˜๋Š” CI/CD ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŒŒํŽธํ™”๋ฅผ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ SCM, ๋ฐฐํฌ ์—”์ง„ ๋˜๋Š” ๊ธฐ์กด ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์กดํ•ด์•ผ ํ•˜๋Š” ์ด๊ธฐ์ข… ํ™˜๊ฒฝ์—์„œ๋Š” ํ•œ๊ณ„๊ฐ€ ๋”์šฑ ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค.

์„ฑ์ˆ™ํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐฐํฌ ์‹œ์Šคํ…œ์—์„œ GitLab CI/CD๋Š” ์ข…์ข… ์ „๋ฌธ์ ์ธ ๋ฐฐํฌ ๋˜๋Š” ๋ฆด๋ฆฌ์Šค ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์ค‘์•™ ์กฐ์ • ๊ณ„์ธต ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋ฐฐํฌ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด GitLab์„ ํŽธ์˜ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ์‹คํ–‰ ํ”Œ๋žซํผ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

GitHub ์•ก์…˜

๊ณต์‹ ์‚ฌ์ดํŠธ: GitHub Actions

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

์•„ํ‚คํ…์ฒ˜ ๊ด€์ ์—์„œ GitHub Actions๋Š” CI/CD ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋ฐ˜์‘ํ˜• ์‹œ์Šคํ…œ์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ์šฐ๋Š” YAML ํ˜•์‹์œผ๋กœ ์„ ์–ธ์ ์œผ๋กœ ์ •์˜๋˜๋ฉฐ GitHub ํ”Œ๋žซํผ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์‹คํ–‰์€ ํ˜ธ์ŠคํŒ…๋˜๊ฑฐ๋‚˜ ์ž์ฒด ๊ด€๋ฆฌ๋˜๋Š” ๋Ÿฌ๋„ˆ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ๊ฐ ์ž‘์—…์€ ์ž„์‹œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์€ ์„ค์ •์„ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์˜๊ตฌ์ ์ธ ์ƒํƒœ ์ €์žฅ์„ ์ค„์ด์ง€๋งŒ, ์‹คํ–‰ ๋™์ž‘์ด ์•„ํ‹ฐํŒฉํŠธ์™€ ์ปจํ…์ŠคํŠธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์™ธ๋ถ€ํ™”ํ•ด์•ผ ํ•˜๋Š” ๋‹จ๊ธฐ์ ์ด๊ณ  ์ƒํƒœ ๋น„์ €์žฅ ์‹คํ–‰์œผ๋กœ ์ „ํ™˜๋˜๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

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

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

  • GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๋ฐ ๋ฆด๋ฆฌ์Šค์™€์˜ ๊ธฐ๋ณธ ํ†ตํ•ฉ
  • ์ฝ”๋“œ ๋ฐ ํ”Œ๋žซํผ ํ™œ๋™ ์ „๋ฐ˜์— ๊ฑธ์นœ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ ํŠธ๋ฆฌ๊ฑฐ๋ง
  • ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ์ž‘์—…์„ ์œ„ํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์•ก์…˜์˜ ๊ด‘๋ฒ”์œ„ํ•œ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค
  • ๋งคํŠธ๋ฆญ์Šค ๋นŒ๋“œ ๋ฐ ๋ณ‘๋ ฌ ์ž‘์—… ์‹คํ–‰ ์ง€์›

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

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

์šด์˜ ๊ฐ€์‹œ์„ฑ ํ™•๋ณด ๋˜ํ•œ ์–ด๋ ค์šด ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. GitHub Actions๋Š” ์ž‘์—… ์ˆ˜์ค€์˜ ๋กœ๊ทธ์™€ ์ƒํƒœ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ์›Œํฌํ”Œ๋กœ ๊ฐ„ ์ข…์†์„ฑ์ด๋‚˜ ๊ณต์œ  ์ธํ”„๋ผ ๊ฒฝํ•ฉ์„ ํŒŒ์•…ํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ˆ˜๋ฐฑ ๋˜๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ ์›Œํฌํ”Œ๋กœ๋ฅผ ์šด์˜ํ•˜๋Š” ๊ธฐ์—…์€ ํŠนํžˆ ์›Œํฌํ”Œ๋กœ๊ฐ€ ๊ณต์œ  ํ™˜๊ฒฝ์ด๋‚˜ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์ ์ธ ๋ฐฐํฌ ์œ„ํ—˜์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

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

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

๋Œ€๊ทœ๋ชจ ๊ธฐ์—…์—์„œ GitHub Actions๋Š” ์ข…์ข… ํ•˜์œ„ ๋ฐฐํฌ ๋˜๋Š” ๋ฆด๋ฆฌ์Šค ์‹œ์Šคํ…œ์— ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” CI ๊ณ„์ธต ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์›Œํฌํ”Œ๋กœ๋ฅผ ๋‹จ์ˆœํ•œ ์ž๋™ํ™”๊ฐ€ ์•„๋‹Œ ์‹คํ–‰ ๋กœ์ง์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์€ ์ˆจ๊ฒจ์ง„ ๊ฒฐํ•ฉ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋”๋ผ๋„ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Azure DevOps ํŒŒ์ดํ”„๋ผ์ธ

๊ณต์‹ ์‚ฌ์ดํŠธ: Azure DevOps Pipelines

Azure DevOps Pipelines๋Š” ํŠนํžˆ Microsoft ์ƒํƒœ๊ณ„์™€ ์—ฐ๊ณ„๋œ ๊ธฐ์—…์—์„œ ๋Œ€๊ทœ๋ชจ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•˜๋„๋ก ์„ค๊ณ„๋œ CI/CD ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜์ ์œผ๋กœ ์ค‘์•™ ์ง‘์ค‘์‹ ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๊ณผ ์œ ์—ฐํ•œ ์‹คํ–‰ ๋ชจ๋ธ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํด๋ผ์šฐ๋“œ ํ˜ธ์ŠคํŒ… ์—์ด์ „ํŠธ์™€ ์ž์ฒด ๊ด€๋ฆฌ ์—์ด์ „ํŠธ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์ค‘์„ฑ์„ ํ†ตํ•ด ๊ธฐ์—…์€ ํ‘œ์ค€ํ™”์™€ ํ™˜๊ฒฝ ์ œ์–ด์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ทœ์ œ ํ™˜๊ฒฝ์ด๋‚˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ ํ•„์ˆ˜์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

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

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

  • Azure DevOps ์„œ๋น„์Šค๊ฐ€ ํฌํ•จ๋œ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค
  • ๋™์‹œ ์ž‘์—… ๋ฐ ์‚ฌ์šฉ๋Ÿ‰์— ์ œํ•œ์ด ์žˆ๋Š” ๋ฌด๋ฃŒ ์š”๊ธˆ์ œ
  • ๋ณ‘๋ ฌ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰ ๋ฐ ํ˜ธ์ŠคํŒ… ์—์ด์ „ํŠธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋น„์šฉ
  • ์ž์ฒด ํ˜ธ์ŠคํŒ… ์—์ด์ „ํŠธ๋Š” ์‹คํ–‰ ๋น„์šฉ์„ ์ค„์ด์ง€๋งŒ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์ฑ…์ž„์€ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

  • Azure ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ๋ณด๋“œ ๋ฐ ์•„ํ‹ฐํŒฉํŠธ์™€์˜ ๋„ค์ดํ‹ฐ๋ธŒ CI/CD ํ†ตํ•ฉ
  • ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์•„์šฐ๋ฅด๋Š” ๋‹ค๋‹จ๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ ์ง€์›
  • ๋‚ด์žฅ๋œ ์Šน์ธ ๊ฒŒ์ดํŠธ, ํ™˜๊ฒฝ ์ œ์–ด ๋ฐ ๋ฆด๋ฆฌ์Šค ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
  • Azure ์„œ๋น„์Šค ๋ฐ ID ๊ด€๋ฆฌ์™€์˜ ๊ฐ•๋ ฅํ•œ ํ†ตํ•ฉ

์‹คํ–‰ ๊ด€์ ์—์„œ Azure DevOps Pipelines๋Š” ํ™˜๊ฒฝ์„ ํ†ตํ•œ ์ œ์–ด๋œ ์ง„ํ–‰์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ ๋‹จ๊ณ„๋Š” ์Šน์ธ, ์ž๋™ ๊ฒ€์‚ฌ ๋˜๋Š” ์ •์ฑ… ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ณต์‹์ ์ธ ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ–์ถ˜ ๊ธฐ์—…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ œ์–ด๋Š” ๊ฐ์‚ฌ ๊ฐ€๋Šฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค์ง€๋งŒ ํŒŒ์ดํ”„๋ผ์ธ์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ์กฐ์ • ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

  • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ํˆด๊ณผ์˜ ๊ธด๋ฐ€ํ•œ ์—ฐ๋™์€ ํ”Œ๋žซํผ ๊ฐ„ ํ˜ธํ™˜์„ฑ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜ผํ•ฉ ํŒŒ์ดํ”„๋ผ์ธ ๋ชจ๋ธ์€ ๊ฑฐ๋ฒ„๋„Œ์Šค์™€ ํ˜„๋Œ€ํ™”๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์—์ด์ „ํŠธ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๊ฐ„ ํŒŒ์ดํ”„๋ผ์ธ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์ˆ˜์ค€์˜ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

Azure DevOps Pipelines๋Š” ๊ฐ•๋ ฅํ•œ ๊ฑฐ๋ฒ„๋„Œ์Šค์™€ Microsoft ์—์ฝ”์‹œ์Šคํ…œ ํ†ตํ•ฉ์„ ํ†ตํ•ด ๊ตฌ์กฐํ™”๋œ ๋ฐฐํฌ๋ฅผ ์ถ”๊ตฌํ•˜๋Š” ๊ธฐ์—…์— ํŠนํžˆ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฆด๋ฆฌ์Šค ์›Œํฌํ”Œ๋กœ๋ฅผ ์ง€์›ํ•˜๋Š” ๋™์‹œ์— ํŒŒ์ดํ”„๋ผ์ธ์„ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์กฐ์ง์—์„œ ๋งค์šฐ ์ด์งˆ์ ์ธ ํˆด์ฒด์ธ์„ ์šด์˜ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ CI/CD ํ”Œ๋žซํผ์—์„œ ๋ฐฐํฌ ๋™์ž‘์„ ๋ถ„์„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•œ๊ณ„๊ฐ€ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค.

์„ฑ์ˆ™ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ Azure DevOps Pipelines๋Š” ๋‹ค๋ฅธ CI ๋„๊ตฌ ๋˜๋Š” GitOps ์‹œ์Šคํ…œ๊ณผ ํ•จ๊ป˜ ์ค‘์•™ ๋ฆด๋ฆฌ์Šค ๋ฐ ๋ฐฐํฌ ์—”์ง„ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ๋ฐฐํฌ์˜ ๋ช…ํ™•์„ฑ๊ณผ ์ œ์–ด๋ ฅ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด Azure DevOps Pipelines๋ฅผ ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์•„๋‹Œ ์žฅ๊ธฐ์ ์ธ ์‹คํ–‰ ํ”Œ๋žซํผ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์„œํดCI

๊ณต์‹ ์‚ฌ์ดํŠธ: CircleCI

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

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

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

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

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

  • ๊ฐ•๋ ฅํ•œ ๋ณ‘๋ ฌํ™” ์ง€์›์„ ํ†ตํ•œ ๊ณ ์„ฑ๋Šฅ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰
  • ๋„ค์ดํ‹ฐ๋ธŒ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์‹คํ–‰ ํ™˜๊ฒฝ
  • ์•„ํ‹ฐํŒฉํŠธ ๊ณต์œ ๋ฅผ ์œ„ํ•œ ์œ ์—ฐํ•œ ์บ์‹ฑ ๋ฐ ์ž‘์—… ๊ณต๊ฐ„ ๋ฉ”์ปค๋‹ˆ์ฆ˜
  • ์˜ค๋ธŒ๋ฅผ ํ†ตํ•œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ ์š”์†Œ

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

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

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

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

  • ํด๋ผ์šฐ๋“œ ์ „์šฉ ์‹คํ–‰์€ ์ œํ•œ๋œ ํ™˜๊ฒฝ์ด๋‚˜ ์™ธ๋ถ€์™€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ์˜ ์‚ฌ์šฉ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ๋ฐ˜ ๊ฐ€๊ฒฉ ์ฑ…์ •์€ ๋ถ€ํ•˜๊ฐ€ ๋งŽ์„ ๋•Œ ๋น„์šฉ ๋ณ€๋™์„ฑ์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ œํ•œ์ ์ธ ํ† ์ฐฉ ํ†ต์น˜ ๋ฐ ์Šน์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜
  • ํŒŒ์ดํ”„๋ผ์ธ ๊ฐ„ ์ข…์†์„ฑ ๊ฐ€์‹œ์„ฑ์ด ๋งค์šฐ ๋‚ฎ์Šต๋‹ˆ๋‹ค.

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

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

๋Œ€๋‚˜๋ฌด

๊ณต์‹ ์‚ฌ์ดํŠธ: Atlassian Bamboo

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

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

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

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

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

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

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

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

ํ™•์žฅ์„ฑ์€ ์ฃผ๋กœ Bamboo ์„œ๋ฒ„ ๋ฐ ์—์ด์ „ํŠธ ์ธํ”„๋ผ์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ๊ธฐ์—…์—์„œ๋Š” ์›Œํฌ๋กœ๋“œ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ Bamboo ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ์ด๋กœ ์ธํ•ด ์กฐ์ • ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ CI ํ”Œ๋žซํผ๊ณผ ๋‹ฌ๋ฆฌ, ํƒ„๋ ฅ์„ฑ์€ ์ˆ˜๋™์œผ๋กœ ๊ณ„ํšํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์šฉ๋Ÿ‰ ๊ด€๋ฆฌ๊ฐ€ ์ง€์†์ ์ธ ์šด์˜ ๊ณผ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

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

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

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

์•„๋ฅด๊ณ  CD

๊ณต์‹ ์‚ฌ์ดํŠธ: Argo CD

Argo CD๋Š” Kubernetes ํ™˜๊ฒฝ์— ํŠนํ™”๋œ GitOps ๊ธฐ๋ฐ˜ ์ง€์†์  ๋ฐฐํฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ๋ฅผ ํ†ตํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์กด CI/CD ๋„๊ตฌ์™€ ๋‹ฌ๋ฆฌ, Argo CD๋Š” ๋ฐฐํฌ ์ƒํƒœ ์กฐ์ •์—๋งŒ ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ Git์— ์„ ์–ธํ•˜๊ณ  ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์—์„œ ์ง€์†์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค๋Š” ์›์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ๊ด€์ ์—์„œ Argo CD๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์—”์ง„์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ์ œ์–ด ๋ฃจํ”„์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ •์˜๋œ ๋ชฉํ‘œ ์ƒํƒœ์™€ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ์‹ค์ œ ์ƒํƒœ๋ฅผ ์ง€์†์ ์œผ๋กœ ๋น„๊ตํ•˜๊ณ , ์ฐจ์ด๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์ˆ˜์ • ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์€ ๋ฐฐํฌ ๋™์ž‘์„ ํ‘œํ˜„ํ•˜๊ณ  ๊ด€์ฐฐํ•˜๋Š” ๋ฐฉ์‹์„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ˆœ์ฐจ์ ์ธ ์‹คํ–‰ ๋ฐฉ์‹ ๋Œ€์‹ , ๋ฐฐํฌ๋Š” ์„ ์–ธ์ ์ด๊ณ  ์ˆ˜๋ ด ์ค‘์‹ฌ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

๊ฐ€๊ฒฉ ๋ชจ๋ธ์˜ ํŠน์ง•:

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

ํ•ต์‹ฌ ์—ญ๋Ÿ‰:

  • Git์„ ์‚ฌ์šฉํ•œ ์„ ์–ธ์  ๋ฐฐํฌ ๋ฐ ํ™˜๊ฒฝ ์ƒํƒœ ๊ด€๋ฆฌ
  • Git ์ƒํƒœ์™€ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๊ฐ„์˜ ์ง€์†์ ์ธ ์กฐ์ •
  • ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ Kubernetes ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์›
  • ๋‚ด์žฅ๋œ ์ฐจ์ด ๋น„๊ต, ๋กค๋ฐฑ ๋ฐ ๋“œ๋ฆฌํ”„ํŠธ ๊ฐ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜

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

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

Argo CD๋Š” ์ข์€ ๋ฒ”์œ„์— ์ง‘์ค‘ํ•œ๋‹ค๋Š” ์ ์ด ๊ฐ•์ ์ด์ž ํ•œ๊ณ„์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์ž๋™ํ™”, ์•„ํ‹ฐํŒฉํŠธ ์ƒ์„ฑ ๋˜๋Š” ๋ณต์žกํ•œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹ , ์•„ํ‹ฐํŒฉํŠธ๋Š” ์—…์ŠคํŠธ๋ฆผ์—์„œ ์ƒ์„ฑ๋˜๊ณ  Git์€ ๋ฐฐํฌ ์˜๋„์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์ •๋ณด ์†Œ์Šค๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง• ๋•Œ๋ฌธ์— Argo CD๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋งค์šฐ ํšจ๊ณผ์ ์ด์ง€๋งŒ, ๋…๋ฆฝ์ ์ธ CI/CD ์†”๋ฃจ์…˜์œผ๋กœ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ์  ํ•œ๊ณ„ ๋ฐ ์œ„ํ—˜ ์š”์†Œ:

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

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐฐํฌ ์‹œ์Šคํ…œ์—์„œ Argo CD๋Š” ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” CI ํ”Œ๋žซํผ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Argo CD๋Š” ๋ฐฐํฌ ์ƒํƒœ์— ๋Œ€ํ•œ ์ตœ์ข… ๊ฒฐ์ •๊ถŒ์„ ๊ฐ€์ง€๋ฉฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ํ™˜๊ฒฝ ์ „๋ฐ˜์— ๊ฑธ์ณ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฑ…์ž„ ๋ถ„๋ฆฌ๋Š” ๋ฐฐํฌ ์œ„ํ—˜์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹คํ–‰ ๊ฒฝ๊ณ„๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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

ํ‰๊ฐ€ํ•ด ๋ณผ ๋งŒํ•œ ๋‹ค๋ฅธ ์ฃผ๋ชฉํ•  ๋งŒํ•œ CI/CD ๋„๊ตฌ ๋Œ€์•ˆ

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

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

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

ํŠธ๋ž˜๋น„์Šค CI
ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ CI ์„œ๋น„์Šค์ธ Travis CI๋Š” ๊ฐ„ํŽธํ•œ ํŒŒ์ดํ”„๋ผ์ธ ์ž๋™ํ™”์™€ ๋น ๋ฅธ ์˜จ๋ณด๋”ฉ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Travis CI๋Š” ์ตœ์†Œํ•œ์˜ ์„ค์ •๊ณผ ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์ด ์—„๊ฒฉํ•œ ๊ด€๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ๋ณด๋‹ค ์ค‘์š”ํ•œ ์†Œ๊ทœ๋ชจ ํŒ€์ด๋‚˜ ๋…๋ฆฝ์ ์ธ ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์”จ๋””
GoCD๋Š” ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ํ๋ฆ„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋œ ํŒŒ์ดํ”„๋ผ์ธ ์ค‘์‹ฌ์˜ CI/CD ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. GoCD๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์ง„ํ–‰ ์ƒํ™ฉ๊ณผ ์•„ํ‹ฐํŒฉํŠธ ์Šน๊ฒฉ์— ๋Œ€ํ•œ ๊ฐ€์‹œ์„ฑ์„ ๊ฐ•์กฐํ•˜์—ฌ ๋‹ค๋‹จ๊ณ„ ํ™˜๊ฒฝ์—์„œ ๋ฐฐํฌ ๋™์ž‘์„ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

ํฐ ์‚ผ๊ฐ ๋›
Spinnaker๋Š” ๋ณต์žกํ•œ ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ ์ „๋žต์— ์ดˆ์ ์„ ๋งž์ถ˜ ์ง€์†์  ๋ฐฐํฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์นด๋‚˜๋ฆฌ ๋ฆด๋ฆฌ์Šค ๋ฐ ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ์™€ ๊ฐ™์€ ์ ์ง„์  ๋ฐฐํฌ ๊ธฐ๋ฒ•์„ ์ด๊ธฐ์ข… ์ธํ”„๋ผ ํ™˜๊ฒฝ์— ํšจ๊ณผ์ ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™œ์šฉ
Harness๋Š” ์ž๋™ํ™”๋œ ๋ถ„์„์„ ํ†ตํ•ด ๋ฐฐํฌ ๊ฒ€์ฆ ๋ฐ ์œ„ํ—˜ ๊ฐ์†Œ์— ์ค‘์ ์„ ๋‘” ๊ด€๋ฆฌํ˜• CI/CD ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. Harness๋Š” ๋ฐฐํฌ ํ›„ ๋™์ž‘ ๋ฐ ๋กค๋ฐฑ ์•ˆ์ •์„ฑ์ด ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

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

Tekton
Tekton์€ Kubernetes ๋ฆฌ์†Œ์Šค๋กœ ํ‘œํ˜„๋˜๋Š” ๊ณ ๋„๋กœ ๋งž์ถคํ™”๋œ CI/CD ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ง€์›ํ•˜๋Š” Kubernetes ๋„ค์ดํ‹ฐ๋ธŒ ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Tekton์€ Kubernetes์— ๊นŠ์ด ํˆฌ์žํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ”Œ๋žซํผ ์—”์ง€๋‹ˆ์–ด๋ง ๊ด€ํ–‰์˜ ์ผํ™˜์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ๋ณต์žก์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์กฐ์ง์— ๊ฐ€์žฅ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

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

๊ธฐ์—… ํ™œ์šฉ ์‚ฌ๋ก€๋ณ„ CI/CD ๋„๊ตฌ ์ถ”์ฒœ

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

์ด ์„น์…˜์—์„œ๋Š” ๊ตฌ์ฒด์ ์ธ ๊ธฐ์—… ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ CI/CD ๋„๊ตฌ ์„ ํƒ ๋ฐฉ์‹์„ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ์˜ ํ”Œ๋žซํผ ํ•˜๋‚˜๋ฅผ ์ œ์‹œํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ํŠน์ • ๋ฐฐํฌ ๋ชฉํ‘œ์— ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถ€ํ•ฉํ•˜๋Š” ๋„๊ตฌ์™€ ๊ทธ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์„ฑ์ˆ™ํ•œ ์กฐ์ง์ด ์›Œํฌ๋กœ๋“œ ํŠน์„ฑ, ์œ„ํ—˜ ํ—ˆ์šฉ ๋ฒ”์œ„, ์šด์˜ ์ œ์•ฝ ์กฐ๊ฑด ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฐฐํฌ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ฐ˜์˜ํ•˜๋ฉฐ, ํŠนํžˆ ํŒŒ์ดํ”„๋ผ์ธ ๋™์ž‘์ด ์„ฑ๋Šฅ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ํŒŒ์ดํ”„๋ผ์ธ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํ™˜๊ฒฝ์—์„œ ๋”์šฑ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๊ทœ๋ชจ ๋นŒ๋“œ ์ž๋™ํ™” ๋ฐ ํ…Œ์ŠคํŠธ ์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ์„ ์œ„ํ•œ CI/CD ๋„๊ตฌ

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

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

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

CircleCI ๋ฐ GitHub Actions์™€ ๊ฐ™์€ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ”Œ๋žซํผ์€ ํŠนํžˆ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์›Œํฌ๋กœ๋“œ์— ๋Œ€ํ•ด ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”Œ๋žซํผ์˜ ํƒ„๋ ฅ์„ฑ์€ ํ”ผํฌ ์‹œ๊ฐ„๋Œ€์— ๋น ๋ฅธ ํ™•์žฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์ง€๋งŒ, ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ๋ฐ˜ ์š”๊ธˆ์ œ์™€ ์‹คํ–‰ ๋‚ด๋ถ€ ์ œ์–ด์˜ ์ œํ•œ์œผ๋กœ ์ธํ•ด ์žฅ๋‹จ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—…๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œ์ค€ ์›Œํฌ๋กœ๋“œ์—๋Š” ๊ด€๋ฆฌํ˜• CI ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ ๊ทœ์ œ๊ฐ€ ์ ์šฉ๋˜๋Š” ๋นŒ๋“œ์—๋Š” ์ž์ฒด ํ˜ธ์ŠคํŒ… ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.

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

ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ค‘์‹ฌ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ CI/CD ๋„๊ตฌ

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

GitHub Actions์™€ GitLab CI/CD๋Š” ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์—์„œ CI ๋ ˆ์ด์–ด๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ์ œ์–ด์™€์˜ ๊ธด๋ฐ€ํ•œ ํ†ตํ•ฉ์„ ํ†ตํ•ด ํŠธ๋ฆฌ๊ฑฐ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„์†Œํ™”๋˜๊ณ , ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ์ตœ์‹  ๋ธŒ๋žœ์นญ ์ „๋žต, ํŠนํžˆ ์žฅ๊ธฐ์ ์ธ ๋ถ„๊ธฐ ๋ฌธ์ œ๋ฅผ ์ค„์ด๋Š” ํŠธ๋ ํฌ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ๋ชจ๋ธ๊ณผ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๊ธฐ ๋ฌธ์ œ๋Š” ๋ธŒ๋žœ์นญ ๋ชจ๋ธ ์œ„ํ—˜ ๋ถ„์„์„ ํ†ตํ•ด ์ž์ฃผ ๋‹ค๋ค„์ง‘๋‹ˆ๋‹ค.

๋ฐฐํฌ ์ธก๋ฉด์—์„œ Argo CD๋Š” ๊ถŒ์œ„ ์žˆ๋Š” ๋ฐฐํฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ ์  ๋” ๋งŽ์ด ์ฑ„ํƒ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Argo CD์˜ GitOps ๋ชจ๋ธ์€ ๋ช…๋ นํ˜• ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์„ ์–ธํ˜• ์ƒํƒœ ์กฐ์ •์œผ๋กœ ์ฑ…์ž„์„ ์ „ํ™˜ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ๊ตฌ์„ฑ ๋ถˆ์ผ์น˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด CI ํŒŒ์ดํ”„๋ผ์ธ์€ ์•„ํ‹ฐํŒฉํŠธ ์ƒ์„ฑ์— ์ง‘์ค‘ํ•˜๊ณ  Argo CD๋Š” ํ™˜๊ฒฝ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋ฐฐํฌ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ๋ณต์žก์„ฑ์ด ์•„๋‹Œ ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜์— ๋”ฐ๋ผ ํ™•์žฅ๋˜๋Š” ๋ฐฐํฌ ์‹œ์Šคํ…œ์ด ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค.

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

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

๋ณด์ด์ง€ ์•Š๋Š” ๋ฐฐํฌ ์œ„ํ—˜์„ ๋ˆ„์ ์‹œํ‚ค์ง€ ์•Š๊ณ  CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•ํ•˜๊ธฐ

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

ํ•ต์‹ฌ์€ CI/CD ๋„๊ตฌ๊ฐ€ ์„œ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ์—”์ง„์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. Jenkins๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ ์ œ์–ด์— ์ตœ์ ํ™”๋˜์–ด ์žˆ๊ณ , GitLab CI/CD์™€ GitHub Actions๋Š” ๊ธด๋ฐ€ํ•œ SCM(๊ณต๊ธ‰๋ง ๊ด€๋ฆฌ) ์—ฐ๋™์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, Azure DevOps Pipelines๋Š” ๊ด€๋ฆฌํ˜• ๋ฆด๋ฆฌ์Šค ์ง„ํ–‰์„ ๊ฐ•์กฐํ•˜๊ณ , CircleCI๋Š” ํƒ„๋ ฅ์ ์ธ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์šฐ์„ ์‹œํ•˜๋ฉฐ, Bamboo๋Š” ๊ตฌ์กฐํ™”๋œ ์ถ”์ ์„ฑ์„ ๊ฐ•ํ™”ํ•˜๊ณ , Argo CD๋Š” ์„ ์–ธ์  ์ƒํƒœ ํ†ตํ•ฉ์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฐฐํฌ ๋ฐฉ์‹์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋„๊ตฌ๋Š” ํŠน์ • ์šด์˜ ํ™˜๊ฒฝ ๋‚ด์—์„œ ํƒ์›”ํ•œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜์ง€๋งŒ, ๊ทธ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์ทจ์•ฝํ•ด์ง‘๋‹ˆ๋‹ค.

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

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

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