๐JDK์ ๊ตฌ์กฐ
JDK(Java Development Kit) : ์๋ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ์ ์๋ ๋๊ตฌ๋ค๋ก ์ด๋ค์ง ํจํค์ง.
JDK๋ JRE(Java Runtime Environment)์ ์๋ฐ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋๊ตฌ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- JRE(Java Runtime Environment) : ์๋ฐ ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ
- Java ๊ฐ๋ฐ ๋๊ตฌ(Java Development Tools) : ์ค์ ์๋ฐ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ํ์ํ ์ฌ๋ฌ ์คํ ํ์ผ. (javac.exe, java.exe ๋ฑ). ๊ฐ๋ฐ์๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ๋ง ํ ๊ฒฝ์ฐ์๋ JRE๋ง ๋ค์ด๋ฐ์๋ ๋๋ค.
JRE๋ ๋ค์ JVM+API ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- JVM์ ์ด์์ฒด์ ์ ์ข ์๋ฐ์ง ์๊ณ CPU๊ฐ ์๋ฐ๋ฅผ ์ธ์, ์คํํ ์ ์๊ฒํ๋ ๊ฐ์ ๋จธ์
- API๋ Java Class Library(์๋ฐ ํ๋ก๊ทธ๋จ์ ๋์ํ ๋ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ API)๋ฅผ ๋งํ๋ค.
Java Development Tools์ ํด๋น๋๋ javac.exe๋ Java Compiler๋ก ์์คํ์ผ์ JVM์ด ์ดํดํ ์ ์๋ Java bytecode๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ์ด๋ฉฐ, java.exe๋ Java Launcher๋ก JVM์ ๊ตฌ๋ํ๊ณ ๊ทธ ์์ ์๋ฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋๋ก ๋๋ ํ๋ก๊ทธ๋จ์ด๋ค.
๐ญ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ ๊ตฌ์กฐ์ ์๋ฐ ๊ฐ์ ๋จธ์
์๋ฐ ํ๋ก๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์คํ๋๋ค.
์ด์์ฒด์ ๋ JVM์ ์คํ์ํค๊ณ , JVM์ด ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๊ตฌ์กฐ๋ก ๋์ํ๋๋ฐ, ์ด๋ฌํ ๊ตฌ์กฐ๋ก ์ค๊ณ๋ ์ด์ ๋ ์ด์์ฒด์ ์ ์ข ์๋ฐ์ง ์๊ณ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํจ์ด๋ค. OS๊ฐ ๋ค๋ฅด๋ฉด JVM๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์์ ์์ด ๋ค์ํ ์ด์์ฒด์ ์์ ์คํ์ํฌ ์ ์๋ค. ๋ฐ๋ผ์ Java๋ ์ด JVM์ด๋ผ๋ ๊ฐ์๋จธ์ ์ ๊ฑฐ์ณ์ OS์ ๋๋ฌํ๊ธฐ ๋๋ฌธ์ OS๊ฐ ์ง์ ์ธ์ํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ์ปดํ์ผ๋๋ ๊ฒ์ด ์๋๋ผ, JVM์ด ์ธ์ํ ์ ์๋ Java bytecode(*.class)๋ก ๋ณํ๋๋ค. ๋ณํ๋ bytecode๋ ๊ธฐ๊ณ์ด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ OS์์ ๋ฐ๋ก ์คํ๋์ง ์๊ณ , JVM์ด OS๊ฐ bytecode๋ฅผ ์ดํดํ ์ ์๋๋ก ํด์ํด์ค๋ค. ๋ฐ๋ผ์ bytecode๋ JVM ์์์ OS์ ์๊ด์์ด ์คํ๋ ์ ์๋ ๊ฒ์ด๋ค.
'Java๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐งก์ค์ฒฉ ํด๋์ค,์ธํฐํ์ด์ค & ์ต๋ช ๊ฐ์ฒด (0) | 2023.01.18 |
---|---|
๐์ธํฐํ์ด์ค(2) (0) | 2023.01.16 |
๐์ธํฐํ์ด์ค(1) (0) | 2023.01.16 |
๐๋ณ์์ ํ์ (0) | 2022.11.30 |
Java - ArrayList, LinkedList (0) | 2022.10.25 |