2023๋…„ 4์›” 18์ผยท1๋ถ„ ์ฝ๊ธฐ

์žฅ๊ธฐ ์ง€์› ๋ฆด๋ฆฌ์Šค JDK 21: ํ‘œ์ค€ Java์˜ ํ–ฅํ›„ ๊ธฐ๋Šฅ ๊ณต๊ฐœ

๊ณง ์ถœ์‹œ๋  ํ‘œ์ค€ Java์˜ ์žฅ๊ธฐ ์ง€์› ๋ฆด๋ฆฌ์Šค์ธ JDK 21์ด 9์›”์— ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๊ธฐ๋Šฅ์—๋Š” ์‹œํ€€์Šค ์ปฌ๋ ‰์…˜, ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ, ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ, ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ API ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์žฅ๊ธฐ ์ง€์› ๋ฆด๋ฆฌ์Šค JDK 21: ํ‘œ์ค€ Java์˜ ํ–ฅํ›„ ๊ธฐ๋Šฅ ๊ณต๊ฐœ

๊ณง ์ถœ์‹œ๋  ํ‘œ์ค€ Java์˜ ์žฅ๊ธฐ ์ง€์› ๋ฆด๋ฆฌ์Šค์ธ JDK(Java Development Kit) 21์€ 9์›”๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์œผ๋ฉฐ ์‹œํ€€์Šค ์ปฌ๋ ‰์…˜, ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ, ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ, ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ API(ํ”„๋ฆฌ๋ทฐ)๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ์“ฐ๊ธฐ์—์„œ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋งŽ์€ ๋™์‹œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์œ ์ง€ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ด๋ฅด๋Š” ์˜์—ญ์—์„œ ๊ฐœ๋ฐœ์ž์˜ ๊ฒฝํ—˜์„ ํ–ฅ์ƒํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์ง JDK 21์˜ ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€์— ๊ณต์‹์ ์œผ๋กœ ๋‚˜์—ด๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ตœ๊ทผ ์™ธ๋ถ€ ๊ธฐ๋Šฅ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ API ํ”„๋ฆฌ๋ทฐ๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์œผ๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค. ์ด API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Java ํ”„๋กœ๊ทธ๋žจ์ด Java ๋Ÿฐํƒ€์ž„ ์ด์™ธ์˜ ์ฝ”๋“œ ๋ฐ ๋ฐ์ดํ„ฐ์™€ ์›ํ™œํ•˜๊ฒŒ ์ƒํ˜ธ ์šด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๊ธฐ๋Šฅ๊ณผ์˜ ํšจ์œจ์ ์ธ ํ†ต์‹  ๋ฐ ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์•ˆ์ „ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์—ฌ Java ํ”„๋กœ๊ทธ๋žจ์ด JNI(Java Native Interface)๋กœ ์ธํ•œ ์ทจ์•ฝ์„ฑ๊ณผ ์œ„ํ—˜ ์—†์ด ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์•ž์„œ ์™ธ๋ถ€ ํ•จ์ˆ˜์™€ ๋ฉ”๋ชจ๋ฆฌ API๋Š” ์ง€๋‚œํ•ด 3์›”๊ณผ 9์›” ๊ฐ๊ฐ ์ถœ์‹œ๋œ JDK 20๊ณผ JDK 19์—์„œ ํ”„๋ฆฌ๋ทฐ๋œ ๋ฐ” ์žˆ๋‹ค. ์ตœ์‹  ํ”„๋ฆฌ๋ทฐ์—๋Š” ํ–ฅ์ƒ๋œ ๋ ˆ์ด์•„์›ƒ ๊ฒฝ๋กœ, Arena ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๋ช…์˜ ์ค‘์•™ ์ง‘์ค‘์‹ ๊ด€๋ฆฌ, ํด๋ฐฑ ๋„ค์ดํ‹ฐ๋ธŒ ๋ง์ปค ๊ตฌํ˜„ ๋ฐ VaList ์ œ๊ฑฐ์™€ ๊ฐ™์€ ๊ฐœ์„  ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด API์˜ ๋ชฉํ‘œ๋Š” ์‚ฌ์šฉ ์šฉ์ด์„ฑ, ์„ฑ๋Šฅ, ์ผ๋ฐ˜์„ฑ ๋ฐ ์•ˆ์ „์„ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ JNI๋ฅผ ๋Œ€์ฒดํ•˜๊ฑฐ๋‚˜ ์–ด๋–ค ์‹์œผ๋กœ๋“  ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

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

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

JDK 21์— ๋Œ€ํ•ด ์ œ์•ˆ๋œ ๋ฆด๋ฆฌ์Šค ๊ณ„ํš์— ๋”ฐ๋ผ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ๊ณ„์†๋˜๋Š” 6์›” 8์ผ๊ณผ 7์›” 20์ผ ๋žจํ”„๋‹ค์šด ๋‹จ๊ณ„ ํ›„์— ๊ธฐ๋Šฅ ๋ชฉ๋ก์ด ๋™๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ฐ ์ตœ์ข… ๋ฆด๋ฆฌ์Šค ํ›„๋ณด๋Š” 8์›” 10์ผ๊ณผ 8์›” 24์ผ์— ์ด์–ด์ง€๋ฉฐ ๋ฒ„๊ทธ ์ˆ˜์ •์€ ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์ถœ์‹œ๋Š” 9์›” 19์ผ๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

JDK 21์€ LTS(์žฅ๊ธฐ ์ง€์›) ๋ฆด๋ฆฌ์Šค๋กœ 5๋…„ ํ”„๋ฆฌ๋ฏธ์–ด ์ง€์›๊ณผ 2031๋…„ 9์›”๊นŒ์ง€ ํ™•์žฅ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ LTS ๋ฒ„์ „์ธ JDK 17์€ 2021๋…„ 9์›”์— ๋ฆด๋ฆฌ์Šค๋˜์—ˆ์Šต๋‹ˆ๋‹ค. JDK 20 ๋ฐ JDK 19, ํ”„๋ฆฌ๋ฏธ์–ด ์ง€์›์€ 6๊ฐœ์›”๋งŒ ๋ฐ›๊ณ  ์—ฐ์žฅ ์ง€์›์€ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Oracle ์˜ ํ‘œ์ค€ Java ๊ตฌํ˜„์€ 6๊ฐœ์›”๋งˆ๋‹ค ๊ฒŒ์‹œ๋˜๋ฉฐ JDK 21์˜ ์ž ์žฌ์ ์ธ ๊ธฐ๋Šฅ์—๋Š” JDK 20์˜ ๋ชจ๋“  ์ธํ๋ฒ ์ดํŒ… ๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฒ”์œ„ ๊ฐ’, ๋ ˆ์ฝ”๋“œ ํŒจํ„ด, ์Šค์œ„์น˜ ๋ฌธ์— ๋Œ€ํ•œ ํŒจํ„ด ์ผ์น˜, ๋ฒ”์šฉ ์ œ๋„ค๋ฆญ, ์„ธ๋Œ€๋ณ„ Z ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ ๋ฐ ๋น„๋™๊ธฐ ์Šคํƒ ์ถ”์  VM API. AppMaster ์™€ ๊ฐ™์€ ๋…ธ์ฝ”๋“œ ๋ฐ ๋กœ์šฐ์ฝ”๋“œ ํ”Œ๋žซํผ ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ตœ์ฒจ๋‹จ ํ”Œ๋žซํผ๋„ ์ด๋Ÿฌํ•œ Java ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
์žฅ๊ธฐ ์ง€์› ๋ฆด๋ฆฌ์Šค JDK 21: ํ‘œ์ค€ Java์˜ ํ–ฅํ›„ ๊ธฐ๋Šฅ ๊ณต๊ฐœ | AppMaster