์ฅ๊ธฐ ์ง์ ๋ฆด๋ฆฌ์ค JDK 21: ํ์ค Java์ ํฅํ ๊ธฐ๋ฅ ๊ณต๊ฐ
๊ณง ์ถ์๋ ํ์ค Java์ ์ฅ๊ธฐ ์ง์ ๋ฆด๋ฆฌ์ค์ธ JDK 21์ด 9์์ ์ถ์๋ ์์ ์ ๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ์๋ ์ํ์ค ์ปฌ๋ ์ , ๊ฐ์ ์ค๋ ๋, ๋ฌธ์์ด ํ ํ๋ฆฟ, ์ธ๋ถ ํจ์ ๋ฐ ๋ฉ๋ชจ๋ฆฌ API ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ํฌํจ๋ฉ๋๋ค.

๊ณง ์ถ์๋ ํ์ค 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 ๊ธฐ์ ์ ๋ฐ์ ์ ํ์ฉํ ์ ์์ต๋๋ค.


