Tech

Jenkins (์  ํ‚จ์Šค)

๋ฐค์ง„ 2022. 4. 5. 16:19

๐Ÿ“š ์  ํ‚จ์Šค๋ž€??


jenkins

๋ชจ๋“  ์–ธ์–ด์˜ ์กฐํ•ฉ๊ณผ ์†Œ์Šค ์ฝ”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ํ†ตํ•ฉ(Continuous integration, CI)๊ณผ ์ง€์†์  ๋ฐฐํฌ(continuous delivery, CD) ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ๊ณผ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‰ฝ๊ฒŒ๋งํ•ด์„œ ๋น„์„œ์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.โ—โ• (๋‚˜๋Š” ๊ฐœ๋ฐœ๋งŒํ• ๊ป˜ ๊ท€์ฐฎ์€๊ฑฐ ๋‹ค ํ•ด์ค˜..?๐Ÿ˜)

ํŽธ๋ฆฌํ•œ ์„ค์ • ๐Ÿ”ง

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

๋Œ€ํ‘œ์ ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ : Credentiais Plugin, Gid Plugin, Pipeline ๋“ฑ๋“ฑ
์ฒ˜์Œ ์‚ฌ์šฉํ• ๋•Œ ๊ทธ๋ƒฅ Recommend ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๊น”๋ฉด ์–ด์ง€๊ฐ„ํ•œ ๊ฒƒ์€ ๋‹ค ๊น”๋ ค์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋ณ„ ์Šคํƒญ ์ข…๋ฅ˜

์•ˆ์ •์ ์ธ ๋นŒ๋“œ/๋ฐฐํฌ ํ™˜๊ฒฝ ๐Ÿ’ป

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

๋‹ค์–‘ํ•œ ํ™œ์šฉ ๋ฐ ์†์‰ฌ์šด ํ™•์žฅ ๐Ÿ”โž•๐ŸŸโž•๐Ÿฅค

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

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


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

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

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

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

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

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

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

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

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

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

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