Lang/โ˜• Java

๋„์ ๋„์  * Compiler, JVM, JDK, JRE

___l_i_ * 2021. 1. 20. 17:08

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 ๐Ÿ™ˆ