JVM

JVM์˜ ์—ญํ• 

  • Java application์„ class loader๋ฅผ ํ†ตํ•ด ์ฝ์–ด๋“ค์—ฌ Java API์™€ ํ•จ๊ป˜ ์‹คํ–‰ํ•œ๋‹ค

  • JVM์€ Java์™€ OS ์‚ฌ์ด์—์„œ ์ค‘์žฌ์ž ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

    • Java๊ฐ€ OS์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ , ์žฌ์‚ฌ์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค

  • ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, Garbage Collection์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

Java ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ •

  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด JVM์€ OS๋กœ ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”๋กœํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค

    • JVM์€ ์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์šฉ๋„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•œ๋‹ค

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

  • Class loader๋ฅผ ํ†ตํ•ด class ํŒŒ์ผ๋“ค์„ JVM์œผ๋กœ ๋กœ๋”ฉํ•œ๋‹ค

  • ๋กœ๋”ฉ๋œ Class ํŒŒ์ผ๋“ค์€ Execution engine์„ ํ†ตํ•ด ํ•ด์„๋œ๋‹ค

  • ํ•ด์„๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” Runtime Data Areas์— ๋ฐฐ์น˜๋˜์–ด ์‹ค์งˆ์ ์ธ ์ˆ˜ํ–‰์ด ์ด๋ฃจ์–ด์ง„๋‹ค

    • Runtime Data Areas: ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด OS์—์„œ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„

์ด ๊ณผ์ • ์†์—์„œ JVM์€ ํ•„์š”์— ๋”ฐ๋ผ Thread Synchronization๊ณผ GC๊ฐ™์€ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

Last updated