์ฝํ
์ธ :
- ์๊ฐ
- ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ
- ํ๋ก๊ทธ๋จ ์ปดํ์ผ ๋ฐ ์คํ์ ์
- ๊ฐ์ ๋จธ์ ์์ ํ๋ก๊ทธ๋จ ์คํ
- JIT(Just-In-Time) ์ปดํ์ผ
- ๊ฒฐ๋ก
1. ์๊ฐ
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ! ์ค๋ ์ ๋ Java๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ ํ JVM(Java Virtual Machine) ๋ด๋ถ์์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง์ ๋ํ ์ง์์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์์ฆ์๋ ์๋ก์ด ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ์ค์ํ ์ธก๋ฉด์ ๋์น ์ ์๋ JVM ๋ด๋ถ, Java ์ฝ๋ ์ปดํ์ผ ๋ฐ ์คํ์ ๋ํ ์๊ฐ์ ํผํ๋ ๋ฐ ๋์์ด ๋๋ ์ต์ ๊ฐ๋ฐ ํ๊ฒฝ์ด ์์ต๋๋ค. ๋์์, ์ธํฐ๋ทฐ ์ค์ ์ด ์ฃผ์ ์ ๊ดํ ์ง๋ฌธ์ ์์ฃผ ๋ฐ๋๋ฐ, ์ด๊ฒ์ด ์ ๊ฐ ๊ธฐ์ฌ๋ฅผ ์ฐ๊ธฐ๋ก ๊ฒฐ์ ํ ์ด์ ์
๋๋ค.
2. ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ
์ด๋ก ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ ๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ ์์ฑ
.java
ํ๊ณ ๊ทธ ์์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฝ๋๋ฅผ ๋ฐฐ์นํฉ๋๋ค. ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ฝ๋๊ฐ ํฌํจ๋ ํ์ผ์
์์ค ์ฝ๋ ํ์ผ ์ด๋ผ๊ณ ํฉ๋๋ค . ์์ค์ฝ๋ ํ์ผ์ด ์ค๋น๋๋ฉด ์คํํด์ผ ํฉ๋๋ค! ๊ทธ๋ฌ๋ ๋จ๊ณ์์๋ ์ธ๊ฐ๋ง์ด ์ดํดํ ์ ์๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. Java๋ ๋ค์ค ํ๋ซํผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค. ์ด๋ Java๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ด ์ ์ฉ Java ๋ฐํ์ ์์คํ
์ด ์ค์น๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด ์์คํ
์ JVM(Java Virtual Machine)์ด๋ผ๊ณ ํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ ์์ค ์ฝ๋์์ JVM์ด ์ดํดํ ์ ์๋ ์ฝ๋๋ก ๋ณํํ๋ ค๋ฉด ํ๋ก๊ทธ๋จ์ ์ปดํ์ผํด์ผ ํฉ๋๋ค. JVM์ด ์ดํดํ๋ ์ฝ๋๋ ๋ฐ์ดํธ์ฝ๋๋ผ๊ณ ํ๋ฉฐ ๊ฐ์ ๋จธ์ ์ด ์ดํ์ ์คํํ ๋ช
๋ น ์ธํธ๋ฅผ ํฌํจํฉ๋๋ค.
javac
์์ค์ฝ๋๋ฅผ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผํ๊ธฐ ์ํด JDK(Java Development Kit)์ ์ปดํ์ผ๋ฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค . ์ปดํ์ผ๋ฌ๋
.java
ํ๋ก๊ทธ๋จ์ ์์ค ์ฝ๋๊ฐ ํฌํจ๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ ์
๋ ฅ์ผ๋ก ๋ฐ์๋ค์ด๊ณ , ์ถ๋ ฅ์ผ๋ก
.class
๊ฐ์ ๋จธ์ ์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํธ์ฝ๋๊ฐ ํฌํจ๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ ์์ฑํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋๋ฉด ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ์ฌ ์คํํ ์ ์์ต๋๋ค.
3. ํ๋ก๊ทธ๋จ ์ปดํ์ผ ๋ฐ ์คํ ์์
Calculator.java
2๊ฐ์ ์ซ์ ๋ช
๋ น์ค ์ธ์๋ฅผ ์ทจํ๊ณ ์ถ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ธ์ํ๋ file ์ ํฌํจ๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค .
class Calculator {
public static void main(String[] args){
int a = Integer.valueOf(args[0]);
int b = Integer.valueOf(args[1]);
System.out.println(a + b);
}
}
์ด ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผํ๊ธฐ ์ํด
javac
๋ช
๋ น์ค์์ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
javac Calculator.java
์ปดํ์ผ ํ์๋ ๋ฐ์ดํธ์ฝ๋๊ฐ ํฌํจ๋ ํ์ผ์ ์ถ๋ ฅ์ผ๋ก ๋ฐ์ต๋๋ค
Calculator.class
. ์ด๋ ๋ช
๋ น์ค์์ java ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ปดํจํฐ์ ์ค์น๋ Java ์์คํ
์ ์ฌ์ฉํ์ฌ ์คํํ ์ ์์ต๋๋ค.
java Calculator 1 2
ํ์ผ ์ด๋ฆ ๋ค์ 2๊ฐ์ ๋ช
๋ น์ค ์ธ์(์ซ์ 1๊ณผ 2)๊ฐ ์ง์ ๋์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ ํ ์ซ์ 3์ด ๋ช
๋ น์ค์ ํ์๋ฉ๋๋ค. ์์ ์์์๋ ์์ฒด์ ์ผ๋ก ์กด์ฌํ๋ ๊ฐ๋จํ ํด๋์ค๊ฐ ์์์ต๋๋ค. . ํ์ง๋ง ํด๋์ค๊ฐ ํจํค์ง์ ํฌํจ๋์ด ์์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋ค์ ์ํฉ์ ์๋ฎฌ๋ ์ด์
ํด ๋ณด๊ฒ ์ต๋๋ค. ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ
src/ru/javarush
๊ฑฐ๊ธฐ์ ํด๋์ค๋ฅผ ๋ฐฐ์นํฉ๋๋ค. ์ด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(ํ์ผ ์์ ๋ถ๋ถ์ ํจํค์ง ์ด๋ฆ์ ์ถ๊ฐํ์ต๋๋ค).
package ru.javarush;
class Calculator {
public static void main(String[] args){
int a = Integer.valueOf(args[0]);
int b = Integer.valueOf(args[1]);
System.out.println(a + b);
}
}
๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ํด๋์ค๋ฅผ ์ปดํ์ผํด ๋ณด๊ฒ ์ต๋๋ค.
javac -d bin src/ru/javarush/Calculator.java
-d bin
์ด ์์์๋ ์ปดํ์ผ๋ ํ์ผ์
bin
๋๋ ํ ๋ฆฌ์ ์ ์ฌํ ๊ตฌ์กฐ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํ๋ ์ถ๊ฐ ์ปดํ์ผ๋ฌ ์ต์
์ ์ฌ์ฉํ์ง๋ง
src
๋๋ ํ ๋ฆฌ๋
bin
๋ฏธ๋ฆฌ ์์ฑ๋์ด์ผ ํฉ๋๋ค. ์ด ๊ธฐ์ ์ ์์ค ์ฝ๋ ํ์ผ๊ณผ ๋ฐ์ดํธ์ฝ๋ ํ์ผ์ ํผ๋์ ํผํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ปดํ์ผ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ ์ ๊ฐ๋
์ ์ค๋ช
ํ๋ ๊ฒ์ด ์ข์ต๋๋ค
classpath
.
Classpath
๊ฐ์ ๋จธ์ ์ด ํจํค์ง์ ์ปดํ์ผ๋ ํด๋์ค๋ฅผ ์ฐพ๋ ๊ฒฝ๋ก์
๋๋ค. ์ฆ, ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ํ์ผ ์์คํ
์ ์ด๋ค ๋๋ ํ ๋ฆฌ๊ฐ Java ํจํค์ง ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฃจํธ์ธ์ง ๊ฐ์ ๋จธ์ ์ ์๋ ค์ค๋๋ค.
Classpath
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์์ํ ๋ ์ง์ ํ ์ ์์ต๋๋ค
-classpath
. ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์์ํฉ๋๋ค.
java -classpath ./bin ru.javarush.Calculator 1 2
์ด ์์์๋ ํด๋น ํด๋์ค๊ฐ ์๋ ํจํค์ง์ ์ด๋ฆ์ ํฌํจํ์ฌ ํด๋์ค์ ์ ์ฒด ์ด๋ฆ์ด ํ์ํ์ต๋๋ค. ์ต์ข
ํ์ผ ํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
โโโ src
โ โโโ ru
โ โโโ javarush
โ โโโ Calculator.java
โโโ bin
โโโ ru
โโโ javarush
โโโ Calculator.class
4. ๊ฐ์ ๋จธ์ ์ ์ํ ํ๋ก๊ทธ๋จ ์คํ
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์๋ฉด ํ๋ก๊ทธ๋จ์ ์์ํ์ต๋๋ค. ํ์ง๋ง ์ปดํ์ผ๋ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ ๋จธ์ ์ ์ํด ์คํ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋จผ์ ์ปดํ์ผ๊ณผ ์ฝ๋ ํด์์ ๊ฐ๋
์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์์ ๋ณด๊ฒ ์ต๋๋ค.
์ปดํ์ผ์ ๊ณ ๊ธ ์์ค ์ธ์ด๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ๊ธฐ๊ณ ์ฝ๋์ ์ ์ฌํ ์ ๊ธ ์ธ์ด๋ก ๋ ๋๋ฑํ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฒ์ญํ๋ ๊ฒ์
๋๋ค.
ํด์์ ์ฐ์ฐ์๋ณ(๋ช
๋ น๋ณ, ์ค๋ณ) ๋ถ์, ์ฒ๋ฆฌ ๋ฐ ์์ค ํ๋ก๊ทธ๋จ ๋๋ ์์ฒญ์ ์ฆ๊ฐ์ ์ธ ์คํ์
๋๋ค(ํ๋ก๊ทธ๋จ์ ์คํํ์ง ์๊ณ ๋ฒ์ญํ๋ ์ปดํ์ผ๊ณผ ๋ฐ๋). ์๋ฐ ์ธ์ด์๋ ์ปดํ์ผ๋ฌ(
javac
)์ ์ธํฐํ๋ฆฌํฐ๊ฐ ์๋๋ฐ, ์ด๋ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํ ์ค์ฉ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๋ณํํ๊ณ ์ฆ์ ์คํํ๋ ๊ฐ์๋จธ์ ์ด๋ค. ๋ฐ๋ผ์ ์ปดํ์ผ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด ๊ฐ์ ๋จธ์ ์ ์ด๋ฅผ ํด์ํ๊ธฐ ์์ํฉ๋๋ค. ์ฆ, ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ ์ฝ๋๋ก ํ ์ค์ฉ ๋ณํํ๊ณ ์คํํ๋ ๊ฒ์
๋๋ค. ๋ถํํ๊ฒ๋ ์์ ๋ฐ์ดํธ์ฝ๋ ํด์์ ๋ค์ ๊ธด ํ๋ก์ธ์ค์ด๋ฉฐ ๊ฒฝ์์ฌ์ ๋นํด Java๋ฅผ ๋๋ฆฌ๊ฒ ๋ง๋ญ๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ฐ์ ๋จธ์ ์ ๋ฐ์ดํธ์ฝ๋ ํด์ ์๋๋ฅผ ๋์ด๋ ๋ฉ์ปค๋์ฆ์ด ๋์
๋์์ต๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ JITC(Just-in-time ์ปดํ์ผ)์ด๋ผ๊ณ ํฉ๋๋ค.
5. JIT(Just-In-Time) ์ปดํ์ผ
๊ฐ๋จํ ๋งํด์ Just-In-Time ์ปดํ์ผ์ ๋ฉ์ปค๋์ฆ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๋ฒ ์คํ๋๋ ์ฝ๋ ๋ถ๋ถ์ด ์๋ ๊ฒฝ์ฐ ํด๋น ๋ถ๋ถ์ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ํ ๋ฒ ์ปดํ์ผํ์ฌ ํฅํ ์คํ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์ด๋ฌํ ๋ถ๋ถ์ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ์ปดํ์ผํ ํ, ํ๋ก๊ทธ๋จ์ ์ด ๋ถ๋ถ์ ํธ์ถํ ๋๋ง๋ค ๊ฐ์ ๋จธ์ ์ ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ํด์ํ์ง ์๊ณ ์ฆ์ ์คํํ๋ฏ๋ก ์์ฐ์ค๋ฝ๊ฒ ํ๋ก๊ทธ๋จ ์คํ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค. ํ๋ก๊ทธ๋จ ์๋๋ฅผ ๋์ด๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ๋๋ฆฌ๊ณ (์ปดํ์ผ๋ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ์ด๋๊ฐ์ ์ ์ฅํด์ผ ํฉ๋๋ค!) ํ๋ก๊ทธ๋จ ์คํ ์ค ์ปดํ์ผ์ ์์๋๋ ์๊ฐ์ ๋๋ ค ๋ฌ์ฑ๋ฉ๋๋ค. JIT ์ปดํ์ผ์ ๋ค์ ๋ณต์กํ ๋ฉ์ปค๋์ฆ์ด๋ฏ๋ก ๋จผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ฐ์ดํธ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด ์ฝ๋๋ก JIT ์ปดํ์ผํ๋ ๋ฐ๋ 4๊ฐ์ง ๋ ๋ฒจ์ด ์์ต๋๋ค. ์ปดํ์ผ ์์ค์ด ๋์์๋ก ๋ ๋ณต์กํด ์ง์ง๋ง ๋์์ ํด๋น ์น์
์ ์คํ์ ์์ค์ด ๋ฎ์ ์น์
๋ณด๋ค ๋น ๋ฆ
๋๋ค. JIT - ์ปดํ์ผ๋ฌ๋ ํด๋น ์กฐ๊ฐ์ด ์คํ๋๋ ๋น๋์ ๋ฐ๋ผ ๊ฐ ํ๋ก๊ทธ๋จ ์กฐ๊ฐ์ ์ค์ ํ ์ปดํ์ผ ์์ค์ ๊ฒฐ์ ํฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก JVM์ 2๊ฐ์ JIT ์ปดํ์ผ๋ฌ(C1 ๋ฐ C2)๋ฅผ ์ฌ์ฉํฉ๋๋ค. C1 ์ปดํ์ผ๋ฌ๋ ํด๋ผ์ด์ธํธ ์ปดํ์ผ๋ฌ๋ผ๊ณ ๋ ํ๋ฉฐ 3๋ ๋ฒจ๊น์ง๋ง ์ฝ๋๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. C2 ์ปดํ์ผ๋ฌ๋ ๋ค ๋ฒ์งธ๋ก ๊ฐ์ฅ ๋ณต์กํ๊ณ ๋น ๋ฅธ ์ปดํ์ผ ์์ค์ ๋ด๋นํฉ๋๋ค.
์์์๋ถํฐ ๊ฐ๋จํ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ์ฐ C1 ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์์ต์ฑ์ด ๋๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ์์๋๋์ง๊ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์๋ฒ ์ธก์ ์๋ช
์ด ๊ธด ์ ํ๋ฆฌ์ผ์ด์
์ ์์ํ๋ ๋ฐ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ง๋ง ์์ผ๋ก๋ ์ ์ํ๊ฒ ์๋ํ๊ณ ๊ธฐ๋ฅ์ ์ํํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ C2 ์ปดํ์ผ๋ฌ๊ฐ ์ฐ๋ฆฌ์๊ฒ ์ ํฉํฉ๋๋ค.
-client
JVM์ x32 ๋ฒ์ ์์ Java ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ๋ฐ ํ๋๊ทธ ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ ๋ชจ๋๋ฅผ ์๋์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค
-server
. ์ด ํ๋๊ทธ๊ฐ ์ง์ ๋๋ฉด
-client
JVM์ ๋ณต์กํ ๋ฐ์ดํธ์ฝ๋ ์ต์ ํ๋ฅผ ์ํํ์ง ์์ผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์
์์ ์๊ฐ์ด ๋นจ๋ผ์ง๊ณ ์๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ด ์ค์ด๋ญ๋๋ค. ํ๋๊ทธ๋ฅผ ์ง์ ํ๋ฉด
-server
๋ณต์กํ ๋ฐ์ดํธ์ฝ๋ ์ต์ ํ๋ก ์ธํด ์ ํ๋ฆฌ์ผ์ด์
์ ์์ํ๋ ๋ฐ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ์ ์ฅํ๋ ๋ฐ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง๋ง ์์ผ๋ก๋ ํ๋ก๊ทธ๋จ์ด ๋ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. x64 ๋ฒ์ ์ JVM์์๋ ํ๋๊ทธ
-client
๊ฐ ๋ฌด์๋๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ ๊ตฌ์ฑ์ด ์ฌ์ฉ๋ฉ๋๋ค.
6. ๊ฒฐ๋ก
์ด๊ฒ์ผ๋ก Java ์ ํ๋ฆฌ์ผ์ด์
์ ์ปดํ์ผ ๋ฐ ์คํ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ๋ตํ ๊ฐ์๋ฅผ ๋ง์นฉ๋๋ค. ์ฃผ์ ์์ :
-
javac ์ปดํ์ผ๋ฌ๋ ํ๋ก๊ทธ๋จ์ ์์ค ์ฝ๋๋ฅผ Java ๊ฐ์ ๋จธ์ ์ด ์ค์น๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋ ์ ์๋ ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํํฉ๋๋ค.
-
์ปดํ์ผ ํ JVM์ ๊ฒฐ๊ณผ ๋ฐ์ดํธ์ฝ๋๋ฅผ ํด์ํฉ๋๋ค.
-
Java ์ ํ๋ฆฌ์ผ์ด์
์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด JVM์ ํ๋ก๊ทธ๋จ์์ ๊ฐ์ฅ ์์ฃผ ์คํ๋๋ ์น์
์ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๋ณํํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ Just-In-Time ์ปดํ์ผ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํฉ๋๋ค.
์ด ๊ธฐ์ฌ๊ฐ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์๋ ๋ฐฉ์์ ๋ ๊น์ด ์ดํดํ๋ ๋ฐ ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋นํ๋ ํ์ํฉ๋๋ค!
GO TO FULL VERSION