์ž๋ฐ” SE 15 ๋ฆด๋ฆฌ์Šค

XNUMX๊ฐœ์›” ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— Oracle์€ ์ถœ์‹œ ํ”Œ๋žซํผ ์ž๋ฐ” SE 15 (Java Platform, Standard Edition 15) ์˜คํ”ˆ ์†Œ์Šค OpenJDK ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฐธ์กฐ ๊ตฌํ˜„์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Java SE 15๋Š” ์ด์ „ Java ํ”Œ๋žซํผ ๋ฆด๋ฆฌ์Šค์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ, ์ด์ „์— ์ž‘์„ฑ๋œ ๋ชจ๋“  Java ํ”„๋กœ์ ํŠธ๋Š” ์ƒˆ ๋ฒ„์ „์—์„œ ์‹คํ–‰๋  ๋•Œ ๋ณ€๊ฒฝ ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰์‹œ ์„ค์น˜ ๊ฐ€๋Šฅํ•œ Java SE 15 ๋นŒ๋“œ(JDK, JRE ๋ฐ ์„œ๋ฒ„ JRE) ์ค€๋น„๋œ Linux(x86_64), Windows ๋ฐ macOS์šฉ. OpenJDK ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœ๋œ ์ฐธ์กฐ ๊ตฌํ˜„ ์ž๋ฐ” 15 ์ƒ์šฉ ์ œํ’ˆ๊ณผ์˜ ๋™์  ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜๋Š” GNU ClassPath ์˜ˆ์™ธ๋ฅผ ํฌํ•จํ•˜์—ฌ GPLv2 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ฅธ ์™„์ „ํ•œ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

Java SE 15๋Š” ์ผ๋ฐ˜ ์ง€์› ๋ฆด๋ฆฌ์Šค๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ๊ณ„์† ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. LTS(์žฅ๊ธฐ ์ง€์›) ๋ถ„๊ธฐ๋Š” Java SE 11์ด์–ด์•ผ ํ•˜๋ฉฐ 2026๋…„๊นŒ์ง€ ๊ณ„์† ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Java 8์˜ ์ด์ „ LTS ๋ถ„๊ธฐ๋Š” 2020๋…„ 2021์›”๊นŒ์ง€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ LTS ๋ฆด๋ฆฌ์Šค๋Š” 10๋…„ XNUMX์›”๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Java XNUMX ๋ฆด๋ฆฌ์Šค๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ์ƒˆ ๋ฆด๋ฆฌ์Šค ํ˜•์„ฑ ์ฃผ๊ธฐ๊ฐ€ ๋” ์งง์•„์กŒ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์€ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋Š” ํ•˜๋‚˜์˜ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๊ธฐ์„ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์•ˆ์ •ํ™”ํ•˜๊ธฐ ์œ„ํ•ด XNUMX๊ฐœ์›”๋งˆ๋‹ค ๋ธŒ๋žœ์น˜๊ฐ€ ๋ถ„๊ธฐ๋ฉ๋‹ˆ๋‹ค.

์œผ๋กœ ํ˜์‹  ์ž๋ฐ” 15 ํ•˜๋‚˜๋Š” ์ˆ˜ ํ‘œ:

  • ๋‚ด์žฅ EdDSA(Edwards-Curve Digital Signature Algorithm) ๋””์ง€ํ„ธ ์„œ๋ช… ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง€์› RFC 8032). ์ œ์•ˆ๋œ EdDSA ๊ตฌํ˜„์€ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋˜๋ฉฐ(๋ชจ๋“  ๊ณ„์‚ฐ์˜ ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ๋ณด์žฅ๋จ) ๋™์ผํ•œ ์ˆ˜์ค€์˜ ๋ณดํ˜ธ๋กœ C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๊ธฐ์กด ECDSA ๊ตฌํ˜„๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 126๋น„ํŠธ ํ‚ค์™€ ํ•จ๊ป˜ ํƒ€์› ๊ณก์„ ์„ ์‚ฌ์šฉํ•˜๋Š” EdDSA๋Š” secp256r1 ํƒ€์› ๊ณก์„ ๊ณผ 128๋น„ํŠธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ECDSA์™€ ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋จ ๊ตฌํ˜„์„ ์ƒ์†, ํ™•์žฅ ๋˜๋Š” ์žฌ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ํด๋ž˜์Šค ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ด‰์ธ๋œ ํด๋ž˜์Šค ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์›์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Sealed ํด๋ž˜์Šค๋Š” ํ™•์žฅ์ด ํ—ˆ์šฉ๋˜๋Š” ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ก์„ธ์Šค ํ•œ์ •์ž๋ณด๋‹ค ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์‚ฌ์šฉ์„ ์ œํ•œํ•˜๋Š” ๋ณด๋‹ค ์„ ์–ธ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ํŒจํ‚ค์ง€ com.example.geometry;

    ๊ณต๊ฐœ ๋ด‰์ธ ํด๋ž˜์Šค ๋ชจ์–‘
    com.example.pole.Circle์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {...}

  • ์ถ”๊ฐ€๋จ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ˆจ๊ฒจ์ง„ ํด๋ž˜์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํžˆ๋“  ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ชฉ์ ์€ ๋Ÿฐํƒ€์ž„์— ํด๋ž˜์Šค๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ˜์‚ฌ. ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜๋ช… ์ฃผ๊ธฐ๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ •์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํด๋ž˜์Šค์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ํƒ€๋‹นํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋งŒ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ˆจ๊ฒจ์ง„ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ–ฅํ›„ ์ œ๊ฑฐ ์˜ˆ์ •์ธ ๋น„ํ‘œ์ค€ API sun.misc.Unsafe::defineAnonymousClass๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ZGC(Z Garbage Collector) ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์•ˆ์ •ํ™”๋˜์–ด ๋„๋ฆฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์ธ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ZGC๋Š” ์ˆ˜๋™ ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์œผ๋กœ ์ธํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ตœ๋Œ€ํ•œ ์ตœ์†Œํ™”ํ•˜๊ณ (ZGC ์‚ฌ์šฉ ์‹œ ์ •์ง€ ์‹œ๊ฐ„์€ 10ms๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Œ) ์ˆ˜๋ฐฑ ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ์—์„œ ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ์— ์ด๋ฅด๋Š” ์ž‘์€ ํž™๊ณผ ๊ฑฐ๋Œ€ํ•œ ํž™ ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ˆ์ •ํ™”๋˜์–ด ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋จ
    ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ Shenandoah, ์ตœ์†Œํ•œ์˜ ์ผ์‹œ ์ค‘์ง€๋กœ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค(๋‚ฎ์€ ์ผ์‹œ ์ค‘์ง€ ์‹œ๊ฐ„ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ). Shenandoah๋Š” Red Hat์—์„œ ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰๊ณผ ๋™์‹œ์— ์ •๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘ ์ค‘ ์ •์ง€ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ง€์—ฐ ํฌ๊ธฐ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋ฉฐ ํž™ ํฌ๊ธฐ์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 200MB ๋ฐ 200GB ํž™์˜ ๊ฒฝ์šฐ ์ง€์—ฐ์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(๋‚˜์˜ค์ง€ ๋งˆ 50ms ์ดˆ๊ณผ, ์ผ๋ฐ˜์ ์œผ๋กœ 10ms ์ด๋‚ด)

  • ์ง€์›์ด ์•ˆ์ •ํ™”๋˜์–ด ์–ธ์–ด์— ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ๋ธ”๋ก - ๋ฌธ์ž ์ด์Šค์ผ€์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ธ”๋ก์˜ ์›๋ž˜ ํ…์ŠคํŠธ ํ˜•์‹์„ ์œ ์ง€ํ•˜์ง€ ์•Š๊ณ ๋„ ์†Œ์Šค ์ฝ”๋“œ์— ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก์€ ์„ธ ๊ฐœ์˜ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ ๋Œ€์‹ 

    ๋ฌธ์ž์—ด html = " ยป +
    "\n\t" + " ยป +
    "\n\t\t" + " \"Java 1๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!\" ยป +
    "\n\t" + " ยป +
    "\n" + " ";

    ๋‹ค์Œ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ฌธ์ž์—ด HTML = """


    ยป์ž๋ฐ” 1\
    ์—ฌ๊ธฐ์—!

    """;

  • ์žฌ์„ค๊ณ„ ๋ ˆ๊ฑฐ์‹œ DatagramSocket API. java.net.DatagramSocket ๋ฐ java.net.MulticastSocket์˜ ์ด์ „ ๊ตฌํ˜„์€ ๋””๋ฒ„๊ทธ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฝ๊ณ  ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๊ฐœ๋ฐœ๋œ ๊ฐ€์ƒ ์ŠคํŠธ๋ฆผ๊ณผ๋„ ํ˜ธํ™˜๋˜๋Š” ์ตœ์‹  ๊ตฌํ˜„์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง์กฐ๊ธฐ. ๊ธฐ์กด ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด์ „ ๊ตฌํ˜„์€ ์ œ๊ฑฐ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ jdk.net.usePlainDatagramSocketImpl ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ์‹คํ—˜ ๊ตฌํ˜„ ์ œ์•ˆ ํŒจํ„ด ๋งค์นญ "instanceof" ์—ฐ์‚ฐ์ž์—์„œ ๋กœ์ปฌ ๋ณ€์ˆ˜๋ฅผ ์ฆ‰์‹œ ์ •์˜ํ•˜์—ฌ ํ™•์ธ๋œ ๊ฐ’์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "String s = (String) obj"๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜์ง€ ์•Š๊ณ ๋„ "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}"๋ฅผ ์ฆ‰์‹œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ทธ๊ฒƒ์€ :

    if(obj ์ธ์Šคํ„ด์Šคof๊ทธ๋ฃน) {
    ๊ทธ๋ฃน ๊ทธ๋ฃน = (๊ทธ๋ฃน)obj;
    var ํ•ญ๋ชฉ = group.getEntries();
    }

    ์ด์ œ "Group group = (Group) obj" ์ •์˜ ์—†์ด๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    if (obj ์ธ์Šคํ„ด์Šคof ๊ทธ๋ฃน ๊ทธ๋ฃน) {
    var ํ•ญ๋ชฉ = group.getEntries();
    }

  • ์ œ์•ˆ๋จ "๋ผ๋Š” ํ‚ค์›Œ๋“œ์˜ ๋‘ ๋ฒˆ์งธ ์‹คํ—˜์  ๊ตฌํ˜„๊ธฐ๋ก"๋Š” ํด๋ž˜์Šค ์ •์˜๋ฅผ ์œ„ํ•œ ๊ฐ„๊ฒฐํ•œ ํ˜•์‹์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋™์ž‘์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ํ•„๋“œ์—๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ฒฝ์šฐ equals(), hashCode() ๋ฐ toString()๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ•˜์œ„ ์ˆ˜์ค€ ๋ฉ”์„œ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๊ฐ€ equals(), hashCode() ๋ฐ toString() ๋ฉ”์„œ๋“œ์˜ ํ‘œ์ค€ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ช…์‹œ์ ์ธ ์ •์˜ ์—†์ด๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ณต๊ณต ๊ธฐ๋ก BankTransaction(LocalDate ๋‚ ์งœ,
    ๋‘ ๋ฐฐ์˜ ๊ธˆ์•ก
    ๋ฌธ์ž์—ด ์„ค๋ช…) {}

    ์ด ์„ ์–ธ์€ ์ƒ์„ฑ์ž ๋ฐ getter ๋ฉ”์„œ๋“œ ์™ธ์—๋„ equals(), hashCode() ๋ฐ toString() ๋ฉ”์„œ๋“œ์˜ ๊ตฌํ˜„์„ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์ œ์•ˆ๋จ Foreign-Memory Access API์˜ ๋‘ ๋ฒˆ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋กœ, Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒˆ๋กœ์šด MemorySegment, MemoryAddress ๋ฐ MemoryLayout ์ถ”์ƒํ™”๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ Java ํž™ ์™ธ๋ถ€์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
  • ์žฅ์• ๊ฐ€ ์žˆ๋Š” ์ž ๊ธˆ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด HotSpot JVM์—์„œ ์‚ฌ์šฉ๋˜๋Š” Biased Locking ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์ตœ์‹  CPU์—์„œ ์ œ๊ณตํ•˜๋Š” ์›์ž ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ๊ณผ์˜ ๊ด€๋ จ์„ฑ์„ ์žƒ์—ˆ์œผ๋ฉฐ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋…ธ๋™ ์ง‘์•ฝ์ ์ž…๋‹ˆ๋‹ค.
  • ๋ฐœํ‘œ๋จ ์˜ค๋ž˜๋œ ๋ฉ”์ปค๋‹ˆ์ฆ˜ RMI ํ™œ์„ฑํ™”๋Š” ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. RMI ํ™œ์„ฑํ™”๋Š” ๊ตฌ์‹์ด๋ฉฐ Java 8์˜ ์˜ต์…˜ ๋ฒ”์ฃผ๋กœ ๊ฐ•๋“ฑ๋˜์—ˆ์œผ๋ฉฐ ํ˜„๋Œ€ ์‹ค๋ฌด์—์„œ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ œ๊ฑฐ๋จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ์ฝ”๋ฟ”์†Œ, ์ด๋Š” Java SE 11์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‚ญ์ œ๋จ Solaris OS ๋ฐ SPARC ํ”„๋กœ์„ธ์„œ(Solaris/SPARC, Solaris/x64 ๋ฐ Linux/SPARC)์šฉ ํฌํŠธ. ์ด๋Ÿฌํ•œ ํฌํŠธ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” Solaris ๋ฐ SPARC ํŠน์ • ๊ธฐ๋Šฅ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด OpenJDK ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๊ฐ€์†ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€