๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[REVIEW] JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ - 1. ์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ ๋ณธ๋ฌธ

๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด๐Ÿ’ป/๐‰๐š๐ฏ๐š

[REVIEW] JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ - 1. ์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ

๐ŸคRyusun๐Ÿค 2025. 2. 1. 10:31

์ž๋ฐ”

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฟ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๋ช…์„ธ๋กœ ๊ตฌ์„ฑ๋œ ๊ธฐ์ˆ  ์‹œ์Šคํ…œ
  • ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณต
  • ์ƒ๋‹นํžˆ ์•ˆ์ „ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ฐ–์ท„๋‹ค.
  • ๋Ÿฐํƒ€์ž„์— ํ•ซ์ฝ”๋“œ๋ฅผ ๊ฐ์ง€, ์ปดํŒŒ์ผํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜์—ฌ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๋„๋ก ๋„์™€์ค€๋‹ค.
  • ํ‘œ์ค€ API ํ’๋ถ€, ์ˆ˜๋งŽ์€ ๊ธฐ์—…๊ณผ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์˜ ์„œ๋“œ ํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ

 

์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ, ํด๋กœ์ €, JRuby, ๊ทธ๋ฃจ๋น„ ๋“ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๊ทธ ์™ธ ๊ด€๋ จ ํ”„๋กœ๊ทธ๋žจ๋“ค๋„ ์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ์— ์†ํ•œ๋‹ค.

์ „ํ†ต์ ์œผ๋กœ ์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ์€ ๋‹ค์Œ ์š”์†Œ๋“ค์„ ํฌํ•จํ•œ๋‹ค.

  • ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • (๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์šฉ) ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹  ๊ตฌํ˜„
  • ํด๋ž˜์Šค ํŒŒ์ผ ํฌ๋งท
  • ์ž๋ฐ” ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API(ํ‘œ์ค€ API)
  • ๋‹ค๋ฅธ ๊ธฐ์—…๊ณผ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋“œ ํŒŒํ‹ฐ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

JDK

  • ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ , ์ž๋ฐ” ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฌถ์€๊ฒƒ.
  • ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ํ™˜๊ฒฝ
  • JDK ์šฉ์–ด๋Š” ์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ ์ „์ฒด ์„ธ๋Œ€๋ฅผ ์ง€์นญํ• ๋•Œ๋„ ์ž์ฃผ ์“ฐ์ธ๋‹ค.

 

JRE

  • ์ž๋ฐ” SE API์™€ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹  ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํฌ ๊ธฐ์ˆ ๊นŒ์ง€ ๋ฌถ์€๊ฒƒ.
  • ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ• ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ ํ™˜๊ฒฝ์„ ์ œ๊ณต

 

 

 


ํ•ซ์ŠคํŒŸ ๊ฐ€์ƒ๋จธ์‹ 

์„œ๋ฒ„์šฉ ์ œํ’ˆ์ฒ˜๋Ÿผ ์žฅ๊ธฐ๊ฐ„ ์šด์šฉ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ํ•ซ ์ฝ”๋“œ๋ฅผ ํƒ์ง€ํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•œ๋‹ค.

๋ถˆ๊ณผ ๋ช‡๋…„ ์ „๋งŒ ํ•˜๋”๋ผ๋„ ๋งŽ์€ CPU์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๊ณ  CPU์ฝ”์–ด๊ฐ€ ํ•˜๋‚˜๋ฟ์ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด HotSpot ํด๋ผ์ด์–ธํŠธ ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค.

ํ•ซ์ŠคํŒŸ ๊ฐ€์ƒ ๋จธ์‹ ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋‘๊ฐœ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ์ปดํŒŒ์ผ๋Ÿฌ(C1 ์ปดํŒŒ์ผ๋Ÿฌ)
    • ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ๋น ๋ฅธ ๋Œ€์‹  ์ตœ์ ํ™”๋ฅผ ์ ๊ฒŒํ•œ๋‹ค.
    • ์„œ๋ฒ„ ์ปดํŒŒ์ผ๋Ÿฌ๋ณด๋‹ค ๋จผ์ € ์ปดํŒŒ์ผ์„ ์‹œ์ž‘ํ•œ๋‹ค.
    • Start-Up ์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค. ํ•˜์ง€๋งŒ ์ตœ์ ํ™”๊ฐ€ ๋œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์‹คํ–‰์€ ์„œ๋ฒ„๊ฐ€ ๋” ๋น ๋ฅด๋‹ค.
  • ์„œ๋ฒ„ ์ปดํŒŒ์ผ๋Ÿฌ(C2 ์ปดํŒŒ์ผ๋Ÿฌ)
    • ์ปดํŒŒ์ผ์ „์— ๋งŽ์€ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ปดํŒŒ์ผ ์†๋„๋Š” ๋А๋ฆฌ์ง€๋งŒ, ๋” ๋งŽ์€ ์ตœ์ ํ™”์— ์ค‘์ ์„ ๋‘”๋‹ค.
    • ์„œ๋ฒ„ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ ˆ๋Œ€๋กœ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๋Š”๋‹ค

์—ฌ๊ธฐ์— ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊นŒ์ง€ ํฌํ•จํ•˜์—ฌ ์ด 3๊ฐœ์˜ ์‹คํ–‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ˜‘๋ ฅํ•˜์—ฌ ํ•ซ์ŠคํŒŸ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์‹คํ–‰ ์„œ๋ธŒ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•œ๋‹ค.

์˜ˆ์ „์—๋Š” HotSpot JVM์ด ์ฃผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ, ์ง€๊ธˆ์€ GraalVM์ด๋‚˜ OpenJ9 ๋“ฑ ๋‹ค์–‘ํ•œ JVM ๊ตฌํ˜„์ด ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ๋‹ค.

GraalVM์ปดํŒŒ์ผ๋Ÿฌ๋Š” C2์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋Œ€์ฒดํ•  ๋ชฉ์ ์œผ๋กœ ํ•ซ์ŠคํŒŸ์— ๋„์ž…๋˜์—ˆ๋‹ค.

 

GraalVM

  • Oracle์—์„œ ๊ฐœ๋ฐœ
  • ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€ ์ปดํŒŒ์ผ ์ง€์›(์ฆ‰, ๋น ๋ฅธ ์‹œ์ž‘ ์†๋„์™€ ๋‚ฎ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ)
  • ๋‹ค์ค‘ ์–ธ์–ด ์ง€์›(JavaScript, Python, Ruby ๋“ฑ)
  • ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉ
  • ํ˜„์žฌ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์ด๋‚˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๋ฐฐํฌ์—์„œ๋Š” GraalVM๊ณผ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ํ™”๋œ JVM์ด ์„ ํ˜ธ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

์žฅ์ 

  • ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์˜ ์ถœ๋ ฅ ํ’ˆ์งˆ์ด ์ข‹๋‹ค.
  • ๊ฐœ๋ฐœ ํšจ์œจ๊ณผ ํ™•์žฅ์„ฑ ์ธก๋ฉด์—์„œ๋Š” C2์™€ ๋น„๊ตํ•˜๊ธฐ ์–ด๋ ค์šธ ๋งŒํผ ํ›Œ๋ฅญํ•˜๋‹ค.
  • ๋ถ€๋ถ„ ํƒˆ์ถœ ๋ถ„์„(partial escape analysis) ์ฒ˜๋Ÿผ C2 ๋ณด๋‹ค ๋ณต์žกํ•œ ์ตœ์ ํ™”๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋˜ํ•œ ๋งž์ถคํ˜• ๊ฐ€์ • ๋“ฑ์„ ์ถ”๊ฐ€ํ•ด ๊ณต๊ฒฉ์  ์˜ˆ์ธก ์ตœ์ ํ™”(aggressivfe speculative optimization)๋ฅผ ์ ์šฉํ•˜๊ธฐ๋„ ์ˆ˜์›”ํ•˜๋‹ค.

 


 

๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ํ–ฅํ•œ ๋ฐœ๊ฑธ์Œ

์žฅ์‹œ๊ฐ„ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๊ฑฐ๋‚˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœํ•˜๋ฉด ๋‹จ์ ์ด ์žˆ๋‹ค.

  • HelloWorld๋ฅผ ์‹คํ–‰ํ•˜๋ ค ํ•ด๋„ ๋ถˆํ•„์š”ํ•œ JRE ๊ฐ€ ํ•„์š”ํ•œ ์ 
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ ์ค‘์‹ฌ์€ ๊ฑฐ๋Œ€ํ•œ ๋‹จ์ผ ์•„ํ‚คํ…์ฒ˜ -> ์ž‘์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ๋กœ ๋น ๋ฅด๊ฒŒ ์˜ฎ๊ฒจ๊ฐ€๊ณ  ์žˆ์ง€๋งŒ, ์ž๋ฐ”๋Š” ์ด ์ถ”์„ธ์™€ ์ž˜ ๋งž์ง€ ์•Š๋Š”๋‹ค.

 

๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ๋ถ„ํ•  ๋œ ์„œ๋น„์Šค ๊ฐ๊ฐ์ด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์“ธ ์ผ์€ ์—†๋‹ค. ๊ณ ๊ฐ€์šฉ์„ฑ ์„œ๋น„์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์ค‘๋‹จํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ• ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์—,  ๋‹จ์ผ ์„œ๋น„์Šค๋ฅผ ์ค‘๋‹จ ์—†์ด ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ค„์–ด๋“ ๋‹ค.  ํ•˜์ง€๋งŒ ์ž๋ฐ”๋Š” ๊ตฌ๋™ ์‹œ๊ฐ„์ด ๊ธธ๊ณ  ์ตœ๊ณ  ์„ฑ๋Šฅ์„ ๋‚ด๊ธฐ ๊นŒ์ง€ ์˜ˆ์—ด์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๊ฐ€ ์š”๊ตฌํ•˜๋Š” ํŠน์„ฑ๊ณผ๋Š” ๋ฐ˜๋Œ€์ด๋‹ค. 

์ด๋Ÿฌํ•œ ๋‹จ์ ์œผ๋กœ ์ตœ๊ทผ JDK ์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๊ณต์œ (Application Class Data Sharing, AppCDS)์™€ ๋…ธ์˜ต(no-op) ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์ธ ์—ก์‹ค๋ก  ๋“ฑ์˜ ๊ธฐ์ˆ ์ด ํฌํ•จ๋˜์—ˆ๋‹ค.

 

AppCDS(Application Class Data Sharing, AppCDS)

  • ๋กœ๋”ฉํ•œ ํด๋ž˜์Šค ์ •๋ณด๋ฅผ ์บ์‹œํ•ด ๋‘์–ด ๋‹ค์Œ๋ฒˆ ๊ตฌ๋™ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ธฐ์ˆ 

์—ก์‹ค๋ก 

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋งŒ ํ•ด์ค„ ๋ฟ ํšŒ์ˆ˜๋Š” ํ•˜์ง€์•Š๋Š” ์ปค๋ ‰ํ„ฐ
  • ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ›„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉ

๋” ๊ธ‰์ง„์ ์ธ ๊ธฐ์ˆ ๋กœ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•ด๋‘๋Š” AOT ์ปดํŒŒ์ผ์ด ์žˆ๋‹ค.

 

 

AOT(Ahead of Time)

 

์žฅ์ 

  • ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์šฐ์„  ์‹คํ–‰ํ•œํ›„ JIT ์ปดํŒŒ์ผ์„ ์จ์„œ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‹คํ–‰๋˜๋Š” ๋กœ์ง์„ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ” ์‹คํ–‰ํ–ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ์ปดํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ํ•ด๋‘๋ฉด ์˜ˆ์—ด ๊ณผ์ •์„ ๊ฑด๋„ˆ ๋›ฐ๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ์‹œ๊ฐ„ ์••๋ฐ• ์—†์ด ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ํ™”ํ• ์ˆ˜ ์žˆ๋‹ค.

๋‹จ์ 

  • ํ•œ๋ฒˆ ์ž‘์„ฑํ•˜๋ฉด ์–ด๋””์„œ๋“  ์‹คํ–‰๋˜๋Š” ์ž๋ฐ”์™€ ๋‹ค๋ฅด๊ฒŒ, ํ•˜๋“œ์›จ์–ด์™€ ์šด์˜ ์ฒด์ œ๋ณ„๋กœ ๋”ฐ๋กœ ์ปดํŒŒ์ผํ•ด ๋ฐฐํฌํ•ด์•ผํ•œ๋‹ค.
  • ์ปดํŒŒ์ผํ•  ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์•Œ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์ž๋ฐ” ๋™์  ๋งํฌ ํŠน์„ฑ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ ๋‹ค.

 

์„œ๋ธŒ์ŠคํŠธ๋ ˆ์ดํŠธ VM(Substrate VM)

  • ์‚ฌ์ „ ์ปดํŒŒ์ผ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ํ•ซ์ŠคํŒŸ ๊ฐ€์ƒ ๋จธ์‹  ์—†์ด ์‹คํ–‰๋˜๋Š” ๊ธฐ์ˆ ๋กœ ๋…์ž์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์ž๋ฐ” ๋„ค์ดํ‹ฐ๋ธŒ ์ธํ„ฐํŽ˜์ด์Šค ์„ ๊ฐ–์ถ˜ ์ž‘์€ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ

์žฅ์ 

  • ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ์ˆ˜ํ–‰ํ•˜๋˜ ์ดˆ๊ธฐํ™” ๊ณผ์ •์„ ๊ฑด๋„ˆ๋›ฐ๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ๊ณง๋ฐ”๋กœ ์‹คํ–‰ํ•˜์—ฌ ์ดˆ๊ธฐ ๊ตฌ๋™ ์‹œ๊ฐ„์„ ์ค„์ธ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์—ฌ์ค€๋‹ค.(ํ•ซ์ŠคํŒŸ ๊ฐ€์ƒ ๋จธ์‹ ์€ ๊ทธ ์ž์ฒด๋กœ๋„ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค)

๋‹จ์ 

  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฐพ์„์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋‚˜ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ์ฝ์–ด๋“ค์ผ์ˆ˜ ์—†์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์™„๊ฒฐ๋œ ํ˜•ํƒœ์—ฌ์•ผ ํ•œ๋‹ค.

 

 

 

์ฐธ๊ณ  

1. https://product.kyobobook.co.kr/detail/S000213057051

 

JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ | ์ €์šฐ์ฆˆ๋ฐ - ๊ต๋ณด๋ฌธ๊ณ 

JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ | ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์˜ ๊นŠ์ˆ™ํ•œ ๋‚ด๋ถ€๋ฅผ ํ–ฅํ•ด ๋– ๋‚˜๋Š” ํฅ๋ฏธ์ง„์ง„ํ•œ ๋ชจํ—˜C·C++๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋˜ ์‹œ์ ˆ ๊นŒ๋‹ค๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ํ”Œ๋žซํผ ์ด์‹์„ฑ ๋ฌธ์ œ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—

product.kyobobook.co.kr

 

2. https://isaac1102.github.io/2021/01/16/hotspotjvm

 

[ JAVA ] HotSpot JVM

์‚ฌ์‹ค HotSpot์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋“ค์—ˆ์„ ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅธ ์˜๋ฏธ๋Š” ํ•ซ์ŠคํŒŸ ๋˜๋Š” ํ•ซ์Šคํฟ(์˜์–ด: hotspot)์€ ์Šค๋งˆํŠธํฐ, ๋…ธํŠธ๋ถ์„ ํฌํ•จํ•œ ์ด๋™ ๋‹จ๋ง๊ธฐ๋กœ ๋ผ์šฐํ„ฐ ๋“ฑ ๋ฌด์„  ์•ก์„ธ์Šค ํฌ์ธํŠธ๊ฐ€ ์„ค์น˜๋œ ์ง€์—ญ์—์„œ ๋ฌด

isaac1102.github.io