์๋ฐ ์คํ ํ๊ฒฝ(Java Runtime Environment)์ ์ฝ์๋ก, ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ๋ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, API, ๊ทธ๋ฆฌ๊ณ JVM์ด ํฌํจ๋์ด ์๋ค.
์๋ฅผ ๋ค์ด, ์ฐ๋ฆฌ๊ฐ ์๋ฐ์ ์๋ฃ๊ตฌ์กฐ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ํด๋น ๊ธฐ๋ฅ๋ค์ ์ผ์ผ์ด ๋ค ๊ตฌํํ๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ๊ทธ๊ฒ๋ค์ด ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋ ํด๋์ค๋ก ์ ๊ณต๋๊ธฐ ๋๋ฌธ์ด๋ค. (.class ํ์ผ)
์ด์ฒ๋ผ ๋๋ฆฌ ์ฐ์ด๋, JVM์์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ JVM๊ณผ ์ธํธ๋ก ๋ฌถ์ด์ ๋ค์ด๋ฐ์ ์ค์นํ ์ ์๋๋ก ํ ๊ฒ์ด JRE์ด๋ค.
์ด๋ค ์ปดํจํฐ๋ JRE๋ง ์ค์น๋์ด ์์ผ๋ฉด ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ์ ์๋ค!
๐ก JRE๋ Java๋ก ๊ฐ๋ฐ(์ฐ๊ธฐ)์ ์๋๊ณ ์คํ(์ฝ๊ธฐ)๋ง ๋๋ค!
์๋ฐ ๊ฐ๋ฐ ํคํธ(Java Development Kit)์ ์ฝ์๋ก, ๊ฐ๋ฐ์๋ค์ด ์๋ฐ๋ก ๊ฐ๋ฐํ ๋ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ฐ๋ฐ ๋๊ตฌ๋ค, ๊ทธ๋ฆฌ๊ณ JRE๊ฐ ํฌํจ๋์ด ์๋ค.
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด JDK๋ JVM, JRE๋ฅผ ๋ชจ๋ ํฌํจํ๊ณ , ์ด์ธ์ ์๋ฐ๋ก ๊ฐ๋ฐํ๋๋ฐ ํ์ํ development tools๋ ํฌํจํ๊ณ ์๋ ๊ฑธ ์ ์ ์๋ค.
JDK์์๋ ์๋ฐ๋ก ๊ฐ๋ฐ ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊ณผ javac, javadoc ๋ฑ์ ๊ฐ๋ฐ ๋๊ตฌ๋ค์ ํฌํจ๋์ด ์๊ณ , ๊ฐ๋ฐ์ ํ๋ ค๋ฉด ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ๋ ์์ผ์ค์ผ ํ๊ธฐ ๋๋ฌธ์ JRE๋ ํจ๊ป ํฌํจ๋์ด ์๋ค.
๋ฐ๋ผ์ JDK > JRE > JVM ์ ํฌํจ๊ด๊ณ๊ฐ ์ฑ๋ฆฝ๋๋ค.
Java ์ธ์ด ์์ฒด๋ ๋ฌด๋ฃ์ง๋ง, JDK๋ ๋ฌด๋ฃ์ธ ๊ฒ๋ ์๊ณ ์ ๋ฃ์ธ ๊ฒ๋ ์๋ค.
Oracle JDK๊ฐ ์์
์ ์ด์ฉ์ ํํด์ ์ ๋ฃ(๊ฐ์ธ์ ๋ฌด๋ฃ).
Oracle์ OpenJDK, Azul์ Zulu, Amazon์ Coretto ๋ฑ์ ๋ฌด๋ฃ.
์ ๋ฃ๋ฒ์ ์ ์ฑ๋ฅ, ์์ ์ฑ, ์ต์ ๊ธฐ๋ฅ ๋ฑ์์ ๋ซ๋ค.
๐ก Java๋ก ํ๋ก๊ทธ๋จ์ ์ง์ ๊ฐ๋ฐํ๋ ค๋ฉด JDK๊ฐ ํ์ํ๊ณ Java๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ค๋ฉด JRE๊ฐ ํ์ํ๋ค!
Q. JDK, JRE์ ์ฐจ์ด์ ์ด ๋ฌด์์ธ๊ฐ์?
A.