๋กœ์ผ“๐Ÿพ
article thumbnail

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

 

CI/CD๋ž€?

CI

CI๋Š” Continuous Integration ์ฆ‰, ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.


์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ž€,

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

 

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

 

CD

CD๋ž€? ํ•ด์„ํ•˜์ž๋ฉด, ์ง€์†์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต ํ˜น์€ ์ง€์†์ ์ธ ๋ฐฐํฌ ๋ผ๋Š” ์˜๋ฏธ์ฃ .

 

Continuous Delivery๋Š” ๊ณต์œ  ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ž๋™์œผ๋กœ Release ํ•˜๋Š” ๊ฒƒ, Continuous Deployment๋Š” Production ๋ ˆ๋ฒจ๊นŒ์ง€ ์ž๋™์œผ๋กœ deploy ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.


์ •๋ฆฌํ•˜์ž๋ฉด, CI๊ฐ€ ์ƒˆ๋กœ์šด ์†Œ์Šค์ฝ”๋“œ์˜ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ณ‘ํ•ฉ๊นŒ์ง€๋ฅผ ์˜๋ฏธํ•˜์˜€๋Š”๋ฐ, CD๋Š” ๊ฐœ๋ฐœ์ž์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋„˜์–ด, ๊ณ ๊ฐ์˜ ํ”„๋กœ๋•์…˜(Production) ํ™˜๊ฒฝ๊นŒ์ง€ ๋ฆด๋ฆฌ์ฆˆ ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

CI์—์„œ ์˜ˆ๋กœ ๋“  MSA์™€ ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ Agile ๋ฐฉ๋ฒ•๋ก ์ด ์ ์šฉ๋  ๊ฒฝ์šฐ, ์„œ๋น„์Šค์˜ ์‚ฌ์šฉ์ž๋Š” ์ตœ๋Œ€ํ•œ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ์ตœ์‹  ๋ฒ„์ „์˜ Production์„ ์ œ๊ณต๋ฐ›์„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด ๋•Œ, ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์–ธ์ œ๋“ ์ง€ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์˜ ๋ฒ„์ „์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก support ํ•˜๋Š” ๊ฒƒ์ด CD๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ฃ .

 

์ด๋Š” ์„œ๋น„์Šค์˜ ๊ฐœ๋ฐœํŒ€๊ณผ ๋น„์ฆˆ๋‹ˆ์ŠคํŒ€(์˜์—…, CSํŒ€ ๋“ฑ) ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์คŒ์œผ๋กœ์จ, ๋ฐฐํฌ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€์˜ ๋…ธ๋ ฅ์„ ์ตœ์†Œํ•œ์œผ๋กœ ๋‹จ์ถ•์‹œ์ผœ ์ค€๋‹ค๋Š” Benefit์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ CI/CD๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์  ํ‚จ์Šค์ž…๋‹ˆ๋‹ค.

 

์  ํ‚จ์Šค๋ž€?

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

 

์  ํ‚จ์Šค๊ฐ€ ์ฃผ๋Š” ์ด์ 

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

 

์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ๊ณผ ํ•จ๊ป˜ ์ด๋ค„์ง€๋Š” ์ด ๊ฐ™์€ ์ž๋™ํ™”๋œ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ ์ž‘์—…๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ๋“ค์„ ๊ฐ€์ ธ๋‹ค ์ค๋‹ˆ๋‹ค.

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

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

๊ฐ์ข… ๋ฐฐ์น˜ ์ž‘์—…์˜ ๊ฐ„๋žตํ™”

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

Build ์ž๋™ํ™”์˜ ํ™•๋ฆฝ

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

์ž๋™ํ™” ํ…Œ์ŠคํŠธ

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

์ฝ”๋“œ ํ‘œ์ค€ ์ค€์ˆ˜์—ฌ๋ถ€ ๊ฒ€์‚ฌ

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

๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ

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

 

profile on loading

Loading...