JavaRush /Java Blog /Random-KO /์˜ค๋ผํด์€ ๋ฒ”์šฉ ๊ฐ€์ƒ ๋จธ์‹  GraalVM 1.0์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ผํด์€ ๋ฒ”์šฉ ๊ฐ€์ƒ ๋จธ์‹  GraalVM 1.0์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์˜ค๋ผํด์€ ์ƒˆ๋กœ์šด ๊ฐ€์ƒ ๋จธ์‹  GraalVM 1.0์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณดํŽธ์ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—๋Š” JavaScript(Node.js), Python, Ruby, R, ๋ชจ๋“  JVM ์–ธ์–ด(Java, Scala, Clojure, Kotlin)๋Š” ๋ฌผ๋ก  LLVM ๋น„ํŠธ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด(C, C++)๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Ÿฌ์ŠคํŠธ). GraalVM 1.0 ์ฝ”๋“œ๋Š” GPLv2 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž„VM 1.0
์ฝ”๋“œ ์‹คํ–‰ ์„ฑ๋Šฅ์„ ๋†’์ด๊ณ  ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด GraalVM 1.0์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. GraalVM์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ณตํ†ต ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ๊ณผ ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๊ฐœ์ฒด ๋ฐ ๋ฐฐ์—ด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JavaScript ์ฝ”๋“œ(Node.js)์—์„œ Java ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์•ก์„ธ์Šคํ•˜๊ฑฐ๋‚˜ Java ์ฝ”๋“œ์—์„œ Python์˜ ํ†ต๊ณ„ ์ฒ˜๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” R ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ณต์žกํ•œ SVG ๊ทธ๋ž˜ํ”ฝ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„๊ตฌ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ์ž‘์—…์— ์ค‘์ ์„ ๋‘๊ณ  ํ”„๋กœ์ ํŠธ์—์„œ ์—ฌ๋Ÿฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GraalVM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…๋ฆฝํ˜• ์‹คํ–‰ ๊ฐ€๋Šฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ณ  OpenJDK ๋ฐ Node.js์™€ ๊ฐ™์€ ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๊ฐ€์ƒ ๋จธ์‹ ์€ MySQL, Oracle ๋“ฑ์˜ DBMS์— ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์—”์ง„์œผ๋กœ ๋‚ด์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž„VM 1.0
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” HotSpot JVM ๊ธฐ๋ฐ˜์˜ ํ‘œ์ค€ํ™”๋œ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. GraalVM์—๋Š” JavaScript, Ruby, Python ๋ฐ R์„ ํฌํ•จํ•˜์—ฌ JVM์˜ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์—์„œ ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•˜๋Š” JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด JVM์—์„œ LLVM ๋น„ํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ ๊ธฐ๋ณธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๋„๊ตฌ์—๋Š” ์–ธ์–ด ๋…๋ฆฝ์ ์ธ ๋””๋ฒ„๊ฑฐ, ํ”„๋กœํŒŒ์ผ๋ง ์‹œ์Šคํ…œ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ถ„์„๊ธฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. JVM ์–ธ์–ด์šฉ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋กœ ์ง์ ‘ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์ •์  ๋ถ„์„์„ ํ†ตํ•ด ๊ธฐ๋ณธ Java ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ๋ณธ๊ฒฉ์ ์ธ AOT(Ahead of Time Compilation)๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION