JVM

JVM (Java Virtual Machine)

Java๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ(ํ”„๋กœ๊ทธ๋žจ)๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ

JVM์˜ ๋ชฉ์ 

  1. JVM์€ Java ํ”„๋กœ๊ทธ๋žจ์„ ์–ด๋–ค OS๋“  ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค. ์ฆ‰, OS์— ์˜์กด์ ์ด์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

  2. JVM์€ Java ํ”„๋กœ๊ทธ๋žจ์ด ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ตœ์ ํ™”ํ•œ๋‹ค.

JAVA ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ ˆ์ฐจ

java-execution-structure

๊ตฌ์„ฑ ์š”์†Œ

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

  • ํด๋ž˜์Šค ๋กœ๋”: ์™ธ๋ถ€ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์™€ ๋กœ๋“œํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋ฐฐ์น˜

  • ์‹คํ–‰ ์—”์ง„: ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰

  • ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ: JVM์ด ํ• ๋‹น๋ฐ›์•„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ์ด์— ํฌํ•จ๋œ๋‹ค.

๋™์ž‘ ์ ˆ์ฐจ

  1. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด JVM์€ OS๋กœ๋ถ€ํ„ฐ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค. ์ด ๊ณต๊ฐ„์˜ ๊ด€๋ฆฌ๋Š” JVM์ด ๋งก๋Š”๋‹ค.

  2. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ(.java)๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ(.class)๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

  3. ํด๋ž˜์Šค ๋กœ๋”๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ฝ์–ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๋กœ๋”ฉํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๋„ ํฌํ•จ๋œ๋‹ค.

  4. ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์˜ฌ๋ผ๊ฐ„ ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์€ ์‹คํ–‰ ์—”์ง„์— ์˜ํ•ด ์‹คํ–‰๋œ๋‹ค.

  5. JVM์€ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™”, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜๊ณผ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Last updated