CICD

๐Ÿ”ญJAVA 21์„ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ CICD Tool๋“ค!

์—ฌ๋Ÿฌ CICD Tool๋“ค์ด JAVA 21์„ ๋ณธ๊ฒฉ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

2023.12.25 | ์กฐํšŒ 599 |
0
|
DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€

DevOps, ํด๋ผ์šฐ๋“œ, IT ๊ธฐ์ˆ  ๊ด€๋ จ ์ตœ์‹  ์†Œ์‹๊ณผ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ฃผ 1ํšŒ ์ด๋ฉ”์ผ๋กœ ์ „ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ˜บ

์•ˆ๋…•ํ•˜์„ธ์š”, ์ตœ์‹  DevOps ์†Œ์‹์„ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•˜๋Š” DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€์ž…๋‹ˆ๋‹ค.

์˜ฌํ•ด ๊ฒจ์šธ์—” ๋‹ค์–‘ํ•œ CICD ํˆด์˜ ์ตœ์‹  ๋ฒ„์ „์ด ๋ฆด๋ฆฌ์ฆˆ๋˜์—ˆ๋Š”๋ฐ์š”. ๊ทธ ์ค‘ Jenkins์™€ Gradle์˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฐ™์ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๐ŸŽ‡JAVA 21 ๋ฒ„์ „ ์ง€์› ์‹œ์ž‘! Jenkins 2.426.1

Jenkins๋Š” ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ํˆด์ž…๋‹ˆ๋‹ค.
Jenkins๋Š” ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ํˆด์ž…๋‹ˆ๋‹ค.

๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ ๋“ฑ์˜ ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ํˆด, Jenkins๊ฐ€ 2023๋…„ 11์›” 15์ผ 2.426.1 ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ Jenkins ๋ฆด๋ฆฌ์ฆˆ์˜ ์ฃผ์š” ์—…๋ฐ์ดํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • JAVA 21 ์ง€์› ์‹œ์ž‘
  • ์ด์ œ JAVA 17์„ ๊ธฐ๋ณธ JAVA ๋ฒ„์ „์œผ๋กœ ์„ค์ •
  • Jenkins 2.432 ๋ฒ„์ „ ์ดํ›„๋ถ€ํ„ฐ CentOS 7 ์ง€์› ์ข…๋ฃŒ
  • ๊ทธ ์™ธ ์ผ๋ถ€ UI/UX ๋ณ€๊ฒฝ

์œ„์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋ฉด JAVA ๋ฒ„์ „ ์ง€์› ๋‚ด์šฉ์ด ์ฃผ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋Š”๋ฐ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์•Œ๋ ค์ง„ JAVA์™€ ๊ด€๋ จ๋œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋Š” ์ด์œ ๋Š”, Jenkins๊ฐ€ JAVA๋กœ ์ œ์ž‘๋˜์—ˆ๊ณ , JAVA ๊ฐ€์ƒ ๋จธ์‹ (JVM) ์œ„์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

JAVA ์ž์ฒด๋„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฒ„์ „ ์—…์„ ํ•˜๋ฉด์„œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, JAVA ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ํ˜„์žฌ ์ง€์›ํ•˜๋Š” JAVA ๋ฒ„์ „์— ๋”ฐ๋ผ ์ž์ฒด ์„ฑ๋Šฅ์ด ๊ฒฐ์ •๋˜๊ฒ ์ฃ .

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Jenkins๋„ ํ˜„์žฌ ์ง€์› ์ค‘์ธ JAVA ๋ฒ„์ „์€ ์–ด๋””๊นŒ์ง€์ธ์ง€, ์•ž์œผ๋กœ ์ง€์› ์˜ˆ์ •์ธ JAVA ๋ฒ„์ „์€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. :)

 

โœ…์šฐ๋ฆฐ JAVA 21 ์™„์ „ ์ง€์›! Gradle 8.5

Gradle์€ JAVA, Kotlin๊ณผ ๊ฐ™์€ ์–ธ์–ด๋กœ ์ œ์ž‘๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํˆด์ž…๋‹ˆ๋‹ค.
Gradle์€ JAVA, Kotlin๊ณผ ๊ฐ™์€ ์–ธ์–ด๋กœ ์ œ์ž‘๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํˆด์ž…๋‹ˆ๋‹ค.

์œ„์—์„œ ์‚ดํŽด๋ดค๋˜ Jenkins๊ฐ€ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ํˆด์ด๋ผ๋ฉด, Gradle์€ JAVA ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์šฉํ•˜์—ฌ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์ž…๋‹ˆ๋‹ค.

Gradle ์—ญ์‹œ 2023๋…„ 11์›”์— 8.5 ๋ฒ„์ „์œผ๋กœ ์ƒˆ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋Š”๋ฐ์š”. ์ฃผ์š” ์—…๋ฐ์ดํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

  • JAVA 21 ์™„์ „ ์ง€์›
  • Kotlin ๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด ๊ด€๋ จ ๊ฐœ์„ 
  • Error ๋ฐ Warning ๋ฆฌํฌํŠธ ๊ฐœ์„ 
  • Gradle Wrapper ๊ฐœ์„ 

Gradle ์—ญ์‹œ JAVA 21 ์ง€์›๊ณผ ๊ด€๋ จ๋œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋„ค์š”. ์•„๋งˆ๋„ ๊ธˆ๋ฐฉ ์•„์…จ์„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, Gradle์ด ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ๋Œ€์ƒ์ด JAVA ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

๋‹ค๋งŒ, ์œ„ Jenkins ์—…๋ฐ์ดํŠธ์—์„  JAVA 21 ์ง€์› ์‹œ์ž‘์ด๋ผ๊ณ  ํ–ˆ์ง€๋งŒ Gradle์˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์—์„  JAVA 21์„ ์™„์ „ ์ง€์›ํ•œ๋‹ค๊ณ  ์จ์žˆ๋Š”๋ฐ์š”. Gradle์€ ์ด๋ฏธ ์ด์ „ ๋ฒ„์ „์ธ 8.4๋ถ€ํ„ฐ JAVA 21 ๊ธฐ๋ฐ˜์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค์ฝ”๋“œ ์ปดํŒŒ์ผ ๋ฐ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ณ  ์žˆ์—ˆ์ง€๋งŒ, Gradle ์ž์ฒด๊ฐ€ JAVA 21๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์ง„ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ 8.5 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” Gradle ์ž์ฒด๋„ JAVA 21 ๋ฒ„์ „ ์œ„์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด์„œ JAVA 21์„ ์™„์ „ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๐Ÿ’จCICD ํˆด์˜ JAVA 21 ์ง€์›์— ์ฃผ๋ชฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ...

JAVA๋Š” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก JAVA ๊ฐ€์ƒ ๋จธ์‹ (JVM)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 
JAVA๋Š” ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก JAVA ๊ฐ€์ƒ ๋จธ์‹ (JVM)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

์ง€๊ธˆ๊นŒ์ง€ Jenkins์™€ Gradle์˜ JAVA 21 ์ง€์›๊ณผ ๊ด€๋ จํ•ด์„œ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ์š”. JAVA 21 ์—…๋ฐ์ดํŠธ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„  ์‚ฌํ•ญ๋“ค์„ CICD ํˆด์—์„œ๋„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์—…๋ฐ์ดํŠธ ๋‚ด์šฉ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

  • Virtual Thread ์ง€์›
  • String Templates ์ถ”๊ฐ€
  • Sequenced Collections ์ถ”๊ฐ€
  • Generational Z Garbage Collector ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • Record Pattern ์ง€์›

 

๐Ÿ”ญ๋งˆ์น˜๋ฉฐ...

์ด๋ฒˆ ์†Œ์‹์ง€์—์„  JAVA 21์„ ์ง€์›ํ•œ CICD ํˆด ๋‘ ๊ฐ€์ง€, Jenkins์™€ Gradle์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๊ณ  ๊ด€๋ จ ์—…๋ฐ์ดํŠธ๋ฅผ ์†Œ๊ฐœํ•ด๋ณด์•˜๋Š”๋ฐ์š”. Jenkins์™€ Gradle ๋ชจ๋‘ CICD ํˆด๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํˆด์ด๋ฏ€๋กœ, ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค :)

์•ž์œผ๋กœ ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ๊ฐ CICD ํˆด์— ๋Œ€ํ•ด ์ข€ ๋” ๊นŠ๊ฒŒ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„๋„ ๊ฐ€์ ธ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ Jenkins์™€ Gradle ๊ด€๋ จํ•ด์„œ ๋” ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ์•„๋ž˜ ๋ฉ”์ผ๋ฆฌ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.๐Ÿ˜€

๊ทธ๋Ÿผ, ๋‹ค์Œ ์†Œ์‹์ง€์—์„œ ๋ณด๋‹ค ์•Œ์ฐจ๊ณ  ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์œผ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜บ

 

๋‹ค๊ฐ€์˜ฌ ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”?

์ง€๊ธˆ ๊ตฌ๋…ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ ˆํ„ฐ๋ฅผ ๋ฐ›์•„๋ณด์„ธ์š”

โœ‰๏ธ

์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ ์–ด๋– ์…จ๋‚˜์š”?

DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€ ๋‹˜์—๊ฒŒ โ˜•๏ธ ์ปคํ”ผ์™€ โœ‰๏ธ ์ชฝ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”!

๋Œ“๊ธ€

์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”

ํ™•์ธ
์˜๊ฒฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? ์ œ์ผ ๋จผ์ € ๋Œ“๊ธ€์„ ๋‹ฌ์•„๋ณด์„ธ์š” !

๋‹ค๋ฅธ ๋‰ด์Šค๋ ˆํ„ฐ

ยฉ 2024 DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€

DevOps, ํด๋ผ์šฐ๋“œ, IT ๊ธฐ์ˆ  ๊ด€๋ จ ์ตœ์‹  ์†Œ์‹๊ณผ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ฃผ 1ํšŒ ์ด๋ฉ”์ผ๋กœ ์ „ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ˜บ

๋‰ด์Šค๋ ˆํ„ฐ ๋ฌธ์˜eduukulelekim@gmail.com

๋ฉ”์ผ๋ฆฌ ๋กœ๊ณ 

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ ์„œ๋น„์Šค ์†Œ๊ฐœ์„œ ์˜ค๋ฅ˜ ๋ฐ ๊ธฐ๋Šฅ ๊ด€๋ จ ์ œ๋ณด

์„œ๋น„์Šค ์ด์šฉ ๋ฌธ์˜admin@team.maily.so

๋ฉ”์ผ๋ฆฌ ์‚ฌ์—…์ž ์ •๋ณด

๋ฉ”์ผ๋ฆฌ (๋Œ€ํ‘œ์ž: ์ดํ•œ๊ฒฐ) | ์‚ฌ์—…์ž๋ฒˆํ˜ธ: 717-47-00705 | ์„œ์šธ ์„œ์ดˆ๊ตฌ ๊ฐ•๋‚จ๋Œ€๋กœ53๊ธธ 8, 8์ธต 11-7ํ˜ธ

์ด์šฉ์•ฝ๊ด€ | ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ | ์ •๊ธฐ๊ฒฐ์ œ ์ด์šฉ์•ฝ๊ด€ | ๋ผ์ด์„ ์Šค