๋์ ๋์ * Compiler, JVM, JDK, JRE
Compile, Complier
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ Programe Lauguage๋ High Language๋ก ์ฌ๋์ด ๋ณด๊ณ ์ดํดํ ์ ์๋๋ก ๋์ด์๋ค. (Python, C, Java, C++ ๋ฑ๋ฑ) ํ์ง๋ง ๊ธฐ๊ณ๊ฐ ์ดํดํ๋ ์ธ์ด๋ Low Language๋ก 0101์ ์ซ์๋ค๋ก ๊ตฌ์ฑ๋์ด์๊ณ ์ฌ๋๋ค์ด ์์ฑํ ์๊ฐ ์๋ค.. (์ฒ์ฌ๋ฉด ๊ฐ๋ฅํ ๊น?)
์ฆ, ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ๊ธฐ๊ณ๊ฐ ์ดํดํ ์ ์๋๋ก ๋ฒ์ญํด์ฃผ๋ ํต์ญ์ฌ๊ฐ ํ์ํ๋ค.
High๋ฅผ Low๋ก ๋ฒ์ญํด์ฃผ๋ ๊ฒ์ Compile์ด๋ผ๊ณ ํ๋ฉฐ, ํต์ญํด์ฃผ๋ ํ๋ก๊ทธ๋จ(?) Compiler๋ผ๊ณ ํ๋ค!
Android, OS X(MAC), Windows, Linux ๋ฑ๋ฑ๋ฑ ์ฌ์ฉํ ์ ์๋ OS์ ์ข ๋ฅ๊ฐ ๋ง๋ค. ๋น์ท๋น์ทํด๋ ์ธ๋ถ๋ด์ฉ์ด ๋ค๋ฅธ OS๋ ์๊ณ ์์ ๋ค๋ฅธ OS๋ค๋ ์๋ค. ํด์ ๊ฐ๋ฐ์ ํ ๋ OS์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๋ค๋ฅด๊ฒ ์ง์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด๋ Java์ ์ฅ์ ์ด ๋น์ ๋ธ๋ค. ๋ฐ๋ก JVM ๋๋ฌธ์.
JVM ( Java Virtual Machine ) ์๋ฐ ๊ฐ์ ๋จธ์
- OS์ Java Code ์ฌ์ด์ ์ค๊ณ๊ธฐ ์ญํ ์ ํ๋ค.
- Java code๊ฐ compile๋์ด ๋ง๋ค์ด์ง๋ Java binary file(.class)์ ์คํ ํ ์ ์๋ค.
- JVM์ ํ๋ซํผ์ ์์กด์ ์ด๋ค. ์ฆ ๋ฆฌ๋ ์ค์ JVM๊ณผ ์๋์ฐ์ฆ์ JVM์ ๋ค๋ฅด๋ค. ๋จ, compile๋ binary file(.class)๋ ์ด๋ค JVM์์๋ ๋๊ฐ์ ๋์์ ํ๋ค.
= Java๋ JVM๋๋ถ์ ๊ฐ OS์ ์๋ง๋ ์์ค๋ฅผ ๋ฐ๋ก ์์ฑํ ํ์๊ฐ ์๋ค. ๊ฐ OS์ ๋ง๋ JVM๋ง ์ค์นํ๋ค๋ฉด!
Java ํ๊ฒฝ์ ๊ตฌ์ฑํ๋๋ฐ JDK์ JRE๊ฐ ํ์ํ๋ค๊ณ ํ๋ค.
์ผ๋จ ์ค์น๋ ํ๋๋ฐ ๋์ฒด ๋ฌด์์ธ๊ฐ...?
JRE ( Java Runtime Environments ) ์๋ฐ ์คํ ํ๊ฒฝ
- JVM์ด Java programe์ ๋์์ํฌ ๋ ํ์ํ Library files๊ณผ ๊ธฐํ ํ์ผ๋ค์ ๊ฐ์ง๊ณ ์๋ค.
JDK ( Java Development Kits ) ์๋ฐ ๊ฐ๋ฐ ๋๊ตฌ
- Compiler ( ์ปดํ์ผ๋ฌ ์ค๋ช ์ ์์ ์์! )
- JRE + ๊ฐ๋ฐ์ ์ํด ํ์ํ ๋๊ตฌ(javac, java ๋ฑ)์ ํฌํจํ๋ค.
- JDK ์ฌ์ด์ SE๊ฐ ๋ถ์ ๊ฒ์ Standered Editions์ ์๋ฏธํ๋ค.
ex) Java SE Development Kits 8
ps. JDK์ JRE๋ ์ฌ๋ฌํ์ฌ์์ ๋ฐฐํฌํ๊ณ ์์ง๋ง Java ์์ฒด์ ์์ ๊ถ(?)์ Oricle์๊ฒ ์๋ค.
Thanks for ๐
- Wikidocs.net B. JVM, JRE, JDK์ ์ฐจ์ด - ์ ํ ํฌ ์๋ฐ
- Teacher. Park Min