์ค๋ผํด์ ์๋ก์ด ๊ฐ์ ๋จธ์ GraalVM 1.0์ ๋ฐํํ์ต๋๋ค. ์ด๋ ๋ณดํธ์ ์
๋๋ค. ์ฆ, ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. ๊ทธ ์ค์๋ JavaScript(Node.js), Python, Ruby, R, ๋ชจ๋ JVM ์ธ์ด(Java, Scala, Clojure, Kotlin)๋ ๋ฌผ๋ก LLVM ๋นํธ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ ์ธ์ด(C, C++)๋ ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌ์คํธ). GraalVM 1.0 ์ฝ๋๋ GPLv2 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ฝ๋ ์คํ ์ฑ๋ฅ์ ๋์ด๊ณ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋ ์ฝ๋ ๊ฐ์ ์ํธ ์์ฉ์ ๊ตฌ์ฑํ๋ ค๋ฉด GraalVM 1.0์ด ํ์ํฉ๋๋ค. GraalVM์ ์ฌ์ฉํ๋ฉด ๊ณตํต ๋ฐํ์ ํ๊ฒฝ๊ณผ ๋ค๋ฅธ ์ธ์ด์ ๊ฐ์ฒด ๋ฐ ๋ฐฐ์ด์ ์ก์ธ์คํ ์ ์๋ ๊ธฐ๋ฅ์ ์ป์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด JavaScript ์ฝ๋(Node.js)์์ Java ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ก์ธ์คํ๊ฑฐ๋ Java ์ฝ๋์์ Python์ ํต๊ณ ์ฒ๋ฆฌ ํจ์๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ๋๋ R ์ฝ๋๋ฅผ ์คํํ์ฌ ๋ณต์กํ SVG ๊ทธ๋ํฝ์ ๋ง๋ค ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋๊ตฌ ์์ฒด๊ฐ ์๋ ์์
์ ์ค์ ์ ๋๊ณ ํ๋ก์ ํธ์์ ์ฌ๋ฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. GraalVM์ ์ฌ์ฉํ์ฌ ๋
๋ฆฝํ ์คํ ๊ฐ๋ฅ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ๊ณ OpenJDK ๋ฐ Node.js์ ๊ฐ์ ํ๋ซํผ์ ์ผ๋ถ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ ์ด ๊ฐ์ ๋จธ์ ์ MySQL, Oracle ๋ฑ์ DBMS์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ง์ผ๋ก ๋ด์ฅ๋ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๊ธฐ ์ํด์๋ HotSpot JVM ๊ธฐ๋ฐ์ ํ์คํ๋ ํ๊ฒฝ์ ์ฌ์ฉํฉ๋๋ค. GraalVM์๋ JavaScript, Ruby, Python ๋ฐ R์ ํฌํจํ์ฌ JVM์ ๋ชจ๋ ์คํฌ๋ฆฝํ
์ธ์ด์์ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์คํํ๋ JIT ์ปดํ์ผ๋ฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ ์ด ์์คํ
์ ์ฌ์ฉํ๋ฉด JVM์์ LLVM ๋นํธ์ฝ๋๋ก ๋ณํ๋ ๊ธฐ๋ณธ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์์คํ
๋๊ตฌ์๋ ์ธ์ด ๋
๋ฆฝ์ ์ธ ๋๋ฒ๊ฑฐ, ํ๋กํ์ผ๋ง ์์คํ
๋ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ถ์๊ธฐ๊ฐ ํฌํจ๋ฉ๋๋ค. JVM ์ธ์ด์ฉ์ผ๋ก ์ปดํ์ผ๋ ๋ค์ดํฐ๋ธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ต์ํ์ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ก ์ง์ ์คํ๋ฉ๋๋ค. ๋จผ์ ์ ์ ๋ถ์์ ํตํด ๊ธฐ๋ณธ Java ๋ฉ์๋๋ฅผ ์คํํ๊ธฐ ์ํ ๋ชจ๋ ์ฝ๋๋ฅผ ์๋ณํฉ๋๋ค. ๋ค์์ผ๋ก ๋ณธ๊ฒฉ์ ์ธ AOT(Ahead of Time Compilation)๊ฐ ์ ์ฉ๋ฉ๋๋ค.
๊ทธ ๋ฐ์ ์ฝ์ ๋ด์ฉ: |
---|
์๊ฐ์ ์ ์ฝํด ์ฃผ๋ ์์ 10๊ฐ Java ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
GO TO FULL VERSION