Java๋ Sun Microsystems์์ ์ถ์๋ ์ง 27๋
์ด ์ง๋ ์ง๊ธ๋ ์ฌ์ ํ ์ธ๊ธฐ๊ฐ ๋์ต๋๋ค. ์๋ง์ ์์ ํ๋ก๊ทธ๋๋ฐ ์ฐจํธ์ ๋ฐ๋ฅด๋ฉด Java๋ Python์ ์ด์ด ์ธ๊ณ์์ ๋ ๋ฒ์งธ๋ก ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋จ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ Java๋ฅผ ๊ทธํ ๋ก ์๊ตฌํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ์ง ๋ ์ ์ดํดํ ์ ์๋๋ก Java์ "์ญ๋์ฑ"๊ณผ 2022๋
Java์ ๋ฐ์ ๋ฐฉ์์ ๋ณด์ฌ ๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
์ด๋ค ์๋ก์ด Java ๋ฒ์ ์ด ์ถ์๋์๋์? ์ต์ Java ์๋์
์ ๊ฒํ ํด ๋ณด๊ฒ ์ต๋๋ค.
์ด์ ์ต์ Java ๋ฒ์ ์ 6๊ฐ์๋ง๋ค ์
๋ฐ์ดํธ๋ฉ๋๋ค. ์ฌํด ์ฐ๋ฆฌ๋ 3์์ Java 18, 9์์ Java 19๊ฐ ์ถ์๋์์ต๋๋ค. ์ด๋ LTS๊ฐ ์๋ ๋ฒ์ ์
๋๋ค. ์ต์ *LTS ๋ฒ์ ์ธ Java 17์ 2021๋
3์์ ์ถ์๋์์ต๋๋ค. *LTS ๋ฒ์ ์ ์์ ์ฑ, ๋ณด์ ๋ฐ ์ฑ๋ฅ ๊ฐ์ ๋ง ๋ณด์ฅํ์ง๋ง ์๋ก์ด ๊ธฐ๋ฅ์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ์ด๋ ์
๋ฐ์ดํธ๋ก ์ธํด ๋๊ตฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ํธ ์์ฉ์ด ์ค๋จ๋ ์ํ์ ์ค์ด๊ธฐ ์ํด ์ํ๋ฉ๋๋ค. 2018๋
์ด์ ์๋ Java ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๊ฐ ํจ์ฌ ๊ธธ์ด ์ต๋ 5๋
์ด ๊ฑธ๋ฆด ์ ์๋ค๋ ์ ์ ๊ฐ์กฐํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ธ์์ ๋์ฑ ์ญ๋์ ์ผ๋ก ๋ณํด ์ค๋๋ ์ ๊ฒฉ๋์ ์ธ IT ํ๊ฒฝ์์ ๊ฒฝ์ํ๊ณ ์ฑ๊ณตํ๊ธฐ ์ํด Java๋ ์ด์ ๋ณด๋ค ํจ์ฌ ๋ ์์ฃผ ์
๊ทธ๋ ์ด๋๋ฉ๋๋ค.
์๋ฐ 18. ์๋ก์ด ๊ธฐ๋ฅ์ ๋ฌด์์
๋๊น?
Java 18 ๋ฆด๋ฆฌ์ค์์ ์ด๋ค ๋ณํ๋ ๋ณํ๋ฅผ ๋ณผ ์ ์๋์ง ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ์ฐธ์กฐํ์ธ์.
-
UTF-8 . Java 18 ์ด์ ์๋ ๋ช
์์ ์ธ ๋ฌธ์ ์ข
๋ฃ๋ฅผ ์ง์ ํ์ง ์๊ณ ํ์ผ์ ์ฝ๋ ๋ฐ ์ด์ ์ฒด์ ์ธ์ฝ๋ฉ์ด ์ฌ์ฉ๋์์ต๋๋ค. ๋์ด์. UTF-8์ ๋ชจ๋ ์ด์ ์ฒด์ ์ ๊ธฐ๋ณธ ๋ฌธ์ ์งํฉ์ด ๋์์ต๋๋ค.
-
jwebserver ๋ช
๋ น . ์ด ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ๊ธฐ๋ณธ์ ์ธ ์น ์๋ฒ๋ฅผ ๋น ๋ฅด๊ฒ ์์ํ ์ ์์ต๋๋ค.
-
@snippet ํ๊ทธ ์
๋๋ค. ์ด ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ์์ค ์ฝ๋ ์กฐ๊ฐ์ JavaDoc ๋ฌธ์์ ํตํฉํ ์ ์์ต๋๋ค.
-
"์ธํฐ๋ท ์ฃผ์ ํ์ธ SPI." ์ด๋ฅผ ์ฌ์ฉํ์ฌ QA ์ ๋ฌธ๊ฐ๋ IP ์ฃผ์์ ๋ํ ํ์ค ํ์ธ์๋ฅผ ๋์ฒดํ ์ ์์ต๋๋ค.
-
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ์ธํ๋ฒ ์ดํฐ ๊ธฐ๋ฅ "์ค์์น์ฉ ํจํด ์ผ์น", "์ธ๋ถ ํจ์ ๋ฐ ๋ฉ๋ชจ๋ฆฌ API" ๋ฐ "๋ฒกํฐ API"๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
-
๋จ์ํ๋ ์น ์๋ฒ. Java 18์๋ jwebserver ๋ก ์์ํ ์ ์๋ ๊ธฐ๋ณธ์ ์ธ HTTP ์๋ฒ๊ฐ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค .
์๋ฐ 19. ์๋ก์ด ๊ธฐ๋ฅ์ ๋ฌด์์
๋๊น?
Java 19๋ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ ์๋
๋ง์ ์ฐธ์ ํ ๊ธฐ๋ฅ์ ์๋ํฉ๋๋ค.
ํ์ง๋ง ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๊ฒ ์ค ๋ค์์ ๊ฐ์กฐํ ์ ์์ต๋๋ค.
- ํจํด ์ผ์น๋ฅผ ํ์ฅํ๊ณ ๋ณด๋ค ์ ๊ตํ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ๋ฅผ ํํํ๋ ํจํด ๊ธฐ๋ก ๊ธฐ๋ฅ์
๋๋ค.
- JEP 424 ๋ ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค๋ฅผ ์ํ ์๋ก์ด ๋นJava API์
๋๋ค.
- JEP 426์ ๋ฒกํฐ ๊ณ์ฐ์ ํํํ๋ API๋ก ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
๋ํ ์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์จ Project Loom,
Foreign Function & Memory API ,
Structured Concurrency ๋ฐ
Vector API ์์ ๊ฐ๋ฐ๋ ๊ฐ์ ์ค๋ ๋๊ฐ ๋ง์นจ๋ด Java 19์ ๋ฑ์ฅํ์ต๋๋ค. ์ด๋ค์ ํ์ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ชจ๋์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๋ค์ ๋ฆด๋ฆฌ์ค์์ ๋ณ๊ฒฝ๋ ์์ ์
๋๋ค.
2022๋
๊ธฐํ Java ๋ฒ์ ํํฉ
2021๋
๊ณผ 2022๋
์ ๊ฑธ์ณ Java ๋ฒ์ ์ ๋ช ๊ฐ์ง ์ค์ํ ๋ณํ๊ฐ ์์์ต๋๋ค. ๋ง์ ํ์ฌ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์๋น ๋ถ๋ถ์ Java 11๋ก ์ ํํ์ต๋๋ค. New Relic ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด 2020๋
3์ ์ ํ๋ฆฌ์ผ์ด์
์ 84.48%๊ฐ
Java
8์์ ์คํ๋ฉ๋๋ค. ํ์ฌ 48.44 ์ ํ๋ฆฌ์ผ์ด์
์ 46.45%๊ฐ Java 11์ ์๊ณ ์ ํ๋ฆฌ์ผ์ด์
์ 46.45%๊ฐ Java 8์ ์์ต๋๋ค. ๋ง์ ๊ธฐ์
์ด ์ฌ์ ํ Java 8์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ค์ง์ ์ธ ๋ฌธ์ (๋๊ตฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ ์
๊ทธ๋ ์ด๋)๋ถํฐ ์ ์ฑ
๋ฌธ์ ๊น์ง ๋ค์ํ ์ด์ ๊ฐ ํผํฉ๋์ด ์์ต๋๋ค.
์์ฒ
์ด๋ฌํ ๋ฒ์ ์ ์ฅ๊ธฐ ์ง์์ด๋ฉฐ ์ต์ LTS ๋ฒ์ ์ธ Java 17์ ์์ง ํ๊ณ ํ ์์น๋ฅผ ํ๋ฆฝํ์ง ๋ชปํ์ง๋ง ์ถ์ ํ ๋ช ๋ฌ ๋ง์ ์ด๋ฏธ ๋๋ถ๋ถ์ ๋น LTS ๋ฒ์ ์ ๋ฅ๊ฐํ์ต๋๋ค. LTS๊ฐ ์๋ Java ๋ฒ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ฑํ๋ฅ ์ด ๋ฎ์ผ๋ฉฐ ์ด์ ๋ํ ํจ์น๋ฅผ ์ ๊ณตํ๋ ๊ณต๊ธ์
์ฒด๋ ์์์ ๋ถ๊ณผํฉ๋๋ค(Azul Systems๋ ์ผ๋ถ ๋น LTS ๋ฒ์ ์ ์ง์ํ๋ ๊ฐ์ฅ ๋ฐ์ด๋ ๋ํ์์
๋๋ค). ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ 2.7%๋ง์ด LTS๊ฐ ์๋ Java ๋ฒ์ ์์ ์คํ๋๊ณ ์์ผ๋ฉฐ Java 14๊ฐ ๊ทธ์ค ์ต๊ณ ์ด๋ฉฐ Java 10๊ณผ Java 16์ด ๊ฐ์ฅ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค.
2022๋
JDK(Java Developer Kit) ๋ฐฐํฌํ
์ค๋ผํด์ ์ธ๊ธฐ๊ฐ ์ค์ด๋ค๋ฉด์ ์๋ง์กด์ ์ธ๊ธฐ๊ฐ ๋์์ง๊ณ ์์ต๋๋ค. 2020๋
์ Oracle์ Java ์์ฅ์ ์ฝ 75%๋ฅผ ์ฐจ์งํ๋ JDK ๋ฐฐํฌํ์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ณต๊ธ์
์ฒด์์ง๋ง ํ์ฌ ๊ทธ ์ ์ ์จ์ ์ ๋ฐ์ผ๋ก ์ค์์ต๋๋ค. ์๋ง์กด์ ์์ฅ ์ ์ ์จ์ 2020๋
2.18%์์ ์ฌํด 22%๋ก ๋น ๋ฅด๊ฒ ๋ฐ์ด์ฌ๋๋ค.
Java World 2022์ ๊ธฐํ ์ค์ํ ์
๊ทธ๋ ์ด๋: Spring Framework 6, Spring Boot 3 ๋ฐ Jakarta EE 10 ๋ฆด๋ฆฌ์ค
Java ๊ด๋ จ ๋ด์ค์ ๊ดํด์๋ผ๋ฉด Spring Framework 6๊ณผ Spring Boot 3์ ์ถ์๋ฅผ ๋นผ๋์ ์ ์์ต๋๋ค. VMware๋ 5๋
๋์ ์๋ก์ด Spring Framework 6์ ๊ฐ๋ฐํ์ผ๋ฉฐ, ์ถ์์ ํจ๊ป VMware๋ ์๋ง๋ Spring์ ์๋ก์ด ์ธ๋๋ฅผ ์์ํ์ ๊ฒ์
๋๋ค. ์ํ๊ณ. Spring Framework 6์๋ Java 17 ๋ฒ์ ๊ณผ Jakarta EE 9๊ฐ ํ์ํฉ๋๋ค. ๋ํ ์๋ก ์ถ์๋ Jakarta EE 10์ ์ง์ํ๋ฏ๋ก Tomcat 10.1, Jetty 11 ๋ฐ Undertow 2.3๊ณผ ๊ฐ์ ์ต์ ์น ์๋ฒ์ ํธํ๋ฉ๋๋ค. ์๋ก์ด Spring Boot 3์ Spring Framework 6๊ณผ ํธํ๋๋ฉฐ ๊ธฐ๋ณธ ์คํ ํ์ผ ์์ฑ์ ์ง์ํฉ๋๋ค(๋ ๋น ๋ฅด๊ฒ ์์ํ๊ณ , ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ , ๋ ์์ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ ๋์ ๋ณด์์ ์ ๊ณตํฉ๋๋ค). ๋ฐ๋ผ์ Java๋ ํด๋ผ์ฐ๋์์ ๋์ฑ ๊ฒฝ์๋ ฅ์ ๊ฐ๊ฒ ๋์์ต๋๋ค. Jakarta EE 10์ ๋ํด ๋งํ์๋ฉด, ํด๋น ๋ฆด๋ฆฌ์ค๋ Java 19 ์
๊ทธ๋ ์ด๋(2022๋
9์)์ ํจ๊ป ์งํ๋ฉ๋๋ค. Jakarta EE ๊ธฐ์ ์ ๋ฐ์ ๊ฑธ์ณ ํ๋ํ๋๊ณ ๋จ์ํ๋ฉฐ ๊ฐ๋ฒผ์ด ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ Java ์ฑ์ ๋ง๋ค๊ธฐ ์ํ ์ฌ์ ์ฝค๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ฆ, Jakarta EE 10์ ์ด์ ์ ํ๊ณผ ํฌ๊ฒ ๋ค๋ฅด๋ฉฐ 20๊ฐ ์ด์์ ๊ตฌ์ฑ ์์ ์ฌ์์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
2022๋
์์ ์ธ๋ถ์ ๋ณด
์ด ๊ฐ์๋ ์ฌํด ์ต๊ณ ์ ํ๋ก๊ทธ๋๋ฐ ์ฐจํธ์ Java ์์น๋ฅผ ์ดํด๋ณด์ง ์์ผ๋ฉด ๋ถ์์ ํ ๊ฒ์
๋๋ค. 2022๋
6์
RedMonk ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์์
์ ๋ฐ๋ฅด๋ฉด Java๋ ์์๋ก์ด 3์๋ฅผ ์ฐจ์งํ๊ณ ์์ต๋๋ค.
RedMonk๋ GitHub ๋ฐ Stack Overflow์์ ์ธ์ด ์์๋ฅผ ์ถ์ถํ ๋ค์ ์ด๋ฅผ ํ๋์ ์์๋ก ๊ฒฐํฉํ์ฌ "์ค์ ๊ทธ๋ฆผ"(์ผ๋ช
๋ ์ฝ๋ ๋ฐ์)์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ํ์ฌ ์ธ์ด ์ฌ์ฉ์ ๋ํ ํต๊ณ์ ์ผ๋ก ์ ํจํ ํํ์ ์ ๊ณตํ์ง ์์ ์ ์์ต๋๋ค. GitHub) ๋ฐ ํ ๋ก (Stack Overflow) ๊ฒฌ์ธ๋ ฅ.
StackOverflow
๋ง ๊ณ ๋ คํ๋ฉด ์ฌ๊ธฐ์ Java๋ Phyton์ ์ด์ด ๋ ๋ฒ์งธ ๊ณ ๊ธ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค.
๊ทธ๋ฌ๋ ์คํฌ๋ฆฝํ
๋ฐ ๋งํฌ์
์ธ์ด์๋ ๋น๊ตํ๋ฉด Java๋ ๋ค์์ ์ฐจ์งํฉ๋๋ค. ์ธ๊ณ์ ์ผ๋ก ์ ๋ช
ํ
TIOBE ์ง์
์ ๋ฐ๋ฅด๋ฉด Java์ ํฐ ๋ณํ๊ฐ ์ผ์ด๋ฌ์ผ๋ฉฐ, C++๊ฐ ์ญ์ฌ์ ์ฒ์์ผ๋ก(2001๋
์ดํ) Java๋ฅผ ์์ง๋ ์ผ๋ฉฐ, ์ด๋ Java๊ฐ ํ์ฌ 4์์์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด Java๊ฐ ์ฌํด์๋ ์ฌ์ ํ ์ฑ์ฅ(1,70%)ํ ๊ฒ์ ์ ์ ์์ต๋๋ค. C++๋ +4,21%๋ฅผ ๊ธฐ๋กํ์ฌ ๊ฒฐ๊ตญ Java๋ฅผ ์ฝ๊ฐ ๋ฅ๊ฐํ ์ ์์์ต๋๋ค. , ์ฅ๊ธฐ TIOBE ์ง์๋ฅผ ์ฐธ๊ณ ํ๋ฉด Java๊ฐ ์ต๊ทผ 12๊ฐ์ ๋์ ์ธ ๋ฒ์งธ๋ก ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์์ผ๋ก 12๊ฐ์ ๋์ ๊ธฐ์ ์ธ๊ณ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ๋๊ฐ ์๊ฒ ์ต๋๊น?
๊ฒฐ๋ก
๊ถ๊ทน์ ์ผ๋ก Java๋ ๊ธ์ต, ์ ์ ์๊ฑฐ๋, ์์ ๋ฐ ๊ฐ์ค ๋ถ๋ฌธ, ๊ต์ก, ์๋ฃ, ์ ๋ถ, ๋น
๋ฐ์ดํฐ ๋ฑ์ ํฌํจํ ๋ชจ๋ ๊ท๋ชจ์ ๋ถ์ผ์ ํ์ฌ์์ ์ฑํ๋์ด ์ ์ธ๊ณ ์์ฒ ๋ช
์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ํ๋ฆฝ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฐ๋ฆฌ๋ Java๊ฐ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์ํ๊ณ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๊ธฐ๋ฅ์ ๊ณ์ํด์ ๋ฐ์ ์ํค๊ณ ์๊ธฐ ๋๋ฌธ์ ํฌํ์ ์ ๋๋ฌํ๊ธฐ์๋ ์์ง ๋ฉ์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ์ฐ๋ฆฌ๋ ML, AI์ ๊ฐ์ ํ์ ์ ์ธ ๊ธฐ์ ์ ๋ฑ์ฅ์ผ๋ก ์ธ์ด๊ฐ ๊ณ์ํด์ ์งํํ๊ณ ์๋ก์ด ์ ์ฒด์ฑ์ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์์ธกํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ด๋
์ Java์๋ ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์๋์? ์ฌํด Java ์ปค๋ฎค๋ํฐ์ ํ์ด๋ผ์ดํธ๋ ๋ฌด์์ด์๋์?
GO TO FULL VERSION