Class Loader Hierarchy

VM์—๋Š” ์—ญํ• ์ด ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ๋กœ๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํด๋ž˜์Šค ๋กœ๋”๋Š” ์ตœ์ƒ์œ„ ํด๋ž˜์Šค ๋กœ๋”์ธ bootstrap classloader๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ƒ์œ„ ํด๋ž˜์Šค ๋กœ๋”(๋กœ๋“œํ•œ)์— ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.

Bootstrp ClassLoader

Bootstrap Classloader๋Š” JVM์ด ๋กœ๋“œ๋  ๋•Œ ๋งค์šฐ ์ผ์ฐ ์ธ์Šคํ„ด์Šคํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. Bootstrap Classloader๋Š” (์˜ˆ๋ฅผ ๋“ค์–ด rt.jar๋ฅผ ํฌํ•จ) ๊ธฐ๋ณธ Java API๋ฅผ ๋กœ๋“œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐ ์ˆ˜์ค€์ด ๋” ๋†’์€ boot ํด๋ž˜์Šค ๊ฒฝ๋กœ์— ์žˆ๋Š” ํด๋ž˜์Šค๋งŒ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ผ๋ฐ˜ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๋งŽ์€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

Extension ClassLoader

Extension Classloader๋Š” ๋ณด์•ˆ ํ™•์žฅ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ํ‘œ์ค€ Java ํ™•์žฅ API์—์„œ ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

System Classloader

System Classloader๋Š” ํด๋ž˜์Šค ๊ฒฝ๋กœ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค ๋กœ๋”์ž…๋‹ˆ๋‹ค.

User Defined Classloaders

์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค ๋กœ๋”๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค ๋กœ๋”๋Š” ํด๋ž˜์Šค์˜ ๋Ÿฐํƒ€์ž„ ์žฌ๋กœ๋”ฉ ๋˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Tomcat๊ณผ ๊ฐ™์€ ์›น ์„œ๋ฒ„์— ํ•„์š”ํ•œ ๋กœ๋“œ๋œ ํด๋ž˜์Šค์˜ ๋‹ค๋ฅธ ๊ทธ๋ฃน ๊ฐ„์˜ ๋ถ„๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํŠน๋ณ„ํ•œ ์ด์œ ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Last updated

Was this helpful?