๐ JDK 22 ๊ฐ ์ถ์ ๋์์ต๋๋ค!
JDK 22 ๊ฐ ๊ณต์ ์ถ์๋์ด ๊ณต์ ๋๋ฆฝ๋๋ค. JDK 21 ์ด ์ถ์๋์ง ์ผ๋ง ์๋๊ฒ ๊ฐ์๋ฐ ๋ฒ์จ 22๊ฐ ๋์ค๋ค๋, Java ์ ๋ฐ์ ์๋๊ฐ ๋น ๋ฅด๋ค๋๊ฑธ ์์ฆ ๊ณ์ ์ค๊ฐํ๊ณ ์์ต๋๋ค. ์ต์ 8๋ ์ ์ง์ ๊ธฐ๊ฐ์ด ๋ณด์ฅ๋๋ LTS(์ฅ๊ธฐ ์ง์) ๋ฆด๋ฆฌ์ค์ธ JDK 21 ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ด๋ฒ JDK 22 ๋ 6๊ฐ์ ๋์ Oracle ์์ ์ง์์ ํด์ค๋ค๊ณ ํฉ๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์๋ ์๋์ ๊ฐ์ด ์ด 12๊ฐ์ JEP(Java Enhancement Proposals)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. 1. ํด๋์ค ํ์ผ API ํ๋ฆฌ๋ทฐ: Java ํด๋์ค ํ์ผ์ ํ์ฑ, ์์ฑ, ๋ณํํ๊ธฐ ์ํ ํ์ค API๋ฅผ ์ ๊ณต. ์ด๋ JDK ๋ด๋ถ์ ์ 3์ ASM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๊ณ JDK ๊ตฌ์ฑ ์์๋ฅผ ํ์ค API๋ก ์ด์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํจ. 2. G1 ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ํ ์ง์ญ ๊ณ ์ : ๊ฐ๋น์ง ์์ง์ ๋นํ์ฑํํ์ง ์๊ณ ๋ ์ง์ฐ ์๊ฐ์ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํจ. ์ด ๋ณ๊ฒฝ์ผ๋ก Java ์ค๋ ๋๋ G1 GC ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๋๊ธฐํ์ง ์์. 3. ์์์ ์ผ๋ก ์ ์ธ๋ ํด๋์ค์ ์ธ์คํด์ค ๋ฉ์๋์ ๋ ๋ฒ์งธ ํ๋ฆฌ๋ทฐ: ์ด ๊ธฐ๋ฅ์ Java ์ธ์ด๋ฅผ ๋ฐ์ ์์ผ ํ์๋ค์ด ๋๊ท๋ชจ ํ๋ก๊ทธ๋จ์ฉ์ผ๋ก ์ค๊ณ๋ ์ธ์ด ๊ธฐ๋ฅ์ ์ดํดํ์ง ์๊ณ ๋ ์ฒซ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋๋ก ํจ. 4. ์คํธ๋ฆผ ์์ง๊ธฐ: Java์ Stream API๋ฅผ ๊ฐ์ ํ์ฌ ๊ธฐ์กด์ ๋ด์ฅ ์ค๊ฐ ์์ ์ผ๋ก ์ฝ๊ฒ ๋ฌ์ฑํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณํํ ์ ์์. 5. super(โฆ) ์ ์ ๋ฌธ์ฅ ํ๋ฆฌ๋ทฐ: ์์ฑ์์ ๋ํ ๋ฌธ์ฅ์ ํ์ฉํ์ฌ ๊ฐ๋ฐ์๊ฐ ์์ฑ์์ ๋์์ ๋ ์์ ๋กญ๊ฒ ํํํ ์ ์๋๋ก ํจ. 6. ๋ฌธ์์ด ํ ํ๋ฆฟ์ ๋ ๋ฒ์งธ ํ๋ฆฌ๋ทฐ: ๋ฆฌํฐ๋ด ํ ์คํธ์ ์๋ฒ ๋๋ ํํ์์ ๊ฒฐํฉํ์ฌ ํน์ํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑ. ์ด๋ Java ํ๋ก๊ทธ๋จ ์์ฑ์ ๋จ์ํํ๊ณ ๋ณด์์ ๊ฐ์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํจ. 7. ๋ฒกํฐ API (7๋ฒ์งธ ์ธํ๋ฒ ์ดํฐ): ๋ฒกํฐ ๊ณ์ฐ์ ํํํ๊ณ ๋ฐํ์์ ์ต์ ์ ๋ฒกํฐ ๋ช ๋ น์ผ๋ก ์ปดํ์ผ๋๋๋ก ํจ. ์ด๋ ์ค์นผ๋ผ ๊ณ์ฐ๋ณด๋ค ์ฐ์ํ ์ฑ๋ฅ์ ๋ฌ์ฑํจ. 8. ์ด๋ฆ ์๋ ๋ณ์์ ํจํด: ๋ณ์ ์ ์ธ์ด๋ ์ค์ฒฉ๋ ํจํด์ด ํ์ํ์ง๋ง ์ฌ์ฉ๋์ง ์์ ๋ ์ฌ์ฉ๋จ. ์ด๋ ํ๋ก๊ทธ๋จ์ ๋ช ํ์ฑ์ ํฅ์์ํค๊ณ ์ค๋ฅ์ ๊ธฐํ๋ฅผ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํจ. 9. ์ธ๋ถ ํจ์ ๋ฐ ๋ฉ๋ชจ๋ฆฌ API: Java ํ๋ก๊ทธ๋จ์ด Java ๋ฐํ์ ์ธ๋ถ์ ์ฝ๋ ๋ฐ ๋ฐ์ดํฐ์ ์ํธ ์์ฉํ ์ ์๋๋ก ํจ. ์ด๋ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํ๊ณ ๋ค์ดํฐ๋ธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ํจ. ์ด์ ๊ด๋ จ๋ ์์ธํ ๋ด์ฉ์ ๊ณต์ ๋๋ฆฐ ์๋ฌธ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๐ ์๋ฌธ * Java 22 / JDK 22: General Availability: https://mail.openjdk.org/pipermail/jdk-dev/2024-March/008827.html * OpenJDK JDK 22 General-Availability Release: https://jdk.java.net/22/ * InfoWorld ๊ธฐ์ฌ: https://www.infoworld.com/article/3708329/jdk-22-the-new-features-in-java-22.html