JavaRush /Java Blog /Random-KO /Java 13: ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋ฌด์—‡์ด ์šฐ๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์„๊นŒ์š”?

Java 13: ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋ฌด์—‡์ด ์šฐ๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์„๊นŒ์š”?

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
Java 13์ด ์ถœ์‹œ๋˜๊ธฐ๊นŒ์ง€ ์•„์ง 3๊ฐœ์›”์ด ๋‚จ์•˜์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์–ธ์–ด์˜ ํ–ฅํ›„ ๋ฒ„์ „์˜ ํ˜์‹ ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ OpenJDK ํŽ˜์ด์ง€์— ์ง€์†์ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Java์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ JDK - JEP(JDK Enhancement Proposals)๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฃจ์–ด์ง€๋ฉฐ ๋‚˜์ค‘์— ์ƒˆ ๋ฒ„์ „์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค(๊ธ€์Ž„, ์œ ์šฉํ•˜๊ณ  ์ ์ ˆํ•˜๋‹ค๊ณ  ๊ฐ„์ฃผ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ†ตํ•ฉ๋˜์ง€ ์•Š์Œ). ๋‹ค์Œ์€ ์ƒˆ ๋ฒ„์ „์˜ Java์— ์ œ์•ˆ๋œ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ๋ธ”๋ก. JEP-355 ์— ๋”ฐ๋ฅด๋ฉด ํ…์ŠคํŠธ ๋ธ”๋ก์€ JDK 13(๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ˆ˜์ค€)์— ๋‚˜ํƒ€๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ๋ธ”๋ก์€ ๋Œ€๋ถ€๋ถ„์˜ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๊ฐ€ โ€‹โ€‹ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋‹ค์ค‘ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋Œ€๋ถ€๋ถ„์˜ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์ž๋™ ์ค„ ๋ฐ”๊ฟˆ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ๋ธ”๋ก์€ ์ž๋™์œผ๋กœ ์ค„์˜ ์„œ์‹์„ ์ง€์ •ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ด๋‹น ์„œ์‹์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด JEP๋Š” ์ฃผ๋กœ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ์ฝ๊ธฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. Java์—์„œ Java๊ฐ€ ์•„๋‹Œ ๊ฐ์ฒด(์˜ˆ: XML ๋˜๋Š” JSON)๋ฅผ ํฌํ•จํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ "ํƒฌ๋ฒ„๋ฆฐ๊ณผ ํ•จ๊ป˜ ์ถค์ถ”๊ธฐ"(ํŠน์ • ์ค„ ํŽธ์ง‘)๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ํฌํ•จ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์„ฑ, ์ง€์› ๋ฐ ์ฝ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์†Œ์ผ“ API ์—…๋ฐ์ดํŠธ. ์ƒˆ๋กœ์šด Java๋Š” ๋ ˆ๊ฑฐ์‹œ ์†Œ์ผ“ API๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋œ ๊ตฌํ˜„์€ ๋”์šฑ ํ˜„๋Œ€ํ™”๋˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๋””๋ฒ„๊น…์ด ๋” ์‰ฌ์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” net.Socket ๋ฐ java.net.ServerSocket API์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์€ ์‚ฌ์šฉ์ž ๋ชจ๋“œ ์Šค๋ ˆ๋“œ(ํŒŒ์ด๋ฒ„ ๋˜๋Š” ํŒŒ์ด๋ฒ„) ์ž‘์—…์— ์‰ฝ๊ฒŒ ์ ์‘ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณ‘๋ ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๊ณ , ๋””๋ฒ„๊ทธํ•˜๊ณ , ํ”„๋กœํŒŒ์ผ๋งํ•˜๊ณ  ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ์ ํŠธ์ธ Loom ์—์„œ ํƒ์ƒ‰๋ฉ๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋ ˆ๊ฑฐ์‹œ API์˜ ๋ฟŒ๋ฆฌ๋Š” JDK 1.0์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋ฉฐ ๋””๋ฒ„๊ทธ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์šด ๋ ˆ๊ฑฐ์‹œ C์™€ Java ์ฝ”๋“œ๊ฐ€ ํ˜ผํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๊ตฌํ˜„์—๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ์‹ ํ์‡„๋ฅผ ์ง€์›ํ•˜๋Š” ์ž์ฒด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ์ธํ•ด ์•ˆ์ •์„ฑ ๋ฐ ์ด์‹์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ZGC (Z Garbage Collector) ๊ฐœ์„ . ์ƒˆ ๋ฒ„์ „์—์„œ๋Š” ZGC ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์šด์˜ ์ฒด์ œ์— ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ZGC๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์งง์€ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋กœ ํŒ๋งค๋˜์ง€๋งŒ ํ˜„์žฌ๊นŒ์ง€๋Š” ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ OS์— ๋‹ค์‹œ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ด๋Š” ๋น„ํ•ฉ๋ฆฌ์ ์ด๋ฉฐ ์˜ค๋žซ๋™์•ˆ ์œ ํœด ์ƒํƒœ๋กœ ์žˆ์„ ์ˆ˜ ์—†๋Š” ์ผ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๊ณต์œ  AppCDS ๊ธฐ๋Šฅ ๊ฐœ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์ด ๋๋‚  ๋•Œ ํด๋ž˜์Šค์˜ ๋™์  ๋ณด๊ด€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๊ณต์œ  ๋˜๋Š” ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๊ณต์œ ๋Š” JDK 5์—์„œ ์ฒ˜์Œ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ณตํ†ต ์•„์นด์ด๋ธŒ ํŒŒ์ผ์˜ ํด๋ž˜์Šค ์„ธํŠธ๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ ๋Ÿฐํƒ€์ž„ ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๋งคํ•‘ํ•˜์—ฌ ์‹œ์ž‘ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์•„์นด์ด๋ธŒ ํด๋ž˜์Šค์—๋Š” ํ‘œ์ค€ ๊ธฐ๋ณธ ์ˆ˜์ค€ CDS ์•„์นด์ด๋ธŒ์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๋กœ๋“œ๋œ ๋ชจ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋ž˜์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ์ œ์•ˆ์€ AppCDS์˜ ์œ ์šฉ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํด๋ž˜์Šค ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‹œํ—˜ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Switch ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ ํ‘œํ˜„์‹ ์ œํ’ˆ ๋ฒ„์ „ - Switch Expressions . Java 12 ๋ฒ„์ „ ์—์„œ๋Š” switch ๋ฌธ ์ฝ”๋“œ์˜ ๋‹จ์ˆœํ™”๊ฐ€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋‹จ๊ณ„์— ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์˜›๋‚  ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ‘œํ˜„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚จ์€ ๊ฒƒ์€ Java 13์˜ ์ถœ์‹œ์ผ์ธ 9์›” 17์ผ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ ํ˜์‹ ์— ๋Œ€ํ•ด ๋นจ๋ฆฌ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ๋ฒ ํƒ€ ๋นŒ๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION