๋ฐ˜์‘ํ˜•

 

 

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด Java๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์–ธ์–ด๋กœ, ์ปดํŒŒ์ผ๊ณผ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•จ

 

 

Java์˜ ์ปดํŒŒ์ผ๋Ÿฌ, ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋™์ž‘ ๋ฐฉ์‹

 

์ถœ์ฒ˜ : https://jooona.tistory.com/157

 

 

1. ์ปดํŒŒ์ผ ๋‹จ๊ณ„ : Java ์†Œ์Šค ์ฝ”๋“œ๋Š” ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ(javac)๋ฅผ ํ†ตํ•ด ๋ฐ”์ดํŠธ ์ฝ”๋“œ(.class ํŒŒ์ผ)๋กœ ๋ณ€ํ™˜๋จ

=> ์ด ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋Š” ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ด๋ฉฐ Java Virtual Machine(JVM)์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์ค‘๊ฐ„ ์–ธ์–ด์ž„

 

2. ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋‹จ๊ณ„ : JVM์€ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ž๋ฐ” ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ํ†ตํ•ด ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹คํ–‰ํ•จ

=> ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋ผ์ธ๋ณ„๋กœ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž„

 

3. JIT(Just-In-Time) ์ปดํŒŒ์ผ : JVM์€ ์ž๋ฐ” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹ ์™ธ์—๋„ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Œ

=> ๋Ÿฐํƒ€์ž„์‹œ(์‹คํ–‰ ์ค‘)์— ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ์†๋„๋ฅผ ๋†’์ž„

 

 

์™œ Java๋Š” ์ปดํŒŒ์ผ๋Ÿฌ/์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฅผ ๋‘˜๋‹ค ์‚ฌ์šฉํ• ๊นŒ?

 

ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ

์ปดํŒŒ์ผ ์–ธ์–ด๋Š” ํŠน์„ฑ์ƒ ์†๋„๊ฐ€ ๋น ๋ฅด๋‚˜ ํ”Œ๋žซํผ์— ์ข…์†๋  ์ˆ˜ ๋ฐ–์— ์—†๋Š”๋ฐ

Java ์†Œ์Šค ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜์ด ๋˜๊ณ  ์ด ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋Š” JVM(๊ฐ ํ”Œ๋žซํผ์— ๋งž์ถฐ์ ธ ์žˆ์Œ)์—์„œ ์‹คํ–‰๋˜๊ธฐ์— ํ•ด๋‹น ํ”Œ๋žซํผ์˜ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ์„ ๋‹ฌ์„ฑํ•จ


๋˜ํ•œ, ์ปดํŒŒ์ผ ๋ฐฉ์‹๊ณผ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ

์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ, ์ดˆ๊ธฐ ์˜ค๋ฅ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๊ณ 
์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋‹จ๊ณ„์—์„œ JVM์ด ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋ผ์ธ๋ณ„๋กœ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ, ๋น ๋ฅธ ๋””๋ฒ„๊น…๊ณผ ์œ ์—ฐํ•œ ์ฝ”๋“œ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ด์ง


(JIT ์ปดํŒŒ์ผ์„ ํ†ตํ•ด ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ๋„ ์žˆ๋‹ค๊ณ ํ•จ)

 

 

์ฐธ๊ณ ๋ฌธํ—Œ

 

https://velog.io/@tsi0521/Java%EB%8A%94-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%99%80-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%EB%91%98-%EB%8B%A4-%EA%B0%80%EC%A7%84%EB%8B%A4

 

Java๋Š” ์™œ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋‘˜ ๋‹ค ๊ฐ€์ง€๋Š”๊ฐ€?

1. ์ปดํŒŒ์ผ๋Ÿฌ vs ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ปดํŒŒ์ผ๋Ÿฌ & ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ชจ๋‘ high-level language๋ฅผ machine language๋กœ ๋ฒˆ์—ญํ•œ๋‹ค ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์†Œ์Šค ์ฝ”๋“œ(high-level language๋กœ ์ž‘์„ฑ) ์ „์ฒด๋ฅผ ๋ง์ปค๋“ฑ์„ ํ†ตํ•ด ํ•œ๋ฒˆ์— ๋ฒˆ์—ญํ•˜์—ฌ object file(

velog.io

 

https://jooona.tistory.com/157

 

[JAVA] JAVA๋Š” ์ปดํŒŒ์ผ ์–ธ์–ด์ผ๊นŒ, ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ผ๊นŒ?

์•ž์˜ ๊ธ€์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋”ฉ ์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋“ค์€ ์ปดํŒŒ์ผ ์–ธ์–ด์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‹ค์‹œ ๊ธฐ์ˆ ํ•˜์ž๋ฉด, C, C++, Go ๋“ฑ์˜ ์–ธ์–ด๋Š” ์ปดํŒŒ์ผ ์–ธ์–ด์ด๊ณ , Python, R, Java

jooona.tistory.com

 

๋ฐ˜์‘ํ˜•