์ฝ๋ก๋๋ฐ์ด๋ฌ์ค ๋์ ํ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ๊ฒฝ์ ์๊ธฐ์๋ ๋ถ๊ตฌํ๊ณ 2020๋
์๋ ์ข์ ์ผ์ด ๋ช ๊ฐ์ง ์ผ์ด๋ฌ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ก์ด ๋ฒ์ ์ Java๊ฐ ์ถ์๋์์ต๋๋ค. ๊ฒ๋ค๊ฐ Java๋ ์ฌ์ ํ ์ธ๊ณ์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ฐ๋ฐ ์ธ์ด์
๋๋ค. 2020๋
์ ์์ฝํ๊ณ ํ ํด ๋์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ด๋ค ์ผ์ด ์ผ์ด๋ฌ๋์ง ํ์ํด ๋ณด๊ฒ ์ต๋๋ค.
Java ์
๋ฐ์ดํธ: ๋ฒ์ 14 ๋ฐ 15
์ง๋ ํด์ 2๊ฐ์ Java ์
๋ฐ์ดํธ(14 ๋ฐ 15)๊ฐ ์ถ์๋์์ต๋๋ค. ๋ฒ์ 14์ ํ์ ์๋ ๋ ์ฝ๋ ํค์๋์ ๋ํ ์คํ์ ์ง์, instanceof ์ฐ์ฐ์์ ํจํด ์ผ์น ์ง์, ๋ณด๋ค ์ฌ์ฉ์ ์นํ์ ์ธ NullPointerExceptions, ํ
์คํธ ๋ธ๋ก์ ํ์ฅ๋ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฐ ์
๋ฐ์ดํธ๋ ์ค์์น ๋ฌธ์ ๋ํ ๊ธฐ๋ณธ ์ง์์
๋๋ค. Oracle์ Java ํ๋ซํผ ๊ทธ๋ฃน ๋ถ์ฌ์ฅ์ธ George Saab์ "Java 14๋ 6๊ฐ์ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ์ ์ด์ ์ ๋ณด์ฌ์ฃผ๋ ์ถ๊ฐ ์ฆ๊ฑฐ์
๋๋ค. ๊ฐ๋ฐ์๋ ์๋
๋์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ธฐ๋ฅ์ ์ก์ธ์คํ ์ ์๊ฒ ๋์์ต๋๋ค."๋ผ๊ณ ๋งํ์ต๋๋ค. Saab์ ๋ฐ๋ฅด๋ฉด JDK 14์๋ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๋์ด๋ ํฅ์๋ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ ๋ฟ๋ง ์๋๋ผ ์ด๋ฒ ๋ฆด๋ฆฌ์ค์๋ Project Panama(ํฅ์๋ ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค ์ธํฐํ์ด์ค)์ ๊ฐ์ ํ๋ก์ ํธ์ ์ค์ํ ์ฝํ
์ธ ์ Project Amber( ํจํด ๋งค์นญ ๋ฐ ๊ธฐ๋ก). Java 14์ ์ฃผ์ ํ์ ์ค ํ๋๋ ๊ธฐ๋ก์
๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋งํ๋ ๊ฒ์
๋ฐํ ๋ผ ํ๋ก์ ํธ
์์ ๊ฐ๋ฐ๋ ์๋ก์ด ์ ํ์
๋๋ค . ๋ ์ฝ๋๋ ์ด๊ฑฐํ๊ณผ ์ ์ฌํ๋ฉฐ ์ฝ๋๋ฅผ ๋จ์ํํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ํ๋ ์์ง๋ง ๋์์ด ์๋ ํด๋์ค๋ฅผ ๋์ฒดํฉ๋๋ค. JDK 14์์๋ Java ์ ํ๋ฆฌ์ผ์ด์
์ด ์๋ก์ด MemorySegment, MemoryAddress ๋ฐ MemoryLayout ์ถ์ํ๋ฅผ ์ฌ์ฉํ์ฌ Java Virtual Machine์ ํ ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋๋ก ํ๋ ์ธํ๋ฒ ์ดํ
์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค API๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ๋ฒ์ 15์๋ Edwards-curve ๋์งํธ ์๋ช
์๊ณ ๋ฆฌ์ฆ, ํ๋ ํด๋์ค, ์ด์ ์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์๋ ๊ธฐ๋ฅ์ ์ต์ข
๋ฒ์ (ํ
์คํธ ๋ธ๋ก ๋ฐ ZGC ๊ฐ๋น์ง ์์ง๊ธฐ)๊ณผ ๊ฐ์
ํ์ ์ด ํฌํจ๋์ด ์์ต๋๋ค .
์คํ์ ๊ธฐ๋ฅ์ผ๋ก Java 15์์๋ ์ฒ์์ผ๋ก ๋ด์ธ๋ ํด๋์ค๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ, ์ธ์คํด์คof ์ฐ์ฐ์์ ๋ํ ๋ ์ฝ๋ ๋ฐ ํจํด ์ผ์น๋ ๋ค์ ํ์ฑํํ์ต๋๋ค. ์์ฝํ์๋ฉด, 6๊ฐ์์ ์
๋ฐ์ดํธ ์ฃผ๊ธฐ ๋๋ถ์ Java๋ ๋ฐ์ ํ์ผ๋ฉฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ค์ฒ์ง์ง ์์ต๋๋ค.
์์์ ๋ํ๋ Java: ์ฌ์ ํ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค
JetBrains์ ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด Java๋ ์ฌ์ ํ ์ธ๊ณ์์
๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์ฃผ์ ์ธ์ด๋ก ๋จ์ ์์ต๋๋ค.
์ฝ 520๋ง ๋ช
์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
" Java Turns 25
" ๋ผ๋ ์ ๋ชฉ์ IDC ๋ณด๊ณ ์๋ ๋๊ด์ ์
๋๋ค. ์ ์ธ๊ณ์ ์ผ๋ก 900๋ง ๋ช
์ด์์ ๊ฐ๋ฐ์๊ฐ Java๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. "ํ์ฌ 510์ต ๊ฐ์ JVM(Java Virtual Machine)์ด ์ ์ธ๊ณ์ ์ผ๋ก ๋ฐฐํฌ๋์ด ํ๋ฐํ๊ฒ ์ฌ์ฉ๋๊ณ ์์ผ๋ฏ๋ก Java๋ ๋ถ์, ๋ง์ดํฌ๋ก์๋น์ค, ๋ฐ์ดํฐ ๊ด๋ฆฌ, ์์
์๋น์ค, ๋น
๋ฐ์ดํฐ, DevOps, ๋ชจ๋ฐ์ผ ์ฑ, ์ง์์ ์ธ ๊ฐ๋ฐ์ ํฌํจํ ์ต์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ ํธ๋๋ ์ ํ์
๋๋ค. Java ๊ธ๋ก๋ฒ ๋ง์ผํ
๋ถ์ฌ์ฅ์ธ Manish Gupta๋ ๋งํฉ๋๋ค
.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ธ๊ธฐ๋ฅผ ์ธก์ ํ๋ TIOBE
์ง์ ์ ๋ฐ๋ฅด๋ฉด 2020๋
12์, Java๋ ์ธ๊ณ์์ ๋ ๋ฒ์งธ๋ก ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์์ต๋๋ค . ํ๊ฐ๋ฅผ ์์ฑํ๋ ์ฌ๋๋ค์ ๊ณ ์ฉ์ฃผ๋ค ์ฌ์ด์์ Java๊ฐ ์ธ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ์ด์ ๋ ์ด ์ธ์ด๋ก ์์ฑ๋ ์๋ง์ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์๋น์ค ๋๋ฌธ์ด๋ผ๊ณ ์ค๋ช
ํฉ๋๋ค. ๊ตฌ์ง ์ฌ์ดํธ Dice.com์ ์์์์ Java๋ SQL์ ์ด์ด
2์๋ฅผ ์ฐจ์งํ์ต๋๋ค .
Stack Overflow ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ์ฐ๋ก ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ๋ ์์ง ๋ง์ธ์.
2020๋
Java๋
๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ฐ๋ฐ ์ธ์ด ์ค 5์๋ฅผ ์ฐจ์งํ์ต๋๋ค. ๋ณด์๋ค์ํผ, Java๋ 2020๋
์ ์ธ๊ธฐ๋๊ฐ ์ค๋ฅด์ง ์์์ง๋ง ํ๋ฝํ์ง๋ ์์์ต๋๋ค.
Java๋ ์ด๋์, ์ด๋ค ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋์?
JetBrains์ ๋ฐ๋ฅด๋ฉด ํ์ฌ ์์์์๋ Java ๊ฐ๋ฐ์ ์๊ฐ ๊ฐ์ฅ ๋ง์ผ๋ฉฐ ์ฝ 250๋ง ๋ช
์ ํ๋ก๊ทธ๋๋จธ๊ฐ Java๋ฅผ ๊ธฐ๋ณธ ์ธ์ด๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฌด์๋ณด๋ค ์ค๊ตญ๊ณผ ํ๊ตญ์์๋ ์๋ฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ๊ฐ 51%, 50% ์ ๋๋ค. Java๋ ์ธ๋, ๋
์ผ, ์คํ์ธ ๋ฐ ๋ธ๋ผ์ง์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. JetBrains ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด ์์ 6๊ฐ ๊ตญ๊ฐ์์ Java๊ฐ ์ธ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ์ด์ ๋ Java์ ๋ฌด๋ฃ ์ฌ์ฉ, ์ ๋ถ ์ง์ ๋ฐ ์คํ ์์ค ๋๋ฌธ์ธ ๊ฒ์ผ๋ก
๋ํ๋ฌ์ต๋๋ค .
๊ฐ๋ฐ์๋ค ์ฌ์ด์์๋ Java 8์ด ์ฌ์ ํ ๊ฐ์ฅ ์ฌ๋๋ฐ๋ ๋ฒ์ ์
๋๋ค. Java ๊ฐ๋ฐ์์ 4๋ถ์ 3์ด ์ด๋ฅผ ์ ํธํฉ๋๋ค. ์ฆ, Java 11์ ์ธ๊ธฐ๊ฐ ๋์์ง๊ณ ์์ต๋๋ค. ํด๋ง๋ค ์ด ๋ฒ์ ์ ์ ์ ์จ์ 10% ์ฆ๊ฐํ์ต๋๋ค. ์๋์ ์ผ๋ก ์ต์ ๋ฒ์ ์ธ Java 12 ๋ฐ Java 13๋ ๋น ๋ฅด๊ฒ ์ฒญ์ค์ ์ฐพ๊ณ ์์ผ๋ฉฐ ๊ฐ๊ฐ 10% ์ด์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Spring Boot๋ 61%์ ๊ฐ๋ฐ์๊ฐ ์ ํํ Java ํ๋ ์์ํฌ ์ค ์ ๋์ฃผ์์
๋๋ค. 2์์ 3์๋ ๊ฐ๊ฐ Spring MVC(42%)์ JSF(6%)๊ฐ ์ฐจ์งํ์ต๋๋ค. 2020๋
์๋ ์น ๊ฐ๋ฐ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ธ์ด๊ฐ Java์์ต๋๋ค(36%). ๋ ๋ฒ์งธ๋ ์ ํธ๋ฆฌํฐ ๊ฐ๋ฐ(25%)์ด๊ณ , ์ธ ๋ฒ์งธ๋ ์์คํ
์ํํธ์จ์ด ๊ฐ๋ฐ(19%)์
๋๋ค.
๋ด์ค ์์ ์๋ฐ
2020๋
์๋ Java์ ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์? ์ฐ๋ฆฌ๋ Java ๊ฐ๋ฐ์ ๊ดํ ์ค์ํ ๋ด์ค๋ฅผ ๋ชจ์๋ดค์ต๋๋ค.
Java ์๋ จ๋๋ ์๊ฒฉ ๊ทผ๋ฌด์ ๊ฐ์ฅ ์๊ตฌ๋๋ ์ธ ๊ฐ์ง ๊ธฐ์ ์ค ํ๋๊ฐ ๋์์ต๋๋ค.
๋ฏธ๊ตญ์ ๋ณธ์ฌ๋ฅผ ๋ ๊ตฌ์ง ์๋น์ค์ธ Dice๋ ์ฌํ๊ทผ๋ฌด ์ง์์ ์ฐพ๋ ๊ณ ์ฉ์ฃผ๋ค ์ฌ์ด์์ ๊ฐ์ฅ ์์๊ฐ ๋์ ๊ธฐ์ , ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๋๊ตฌ
๋ชฉ๋ก์ ๋ง๋ค์์ต๋๋ค .
์ง๋ ๋ ๋ฌ ๋์์๋ SQL ์ธ์ด๊ฐ ์ ๋๋ฅผ ์ฐจ์งํ๊ณ , ํ๋ก์ ํธ ๊ด๋ฆฌ์ Java ์ธ์ด๊ฐ ๊ทธ ๋ค๋ฅผ ์ด์์ต๋๋ค. ์ฐ๊ตฌ ์ ์๋ค์ ๋ณด๊ฑด ๋ฐ ๊ต์ก ๋ถ๋ฌธ์ ์กฐ์ง์ด ํฌ๋ฐ๋ฏน ๊ธฐ๊ฐ ๋์ ์๊ฒฉ ๊ทผ๋ฌด๋ฅผ ๊ฐ์ฅ ์ ๊ทน์ ์ผ๋ก ์์ฉํ๋ค๊ณ ์ง์ ํ์ต๋๋ค.
Snowflake๋ Java ๊ฐ๋ฐ์ ์ํ ์๋ก์ด ํ๋ ์์ํฌ๋ฅผ ์ถ์ํ์ต๋๋ค.
ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ ๊ณต์
์ฒด์ธ Snowflake๊ฐ ์๋ก์ด Snowpark ๊ฐ๋ฐ ํ๊ฒฝ์ ํ
์คํธ ๋ฒ์ ์ ๊ณต๊ฐํ์ต๋๋ค. Java, Scala ๋ฐ Python์ ํฌํจํ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค. Snowpark์๋ ์ฝ๋๋ฒ ์ด์ค์ ํต์ฌ Snowflake ์์ง ๊ฐ์ ์ํธ ์์ฉ์ ์ต์ ํํ๋ API ์ธํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. IDE๋ Snowflake Data Cloud์ ์๋ฒ๋ฆฌ์ค ์์
์ ๋ํ ์๋ก์ด ์ง์์ผ๋ก ๋ณด์๋ฉ๋๋ค.
Red Hat์ ํด๋ผ์ฐ๋์ฉ Quarkus Java ํ๋ ์์ํฌ๋ฅผ ๋์
ํ์ต๋๋ค.
Quarkus ์ ์์์ ๋ฐ๋ฅด๋ฉด Quarkus ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด Kubernetes ํ๋ซํผ์์ Java๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ธฐ์กด Java ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ํ๊ฒฝ ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ ์ ์์ต๋๋ค. ๋ฐํ์ ํ๊ฒฝ์ธ Quarkus๋ฅผ ์ฌ์ฉํ๋ฉด Java๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ฑฐ๋ ๋ง์ดํฌ๋ก์๋น์ค, ์ปจํ
์ด๋, ์๋ฒ๋ฆฌ์ค ์ปดํจํ
๊ณผ ๊ฐ์ ์๋ก์ด ์ํํธ์จ์ด ๋ชจ๋ธ์ ๊ตฌํํ ๋ ๊ธด๊ธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
GraalVM ๊ฐ์ ๋จธ์ ์ด ๋ฒ์ 20.3์ผ๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค.
์ค๋ผํด์ HotSpot/OpenJDK ๊ธฐ๋ฐ์ JDK์ด์ Java ๊ฐ์ ๋จธ์ ์ธ GraalVM์ ์ฌํด ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ต๋๋ค. ์ด๋ GraalVM์ ์ฒซ ๋ฒ์งธ LTS(์ฅ๊ธฐ ์ง์) ๋ฆด๋ฆฌ์ค์
๋๋ค. GraalVM 20.3์ ๋์
๋ ๊ฐ์ ์ฌํญ์๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ๋ชฉํ ๋งํ ์
๋ฐ์ดํธ๊ฐ ํฌํจ๋์์ต๋๋ค. ์ฑ๋ฅ์ 40% ํฅ์์ํค๋ ํฅ์๋ ์ปดํ์ผ๋ฌ ํด๋ฆฌ์คํฑ; ์๋ก ํ ๋น๋ ๋ฐฐ์ด์ ์ด๊ธฐํํ๊ธฐ ์ํ ์ฝ๋ ์์ฑ์ด ๊ฐ์ ๋์์ต๋๋ค. ํฅ์๋ ์ฝ๋ ๋ณต์ ์ต์ ํ(GraalVM Enterprise ๋ฒ์ ) ์๋ค์ํผ, ์๋
์ Java์ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ฌ์ต๋๋ค. 2020๋
Java ์ปค๋ฎค๋ํฐ์ ๊ฐ์ฅ ์ค์ํ ์ด๋ฒคํธ๋ ๋ฌด์์ด๋ผ๊ณ ์๊ฐํ์๋์?
GO TO FULL VERSION