2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2023. 9. 20. 10:38ยทLanguages/JAVA
๋ชฉ์ฐจ
  1. JDK 20 ๋ฆด๋ฆฌ์ฆˆ
  2. ํ”„๋กœ์ ํŠธ ํŒŒ๋‚˜๋งˆ
  3. ํ”„๋กœ์ ํŠธ ๋ฃธ
  4. ํ”„๋กœ์ ํŠธ ์— ๋ฒ„
  5. JDK 21

JDK 20 ๋ฆด๋ฆฌ์ฆˆ

 

jdk 20

 

2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฆด๋ฆฌ์Šค์—๋Š” ์ƒˆ๋กœ์šด ํ”„๋ฆฌ๋ทฐ ๋ฐ ์ธํ๋ฒ ์ด์…˜ ๋ผ์šด๋“œ์™€ ํ•จ๊ป˜ Project Amber , Project Loom ๋ฐ Project Panama ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ๊ธฐ์—ฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” JEP๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค . ์—ฌ๊ธฐ์—์„œ ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ค‘ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. JDK 20์—๋Š” Project Valhalla๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” JEP๊ฐ€ ์—†๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค .


Oracle์€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ๊ฐ€์ƒ ๋จธ์‹  ๋ฒ„์ „ 20 ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค . ์ด ์ตœ์ข… ๊ธฐ๋Šฅ ์„ธํŠธ์˜ 7๊ฐœ JEP์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

JEP 429: ๋ฒ”์œ„ ๊ฐ’(์ธํ๋ฒ ์ดํ„ฐ)
 

JEP 429: Scoped Values (Incubator)

JEP 429: Scoped Values (Incubator) AuthorsAndrew Haley, Andrew DinnOwnerAndrew HaleyTypeFeatureScopeJDKStatusClosedโ€‰/โ€‰DeliveredRelease20Componentcore-libsDiscussionloom dash dev at openjdk dot java dot netReviewed byAlan Bateman, Alex BuckleyEndorsed b

openjdk.org

JEP 432: ๊ธฐ๋ก ํŒจํ„ด(๋‘ ๋ฒˆ์งธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ)
 

JEP 432: Record Patterns (Second Preview)

JEP 432: Record Patterns (Second Preview) Summary Enhance the Java programming language with record patterns to deconstruct record values. Record patterns and type patterns can be nested to enable a powerful, declarative, and composable form of data naviga

openjdk.org

JEP 433: ์Šค์œ„์น˜์šฉ ํŒจํ„ด ๋งค์นญ(๋„ค ๋ฒˆ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ)
 

JEP 433: Pattern Matching for switch (Fourth Preview)

JEP 433: Pattern Matching for switch (Fourth Preview) Summary Enhance the Java programming language with pattern matching for switch expressions and statements. Extending pattern matching to switch allows an expression to be tested against a number of patt

openjdk.org

JEP 434: ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ API(๋‘ ๋ฒˆ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ)
 

JEP 434: Foreign Function & Memory API (Second Preview)

JEP 434: Foreign Function & Memory API (Second Preview) Summary Introduce an API by which Java programs can interoperate with code and data outside of the Java runtime. By efficiently invoking foreign functions (i.e., code outside the JVM), and by safely a

openjdk.org

JEP 436: ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ(๋‘ ๋ฒˆ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ)
 

JEP 436: Virtual Threads (Second Preview)

JEP 436: Virtual Threads (Second Preview) AuthorsRon Pressler, Alan BatemanOwnerAlan BatemanTypeFeatureScopeSEStatusClosedโ€‰/โ€‰DeliveredRelease20Componentcore-libsDiscussionloom dash dev at openjdk dot orgRelates toJEP 425: Virtual Threads (Preview)JEP 4

openjdk.org

JEP 437: ๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ(๋‘ ๋ฒˆ์งธ ์ธํ๋ฒ ์ดํ„ฐ)
 

JEP 437: Structured Concurrency (Second Incubator)

JEP 437: Structured Concurrency (Second Incubator) AuthorsAlan Bateman, Ron PresslerOwnerAlan BatemanTypeFeatureScopeJDKStatusClosedโ€‰/โ€‰DeliveredRelease20Componentcore-libsDiscussionloom dash dev at openjdk dot orgRelates toJEP 453: Structured Concurren

openjdk.org

JEP 438: ๋ฒกํ„ฐ API(๋‹ค์„ฏ ๋ฒˆ์งธ ์ธํ๋ฒ ์ดํ„ฐ)
 

JEP 438: Vector API (Fifth Incubator)

JEP 438: Vector API (Fifth Incubator) Summary Introduce an API to express vector computations that reliably compile at runtime to optimal vector instructions on supported CPU architectures, thus achieving performance superior to equivalent scalar computati

openjdk.org

 

Java 20์˜ ๊ธฐ๋Šฅ ์ฃผ๊ธฐ๋Š” JDK 19์˜ 7๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ฐ JDK 18์˜ 9๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” JDK 18 ์ด์ „์˜ ์ผ๋ถ€ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ณด๋‹ค ๋‚ฎ์Šต๋‹ˆ๋‹ค: JDK 17์˜ 14๊ฐœ ๊ธฐ๋Šฅ, JDK16์˜ 17๊ฐœ ๊ธฐ๋Šฅ, JDK 15์˜ 14๊ฐœ ๊ธฐ๋Šฅ, JDK 14์˜ 16๊ฐœ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํŒŒ๋‚˜๋งˆ

JEP 434 ๋ฐ JEP 438์€ ํ”„๋กœ์ ํŠธ ํŒŒ๋‚˜๋งˆ์˜ ํ›„์›์„ ๋ฐ›๋Š” ํ”„๋กœ์ ํŠธ๋กœ, JVM๊ณผ ์ž˜ ์ •์˜๋œ '์™ธ๋ถ€', ์ฆ‰ ๋น„์ž๋ฐ”(non-Java) API ๊ฐ„์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ณ  ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋Œ€๋ถ€๋ถ„ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํฌํ•จ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
JEP 434, ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ API(๋‘ ๋ฒˆ์งธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ)๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํ†ตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์™ธ๋ถ€ ํ•จ์ˆ˜๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๊ณ  JVM์—์„œ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š” ์™ธ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์— ์•ˆ์ „ํ•˜๊ฒŒ ์•ก์„ธ์Šคํ•˜์—ฌ Java ๋Ÿฐํƒ€์ž„ ์™ธ๋ถ€์˜ ์ฝ”๋“œ ๋ฐ ๋ฐ์ดํ„ฐ์™€ ์ƒํ˜ธ ์šด์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
JEP 438, ๋ฒกํ„ฐ API(๋‹ค์„ฏ ๋ฒˆ์งธ ์ธํ๋ฒ ์ดํ„ฐ)๋Š” ์ด์ „ ๋„ค ์ฐจ๋ก€์˜ ์ธํ๋ฒ ์ดํ„ฐ์—์„œ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค: ์ด ๊ธฐ๋Šฅ์€ JEP 424, ์™ธ๋ถ€ ํ•จ์ˆ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ API(๋ฏธ๋ฆฌ๋ณด๊ธฐ)์— ์ •์˜๋œ ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ์— ๋ฒกํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒกํ„ฐ API๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋ฃธ

JEP 429, JEP 436 ๋ฐ JEP 437์€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋งŽ์€ ๊ฒฝ๋Ÿ‰ ๋™์‹œ์„ฑ ๋ฐ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์ถ•๋œ Java VM ๊ธฐ๋Šฅ ๋ฐ API๋ฅผ ํƒ์ƒ‰, ์ธํ๋ฒ ์ดํŒ… ๋ฐ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ์ธ Project Loom์˜ ํ›„์›์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ, ๊ตฌ๋ถ„๋œ ์—ฐ์† ๋ฐ ํ…Œ์ผ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
JEP 429 ํ™•์žฅ-๋กœ์ปฌ ๋ณ€์ˆ˜(์ธํ๋ฒ ์ดํ„ฐ)๋กœ ์•Œ๋ ค์ง„ ์ธํ๋ฒ ์ดํŒ…, ๋ฒ”์œ„ ์ง€์ • ๊ฐ’(์ธํ๋ฒ ์ดํ„ฐ)์€ ์Šค๋ ˆ๋“œ ๋‚ด ๋ฐ ์Šค๋ ˆ๋“œ ๊ฐ„์— ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ๋งŽ์€ ์ˆ˜์˜ ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์Šค๋ ˆ๋“œ-๋กœ์ปฌ ๋ณ€์ˆ˜๋ณด๋‹ค ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.
JEP 436, ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ(๋‘ ๋ฒˆ์งธ ํ”„๋ฆฌ๋ทฐ) ์ด ๊ธฐ๋Šฅ์€ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋งŽ์€ ๋™์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑ, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๊ด€์ฐฐํ•˜๋Š” ๋ฐ ๋“œ๋Š” ์ˆ˜๊ณ ๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ์ค„์—ฌ์ฃผ๋Š” ๊ฒฝ๋Ÿ‰ ์Šค๋ ˆ๋“œ์ธ ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ๋ฅผ Java ํ”Œ๋žซํผ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. JDK 19์—์„œ ์˜๊ตฌ์ ์œผ๋กœ ์ œ๊ณต๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด๋ฒˆ ๋‘ ๋ฒˆ์งธ ํ”„๋ฆฌ๋ทฐ์—์„œ๋Š” ์ œ์•ˆ๋˜์ง€ ์•Š์€ JEP 425์˜ ์†Œ์ˆ˜์˜ API๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ด๋ฒˆ ํ”„๋ฆฌ๋ทฐ์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
JEP 437, ๊ตฌ์กฐ์  ๋™์‹œ์„ฑ(๋‘ ๋ฒˆ์งธ ์ธํ๋ฒ ์ดํ„ฐ)  ์ด ๊ธฐ๋Šฅ์˜ ๋ชฉ์ ์€ ์„œ๋กœ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋‹จ์ผ ์ž‘์—… ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐ ์ทจ์†Œ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ณ , ์•ˆ์ •์„ฑ์„ ๊ฐœ์„ ํ•˜๋ฉฐ, ํ†ตํ•ฉ ๊ฐ€์‹œ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ผํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ž‘์—… ๋ฒ”์œ„์—์„œ ์ƒ์„ฑ๋œ ์Šค๋ ˆ๋“œ์— ์˜ํ•œ ๋ฒ”์œ„ ์ง€์ • ๊ฐ’ ์ƒ์†์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ๋œ StructuredTaskScope ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์Šค๋ ˆ๋“œ ๊ฐ„์— ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ณต์œ ๊ฐ€ ๊ฐ„์†Œํ™”๋ฉ๋‹ˆ๋‹ค.
๊ฐ€์ƒ ์Šค๋ ˆ๋“œ ๋ฐ ๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž‘์—… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Oracle์˜ Java ๊ฐœ๋ฐœ์ž ์ง€์ง€์ž์ธ Nicolai Parlog๊ฐ€ ์ž‘์„ฑํ•œ ์ด GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ Contrast Security์˜ ์ˆ˜์„ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด์ธ Bazlur Rahman์ด ์ž‘์„ฑํ•œ ์ด GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์— ๋ฒ„

JEP 432์™€ JEP 433์€ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋” ์ž‘์€ Java ์–ธ์–ด ๊ธฐ๋Šฅ์„ ํƒ์ƒ‰ํ•˜๊ณ  ์ธํ๋ฒ ์ดํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ํ”„๋กœ์ ํŠธ์ธ Project Amber์˜ ํ›„์›์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
JEP 432, ๋ ˆ์ฝ”๋“œ ํŒจํ„ด(๋‘ ๋ฒˆ์งธ ํ”„๋ฆฌ๋ทฐ)์—๋Š” ์ด์ „ ํ”„๋ฆฌ๋ทฐ์ธ JEP 405, ๋ ˆ์ฝ”๋“œ ํŒจํ„ด(ํ”„๋ฆฌ๋ทฐ)์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ ˆ์ฝ”๋“œ ๊ฐ’์„ ๋ถ„ํ•ดํ•˜๋Š” ๋ ˆ์ฝ”๋“œ ํŒจํ„ด์œผ๋กœ ์–ธ์–ด๋ฅผ ๊ฐœ์„ ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ์ฝ”๋“œ ํŒจํ„ด์€ ์œ ํ˜• ํŒจํ„ด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ "๊ฐ•๋ ฅํ•˜๊ณ  ์„ ์–ธ์ ์ด๋ฉฐ ์ปดํฌ์ €๋ธ”ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ๋ฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ" ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜• ํŒจํ„ด์€ ์ตœ๊ทผ ์Šค์œ„์น˜ ์ผ€์ด์Šค ๋ ˆ์ด๋ธ”์— ์‚ฌ์šฉํ•˜๋„๋ก ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ JEP 433, ์Šค์œ„์น˜์šฉ ํŒจํ„ด ์ผ์น˜(๋„ค ๋ฒˆ์งธ ํ”„๋ฆฌ๋ทฐ)์—๋Š” ์ด์ „ ์„ธ ์ฐจ๋ก€์˜ ํ”„๋ฆฌ๋ทฐ์—์„œ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: JEP 427์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์—๋Š” ์Šค์œ„์น˜ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•œ ๊ฐ„์†Œํ™”๋œ ๋ฌธ๋ฒ•, ์ผ๋ฐ˜ ์œ ํ˜• ํŒจํ„ด ๋ฐ ๋ ˆ์ฝ”๋“œ ํŒจํ„ด์— ๋Œ€ํ•œ ์œ ํ˜• ์ธ์ˆ˜ ์ถ”๋ก ์ด ์ด์ œ ํŒจํ„ด์„ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ๊ตฌ๋ฌธ๊ณผ ํ•จ๊ป˜ ์Šค์œ„์น˜ ํ‘œํ˜„์‹ ๋ฐ ๋ฌธ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
์Šค์œ„์น˜ API์— ๋Œ€ํ•œ ๋ ˆ์ฝ”๋“œ ํŒจํ„ด ๋ฐ ํŒจํ„ด ๋งค์นญ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž‘์—… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธ€๋กœ๋ฒŒ ํฌ์ธํŠธ์˜ Java ๊ธฐ์ˆ  ์ฑ…์ž„์ž์ธ ์›จ์Šฌ๋ฆฌ ์—๊ทธ๋ฒ ๋ฅดํ† ๊ฐ€ ์ž‘์„ฑํ•œ ์ด GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ java-19 ํด๋”์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JDK 21

JEP 431, ํ˜„์žฌ JDK 21์— ํฌํ•จ๋˜๋„๋ก ํƒ€๊ฒŸํŒ…๋œ JEP๋Š” ํ•˜๋‚˜ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด JEP๋Š” "์š”์†Œ๊ฐ€ ์ž˜ ์ •์˜๋œ ์ˆœ์„œ ๋˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด๋œ ์ปฌ๋ ‰์…˜์˜ ๊ฐœ๋…์„ ์ปฌ๋ ‰์…˜์˜ ๊ตฌ์กฐ์  ์†์„ฑ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค ์ œํ’ˆ๊ตฐ"์„ ๋„์ž…ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ ์ž˜ ์ •์˜๋œ ์ˆœ์„œ์™€ ํ†ต์ผ๋œ ์ž‘์—… ์ง‘ํ•ฉ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋™๊ธฐ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ LTS ๋ฒ„์ „์ธ JDK 21์˜ ์ •์‹ ๋ฆด๋ฆฌ์Šค ๋‚ ์งœ๋Š” ์•„์ง ๋ฐœํ‘œ๋˜์ง€ ์•Š์•˜์ง€๋งŒ 6๊ฐœ์›” ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ์— ๋”ฐ๋ผ 2023๋…„ 9์›” ์ค‘์ˆœ์— ์ œ๊ณต๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” 2023๋…„ 6์›” ์ค‘์ˆœ์— ๊ธฐ๋Šฅ ๋™๊ฒฐ์„ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
์›๋ณธ์ถœ์ฒ˜ : https://www.infoq.com/news/2023/03/java20-released/
 

Java 20 Delivers Features for Projects Amber, Loom and Panama

Oracle has released version 20 of the Java programming language and virtual machine with a final feature set that includes seven (7) JEPs. This release features JEPs that provide continued contribution toward Project Amber, Project Loom and Project Panama

www.infoq.com

 

 

 

์ฐธ๊ณ  ๋งํฌ

- JDK 20 Release Note
 

JDK 20.0.2 Release Notes

A new system property, jdk.jar.maxSignatureFileSize, has been added to allow applications to control the maximum size of signature files in a signed JAR. The value of the system property is the desired size in bytes. The default value is 8000000 bytes.

jdk.java.net

 

- InfoQ, Java 20 Delivers Features for Projects Amber, Loom and Panama
 

Java 20 Delivers Features for Projects Amber, Loom and Panama

Oracle has released version 20 of the Java programming language and virtual machine with a final feature set that includes seven (7) JEPs. This release features JEPs that provide continued contribution toward Project Amber, Project Loom and Project Panama

www.infoq.com

 

- InfoWorld, JDK 20: The new features in Java 20
 

JDK 20: The new features in Java 20

The latest upgrade of standard Java, now available in a production release, incubates or previews a number of new capabilities including virtual threads and structured concurrency.

www.infoworld.com

 

- ์ง€๋””๋„ท์ฝ”๋ฆฌ์•„, ์˜ค๋ผํด, '์ž๋ฐ” 20' ์ถœ์‹œ
 

์˜ค๋ผํด, '์ž๋ฐ” 20' ์ถœ์‹œ

์˜ค๋ผํด์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด์ž ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ธ ์ž๋ฐ”์˜ ์ตœ์‹  ๋ฒ„์ „ โ€˜์ž๋ฐ” 20(JDK 20)์„ 22์ผ ์ถœ์‹œํ–ˆ๋‹ค.์ž๋ฐ”20(์˜ค๋ผํด JDK 20)์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ ๋ฐ ๋ณด์•ˆ ...

zdnet.co.kr

 

- JDK 20 Security Enhancements
 

JDK 20 Security Enhancements

JDK 20 was released on March 21, 2023! As with my previous blogs, I have compiled a list of what I think are the most interesting and useful security enhancements in this release. I have also grouped them into appropriate categories (crypto, TLS, etc) whic

seanjmullan.org

 

728x90
  1. JDK 20 ๋ฆด๋ฆฌ์ฆˆ
  2. ํ”„๋กœ์ ํŠธ ํŒŒ๋‚˜๋งˆ
  3. ํ”„๋กœ์ ํŠธ ๋ฃธ
  4. ํ”„๋กœ์ ํŠธ ์— ๋ฒ„
  5. JDK 21
'Languages/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Java 21 Release
  • JPA(Java Persistence API)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  • zipํŒŒ์ผ ํ•ด์ œ, ๋Œ€์ƒ ํด๋” ๋ณ€๊ฒฝ & ํŒŒ์ผ ์œ„์น˜ ๋ณ€๊ฒฝ
  • [java] ์ฃผ๋ง ์ œ์™ธํ•œ ์ด์ „ 5์ผ ๊ตฌํ•˜๊ธฐ
์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ํƒœ๊ตญ
    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ์˜ค๋Š˜์˜๋‰ด์Šค
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ๋ธŒ๋ฆฌํ•‘
    ํ€˜์ŠคํŠธ
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงžโ€โ™‚๏ธ๐Ÿฅญ
2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.