Java๐ŸŽ€

์ž๋ฐ”์˜ ์‹œ์ž‘(JDK์™€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ตฌ์กฐ)

Jeein0313 2022. 11. 22. 16:33

๐Ÿˆ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)๋ฅผ ๋งํ•œ๋‹ค.

 

JDK์™€ JRE์˜ ๊ตฌ์กฐ

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์— ์ƒ๊ด€์—†์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.