ÀÚ¹Ù ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ °íÂû

ÀÓ ¿µ ÁÖ
¼­¿ïƯº°½Ã °ü¾Ç±¸
¼­¿ï´ëÇб³ ¹°¸®Çаú
E-mail : cogito@newton.snu.ac.kr, cogito@plaza.snu.ac.kr


Abstract

º» ³í¹®Àº ÀÚ¹Ù ¾ð¾î°¡ °¡Á®¿Ã ¼ö ÀÖ´Â ½ÃÅ¥¸®Æ¼ ¹®Á¦¿¡ ´ëÇØ¼­ °íÂûÇϰí ÀÚ¹Ù ½ÇÇà °¡´É À¥ºê¶ó¿ìÁ®(Java Enabled Web BrowserÀÌÇÏ JEWB)¿¡¼­ÀÇ º¸¾È Ãë¾àÁ¡µéÀÇ ÀÌ¿ë °¡´É¼º°ú ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼ ¸ÞÄ¿´ÏÁòµé¿¡ ´ëÇØ¼­ Æò°¡ÇÑ´Ù. ½ÇÇà°¡´É ³»¿ë(Excutable Content ÀÌÇÏ EC)¿¡ ´ëÇØ¼­ ¿ì¼± ³íÀÇÇÑ ÈÄ¿¡, ÀÌ ³í¹®Àº ECÀÇ ÀáÀçÀû Ãë¾à¼º°ú ±×¿¡ ´ëÇØ Á¦¾ÈµÈ ÀÚ¹ÙÀÇ ¸ÞÄ¿´ÏÁò¿¡ ´ëÇØ¼­ ±×¸®°í ¸¶Áö¸·À¸·Î ÀÌ·¯ÇÑ ¸ÞÄ¿´ÏÁòµéÀÇ È¿°ú¿¡ ´ëÇØ ºÐ¼®ÇϰíÀÚ ÇÑ´Ù.

Keywords: Java , Security , WWW


Contents

1 ¼Ò°³(Introduction)
1.1 Excutable Content¿¡ ´ëÇÑ °íÂû
2 ¹®Á¦Á¡µé
2.1 ¾î¶°ÇÑ °ÍµéÀÌ Á¦¾îµÇ¾î¾ß Çϴ°¡?
2.2 ½Ã³ª¸®¿Àµé
3 ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼ ¸ÞÄ¿´ÏÁò
3.1 ÀÚ¹Ù ¾ð¾î¿¡ ´ëÇÑ °íÂû
3.2 ¶óÀ̺귯¸®µé
ClassLoader
Ŭ·¡½ºÆÄÀÏ °Ë»ç(Class File Verification)
Ŭ·¡½ºÆÄÀÏ Æ÷¸Ë
¹ÙÀÌÆ®ÄÚµå¿Í °¡»ó±â°è
°Ë»ç ÇÁ·Î¼¼½º(The Verification Process)
¹ÙÀÌÆ®ÄÚµå °Ë»ç±â(The Bytecode Verifier)
3.3 Security Manager
3.4 Java Enabled Browser(ÀÚ¹Ù °¡´É ºê¶ó¿ìÁ®)
4 ºÐ¼®
4.1 ¼³°è
4.2 ±¸Çö
4.3 ½Ã³ª¸®¿Àµé
5 °á·Ð
[Âü°í ¹®Çå]


1. ¼Ò°³(Introduction)

ÀÚ¹Ù´Â ½ã¸¶ÀÌÅ©·Î½Ã½ºÅÛ »ç¿¡¼­ °³¹ßµÈ °£°áÇÏ°í °´Ã¼ÁöÇâÀûÀ̰í, Ç÷§Æû¿¡ ¹«°üÇÑ ½ÇÇàÀÌ º¸ÀåµÇ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÌ´Ù. ÀÌ·¯ÇÑ Æ¯Â¡ Áß °¡Àå Áß¿äÇÑ °ÍÀº Ç÷§Æû¿¡ ¹«°üÇÑ ½ÇÇà Áï Æ÷Åͺí ÇÏ´Ù´Â °ÍÀÌ´Ù. Æ÷ÅͺíÇÏ´Ù´Â °ÍÀº ³×Æ®¿÷»ó¿¡¼­ ÇÁ·Î±×·¥µé ¶ÇÇÑ µ¿ÀûÀ¸·Î ·ÎµåµÇ°í ·ÎÄÃÇÏ°Ô ½ÇÇàµÈ´Ù´Â
°ÍÀÌ´Ù. ƯÈ÷, ¾ÖÇø´À̶ó°í ÇÏ´Â ÀÛÀº ÇÁ·Î±×·¥µéÀÌ ·ÎµåµÇ°í »ç¿ëÀÚÀÇ À¥ºê¶ó¿ìÁ®¿¡¼­ ½ÇÇàµÇ´Â µ¿¾È »ç¿ëÀÚ´Â À¥À» "¼­ÇÎ"ÇÒ ¼ö ÀÖ´Ù.(ÇÖÀÚ¹Ù°¡ ÀÚ¹Ù¾ð¾î·Î ¾²¿©Áø ±×·¯ÇÑ ºê¶ó¿ìÁ®À̰í, ³×½ºÄÉÀÌÇÁ 2.0Àº ±×·¯ÇÑ ÀÚ¹Ù¾ÖÇø´À» Áö¿øÇÑ´Ù.) ÀÌ·¯ÇÑ °³³äµéÀÌ ¸Å¿ì °­·ÂÇÑ °ÍÀº Ʋ¸²¾øÁö¸¸, »õ·Î¿î º¸¾È ¹®Á¦¸¦ ÃÊ·¡ÇÏ´Â °Í ¶ÇÇÑ È®½ÇÇÏ´Ù. ÀÚ¹Ù¾ð¾î¿Í ½ÇÇà ½Ã½ºÅÛµéÀº(¿©±â¿¡´Â ¶óÀ̺귯¸®, ÄÄÆÄÀÏ·¯, ¹ÙÀÌÆ®ÄÚµå ÀÎÅÍÇÁ¸®Å͵îÀÌ Æ÷ÇÔµÊ) ¼±»ç°¡ ÀÚ¹ÙÀÇ ¾ÈÀü¼ºÀ» ÁÖÀåÇßµíÀÌ ÀÌ·¯ÇÑ º¸¾È»óÀÇ ¹®Á¦µéÀ» ÇØ°áÇϱâ À§ÇÑ ½Ãµµ¸¦ Çϰí ÀÖ´Ù.

1.1. Excutable Content¿¡ ´ëÇÑ °íÂû

EC´Â ½ÇÇà °¡´ÉÇÑ Äڵ带 µ¥ÀÌŸ¿Í ÇÔ²² º¸³¾ ¼ö ÀÖ´Ù´Â °³³äÀÌ´Ù. EC´Â À¥¿¡ °­·ÂÇÑ »óÈ£Àۿ뼺À» ºÎ¿©ÇÒ ¼ö Àֱ⠶§¹®¿¡ ÁÖ¸ñÀ» ¹Þ°í ÀÖ´Ù. Áö³­ ¼ö³â°£ À¥ÀÇ »ç¿ëÀº Æø¹ßÀûÀ¸·Î Áõ°¡Çߴµ¥, ¿©±â¿¡´Â À¥¿¡ ±âÁ¸ÀÇ ÀÀ¿ëÇÁ·Î±×·¥À» À¥¿¡ ¸Â°Ô ¼öÁ¤ÇÏ·Á´Â ½Ãµµ ¿ª½Ã Áõ°¡ÇؿԴÙ. Æû°ú ½ºÅ©¸³Æ®¸¦ ÅëÇØ¼­ ¸¹Àº ±â´ÉÀ» À¥ÀÌ Ãß°¡ÇØ ¿ÔÁö¸¸, ÀÌ·¯ÇÑ ¹æ¹ýÀº ÀÌ¹Ì ÇѰ踦 º¸À̰í ÀÖÀ¸¸ç, »ç¿ëÀÚ°¡ ·ÎÄà ȣ½ºÆ®»ó¿¡¼­ ÇÁ·Î±×·¡¹Ö¾ð¾î·Î Â¥¿©Áø ÇÁ·Î±×·¥À» À¥ ºê¶ó¿ìÁ®¸¦ ÀÌ¿ëÇØ ½ÇÇàÇÒ ¼ö ÀÖ°Ô µÉ °æ¿ì À¥ºê¶ó¿ìÁ®ÀÇ ´É·ÂÀº ±âÁ¸ÀÇ ¾îÇø®ÄÉÀ̼ǵé°ú ÇÊÀûÇÏ°Ô µÈ´Ù.


2. ¹®Á¦Á¡µé

ÀÚ¹Ù ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ ³íÀÇ¿¡ ¾Õ¼­, EC¿¡ ÀÇÇØ ¹ß»ýµÉ ¼ö ÀÖ´Â ¹®Á¦Á¡µé¿¡ ´ëÇÑ ÀÌÇØ°¡ ¼±ÇàµÇ¾î¾ß¸¸ ÇÑ´Ù. ECÀÇ ÀåÁ¡Àº ¼ÒÇÁÆ®¿þ¾îÀÇ ½ÇÇà ´É·Â°ú Á¾·ùÀÇ ´Ù¾ç¼ºÀÇ Áõ°¡¿¡¼­ ºñ·ÔµÈ´Ù°í ÇÒ ¼ö ÀÖ´Ù.

±×·¯³ª,ÀÚ¹Ù ¾ÖÇø´ÀÇ Áõ°¡µÈ ½ÇÇà ´É·ÂÀº ¶ÇÇÑ ÀáÀçÀûÀÎ ½ÃÅ¥¸®Æ¼ ¹®Á¦ÀÇ ¼ÒÁö¸¦ ¾È°í ÀÖ´Ù. »ç¿ëÀÚ°¡ À¥À» Ç×ÇØÇÏ´Â µ¿¾È, »ç¿ëÀÚ°¡ ¾ÖÇø´ÀÌ ÀڽŵéÀÇ ÆÄÀÏÀ» Áö¿ì°Å³ª ±×µéÀÇ »çÀûÀÎ Á¤º¸¸¦ ³×Æ®¿öÅ©¸¦ ÅëÇØ Èê·Áº¸³¾ °¡´É¼º¿¡ ´ëÇÑ ºÒ¾È°¨À» ´À³¥ Çʿ䰡 ¾ø¾î¾ß ÇÏ´Â °ÍÀÌ´Ù.

¹®Á¦ÀÇ ÇÙ½ÉÀº ÄÄÇ»Åͻ󿡼­ ÇÁ·Î±×·¥ÀÇ ½ÇÇà½Ã È£½ºÆ®ÀÇ Æ¯Á¤ÇÑ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» ÇÁ·Î±×·¥ÀÌ ÇØ¾ß¸¸ ÇÑ´Ù´Â µ¥ ÀÖ´Ù. ECÀÇ °æ¿ì¿¡ ½ÇÇàµÇ°í ÀÖ´Â ÇÁ·Î±×·¥Àº ½Å·ÚµÉ ¼ö ¾ø´Ù. ÀÚ¹Ù Äڵ带 ´Ù¿î·ÎµåÇØ¼­ ½ÇÇàÇÏ´Â À¥ºê¶ó¿ìÁ®°¡ ½Å·ÚÇÒ ¼ö ¾ø´Â ÇÁ·Î±×·¥¿¡ ´ëÇØ¼­ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» Á¦¾îÇÏÁö ¸øÇÑ´Ù¸é, ÇØÄ¿°¡ È£½ºÆ®¸¦ ħÀÔÇÑ °Í°ú ¸¶Âù°¡Áö·Î ½Ã½ºÅÛ¿¡ ¼Õ»óÀ» ÀÔÈú ¼ö ÀÖ´Â °ÍÀÌ´Ù. ºÒÇàÇϰԵµ, ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» ¿ÏÀüÈ÷ ±ÝÁöÇÏ´Â °ÍµîÀÇ ´Ü¼øÇÑ ¼Ö·ç¼ÇÀº Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ÀÌÀ¯´Â ÇÁ·Î±×·¥ÀÌ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» Çã¿ëÇϴ ù¹øÂ° ÀÌÀ¯°¡ À¯¿ëÇÑ ÇÁ·Î±×·¥ÀÌ ±×·¯ÇÑ ÀÚ¿øµé¿¡ ´ëÇØ¼­ ¹Ýµå½Ã Á¢±ÙÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¿¹¸¦ µé¸é ¿¡µðÅÍ¿¡¼­ ÆÄÀÏÀúÀå ±â´ÉÀÌ ¾ø´Ù¸é ÀÌ´Â À¯¿ëÇÑ ÇÁ·Î±×·¥À̶ó°í ÇÒ ¼ö ¾ø´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î, À¯¿ëÇϸ鼭µµ ¾ÈÀüÇÑ EC¸¦ ¿øÇÑ´Ù¸é, ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀº ¸Å¿ì ÁÖÀDZí°Ô ÅëÁ¦µÇ¾î¾ß¸¸ ÇÑ´Ù. ÀÌÇÏ¿¡¼­´Â ¿ì¼± °í·ÁÇØ¾ß ÇÒ ÀÚ¿ø¿¡ ´ëÇØ¼­ ¼³¸íÇϰí ÃæºÐÇÑ ¾ÈÀüÀåÄ¡°¡ ¾øÀ» °æ¿ì ¹ß»ýÇÒ ¼ö ÀÖ´Â ¸î °¡Áö °¡»óÀû ½Ã³ª¸®¿À¿¡ ´ëÇØ¼­ °íÂûÇÑ´Ù.

2.1.¾î¶°ÇÑ °ÍµéÀÌ Á¦¾îµÇ¾î¾ß Çϴ°¡?

½ÇÇàµÉ ÇÁ·Î±×·¥À» À§ÇÑ ¾ÈÀüÇÑ È¯°æÀÇ Áß¿äÇÑ ºÎºÐÀº ÀÚ¿øÀ» ±¸ºÐÇÏ¿© ÀÌ·¯ÇÑ ÀÚ¿øµé¿¡ ´ëÇØ ƯÁ¤ÇÑ ÇüÅ·ΠÁ¦ÇÑµÈ Á¢±ÙÀ» Çã¿ëÇÏ´Â °ÍÀÌ´Ù. µµÇ¥ 1Àº ±×·¯ÇÑ ÀÚ¿øµéÀÇ ºÎºÐÀûÀÎ ¿¹¸¦ º¸¿©Áִµ¥, ÀÚ¿øÀÇ À̿밡´É¼º¿¡ ÀÇÇÑ °ø°ÝÀÇ Çüŵµ ¸¶Âù°¡Áö·Î ºÐ·ùÇϰí ÀÖ´Ù. °¡´ÉÇÑ ³× °¡Áö °ø°ÝÀÇ Á¾·ù´Â:

  1. »ç¿ëÀÚ³ª È£½ºÆ®¿¡ ´ëÇÑ Á¤º¸ÀÇ ÀºÆä

  2. Á¤´çÇÑ ½Ãµµ¿¡ ´ëÇØ¼­ ÀÚ¿øÀ» »ç¿ëÇÒ ¼ö ¾ø°Ô ÇÏ´Â ¼­ºñ½º °ÅºÎ °ø°Ý

  3. µ¥ÀÌÅÍÀÇ ÆÄ±«³ª ¼öÁ¤(´Ù¸¥ ÇÁ·Î±×·¥À̳ª ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÇÇØ »ç¿ëÁßÀÎ µ¥ÀÌÅÍ Æ÷ÇÔ)

  4. »ç¿ëÀÚÀÇ È­¸é¿¡ À½¶õÇÑ Àå¸éÀ» º¸¿©ÁÖ´Â °ÍµîÀÇ ºÒÄè°¨ À¯¹ß ÇàÀ§.

ÀÌ µµÇ¥°¡ °¡´ÉÇÑ ¸ðµç °ø°ÝÀ» ¸Á¶óÇÑ °ÍÀÌ ¾Æ´Ï¶ó´Â °Í¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. ÀÌ´Â ´ÜÁö ÁÖ¾îÁø ÀÚ¿ø¿¡ ´ëÇÑ °ø°Ý¿¡ ´ëÇØ ¿¹¸¦ µé°í ÀÖ´Â °Í¿¡ ºÒ°úÇÏ´Ù. ¿¹¸¦ µé¸é, ½ºÇªÇÎÇÁ·Î±×·¥Àº(»ç¿ëÀÚ¿¡°Ô ½ÇÁ¦¿Í ´Ù¸£°Ô º¸ÀÌ´Â ÇÁ·Î±×·¥) ¿ø·¡ÀÇ ÇÁ·Î±×·¥°ú °°Àº ÀÚ¿øÀ» »ç¿ëÇÏ´Â °Íó·³ »ç¿ëÀÚ¸¦ ¼ÓÀ̱â À§ÇØ ¸ðµç ÀÚ¿øÀ» °ø°ÝÀ» À§ÇØ »ç¿ëÇϰíÀÚ ÇÒ °ÍÀÌ´Ù.

ÀÚ¿ø ÀºÆó À̿밡´É¼º ¹«°á¼º ºÒÄè°¨ À¯¹ß
ÆÄÀÏ ½Ã½ºÅÛ V V V V
³×Æ®¿öÅ© V

V
¸Þ¸ð¸® V V V V
Ãâ·Â ÀåÄ¡


V
ÀÔ·Â ÀåÄ¡ V V
V
ÇÁ·Î¼¼½º Á¦¾î
V
V
»ç¿ëÀÚ È¯°æ V
V V
½Ã½ºÅÛ È£Ãâ V V V V
µµÇ¥1. È£½ºÆ®ÀÇ ÀÚ¿øµé

ÁÖ¾îÁø ÀÚ¿øÀÇ ¸î¸î ¿ä¼ÒµéÀº ´Ù¸¥ °Íµé¿¡ ºñÇØ Àüü Á¢±ÙÀ» ÇØ¿ëÇϱ⠶§¹®¿¡ ´õ¿í "À§Çè"ÇÏ´Ù. ¿¹¸¦ µé¸é ÆÄÀÏ ½Ã½ºÅÛ¿¡ ´ëÇØ ¾Ë·ÁÁöÁö ¾ÊÀº ÇÁ·Î±×·¥ÀÌ ÀüüÀû Á¢±ÙÀ» Çã¿ëÇÏ´Â º¸¾È Á¤Ã¥À» À¯¿ëÇÏ´Ù°í ÆÇ´ÜÇÒ ¼ö´Â ¾ø´Ù. ¹Ý´ë·Î, ´ëºÎºÐÀÇ º¸¾ÈÁ¤Ã¥Àº µð½ºÇ÷¹ÀÌ ÀåÄ¡¿¡ ´ëÇØ¼­´Â ÀüüÀû Á¢±ÙÀ» Çã¿ëÇϴ°ÍÀ» Á¦ÇÑÇÏÁö´Â ¾Ê´Â´Ù.(¹°·Ð, ´Ù¸¥ ÀÚ¿øµé¿¡ ´ëÇØ¼­´Â ÀûÀýÈ÷ ÅëÁ¦¸¦ ¹Þ´Â´Ù´Â °¡Á¤ÇÏ¿¡¼­ÀÌ´Ù.)

2.2. ½Ã³ª¸®¿Àµé

¿©±â¿¡¼­´Â ¾ÇÀÇÀûÀÎ ÇÁ·Î±×·¥ÀÌ ¼öÇàÇÒ ¼ö ÀÖ´Â °ø°ÝÀÇ À¯ÇüÀ» Ç¥½ÃÇÏ´Â ¸î°¡Áö ½Ã³ª¸®¿À¿¡ ´ëÇÑ ¿¹¸¦ º¸À̰íÀÚ ÇÑ´Ù. °ø°ÝÀÇ ºÐ·ù´Â ÀÌ¹Ì ¾ð±ÞµÈ °Í°ú ¸¶Âù°¡ÁöÀÌ´Ù. ¹°·Ð °¡´ÉÇÑ ¸ðµç °ø°ÝÀÌ Æ÷ÇÔµÈ °ÍÀº ¾Æ´Ï°í, ´ÜÁö ¹ß»ýÇÒ ¼ö ÀÖ´Â ¹®Á¦¿¡ ´ëÇÑ °¨À» Á¦½ÃÇϱâ À§ÇÑ °ÍÀÌ´Ù.

  1. ¹«°á¼º¿¡ ´ëÇÑ °ø°Ý

    • ÆÄÀÏÀÇ ¼öÁ¤/»èÁ¦
    • »ç¿ëÁßÀÎ ¸Þ¸ð¸®ÀÇ ³»¿ë¿¡ ´ëÇÑ ¼öÁ¤
    • ÇÁ·Î¼¼½º³ª ½º·¹µå¿¡ ´ëÇÑ Á¾°á

  2. À¯¿ë¼º °ø°Ý

    • °úµµÇÑ ¸Þ¸ð¸® ÇÒ´ç
    • ¼öõ°³ÀÇ À©µµ¿ì »ý¼º
    • ¿ì¼±¼øÀ§°¡ ³ôÀº ÇÁ·Î¼¼½º³ª ½º·¹µå »ý¼º

  3. ÀºÆó °ø°Ý

    • ±â°è¿¡ ´ëÇÑ Á¤º¸ À¯Ãâ(etc/passwd ÆÄÀÏÀ» ÈÉÃİ¡´Â °Í)
    • ³×Æ®¿öÅ©¸¦ ÅëÇØ ÀûÀ̳ª °æÀïÀÚ¿¡°Ô³ª °³ÀÎÀ̳ª ȸ»çÀÇ ÆÄÀÏÀ» Àü¼ÛÇÏ´Â ÇàÀ§

  4. ºÒÄè°¨ À¯¹ß °ø°Ý

    • ½ºÅ©¸°¿¡ À½¶õÇÑ ±×¸²À» Ç¥½ÃÇÏ´Â ÇàÀ§
    • ÄÄÇ»Å͸¦ ÅëÇØ ¿øÇÏÁö ¾Ê´Â À½¼ºÀ» µé·ÁÁÖ´Â ÇàÀ§


3. ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼ ¸ÞÄ¿´ÏÁò

ÀÚ¹Ù´Â ÇÁ·Î±×·¡¹Ö¾ð¾îÀÌ´Ù. ÀÏ´Ü ÀÚ¹Ù°¡ À¥°ú ¹«°üÇÑ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î °³¹ßȯ°æÀ¸·Î ¾²ÀÏ ¼öµµ ÀÖ°í ¾ÖÇø´°³¹ß¿ëÀ¸·Îµµ ¾²ÀÏ ¼ö ÀÖ´Ù´Â »ç½ÇÀ» ±â¾ïÇØ¾ß ÇÑ´Ù. ±×·¯¹Ç·Î ÇÊÀÚÀÇ ÀÚ¹Ù ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ ³íÀÇ´Â ½ÇÁ¦·Î EC¿¡ ´ëÇÑ ÀÚ¹Ù ¾ð¾îÀÇ »ç¿ë¿¡ ´ëÇÑ °ÍÀÌ´Ù.

EC(Excutable Content)¸¦ Á¦°øÇÏ´Â ÀÚ¹ÙÀÇ ¹æ½ÄÀº JEWB°¡ ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ¿Í ·±Å¸ÀÓ ¶óÀ̺귯¸®¸¦ º¸À¯ÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ À¥ºê¶ó¿ìÁ®´Â ¾ÖÇø´À̶ó°í ºÒ¸®¿ì´Â ÀÚ¹Ù ÇÁ·Î±×·¥µéÀ» ´Ù¿î·ÎµåÇÒ ¼ö ÀÖ°í ÀÚ¹ÙÀÎÅÍÇÁ¸®ÅͰ¡ À̸¦ ½ÇÇàÇÏ°Ô ¸¸µç´Ù. ÀÌ·¯ÇÑ ¸ðµ¨°ú ÇÔ²², ¼¼°¡Áö ±âº»Àû¾ð °èÃþÀÌ Á¸ÀçÇϴµ¥: ÀÚ¹Ù ¾ð¾î, Ç¥ÁØ ÀÚ¹Ù ¶óÀ̺귯¸® ±×¸®°í À¥ºê¶ó¿ìÁ®ÀÌ´Ù. ½Ã½ºÅÛ ÀüüÀÇ ½ÃÅ¥¸®Æ¼´Â ÀÌ·¯ÇÑ ¼¼ °èÃþÀÇ °³°³ÀÇ ½ÃÅ¥¸®Æ¼¿¡ ±âº»ÀûÀ¸·Î ÀÇÁ¸ÇÏ´Â ±¸Á¶ÀÌ´Ù.

3.1. ÀÚ¹Ù ¾ð¾î¿¡ ´ëÇÑ °íÂû

ÀÚ¹Ù´Â C++°ú ºñ½ÁÇÑ °´Ã¼ ÁöÇâ ¾ð¾îÀÌ´Ù. ½ÃÅ¥¸®Æ¼ °üÁ¡¿¡¼­ º» Áß¿äÇÑ ¾ð¾îÀû Ư¡Àº º¯¼ö¿Í ¸Þ½îµå¿¡ ´ëÇØ¼­ Ŭ·¡½º ³»ºÎ¿¡¼­ Á¢±Ù Á¦¾î¸¦ »ç¿ëÇÏ´Â °Í, ŸÀÔ Á¤ÀǵéÀÇ ¾ÈÀü¼º, ¾ð¾îÀÇ µ¥ÀÌÅÍ ÇüÀ¸·Î¼­ Æ÷ÀÎÅÍÀÇ ºÎÀç, °¡ºñÁö ÄÝ·º¼ÇÀÇ »ç¿ë(ÀÚµ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ ÀçºÐ¹è), ºÐ¸®µÈ ³×ÀÓ½ºÆäÀ̽ºÀÇ »ç¿ëµîÀÌ´Ù.

C++°ú ¸¶Âù°¡Áö·Î ÀÚ¹Ù´Â °´Ã¼µéÀÇ º¯¼ö¿Í ¸Þ½îµå¿¡ ´ëÇØ¼­ Á¢±ÙÀ» Á¦¾îÇÒ ´É·ÂÀ» °¡Áö°í ÀÖ´Ù. ÀÌ·¯ÇÑ Á¢±Ù Á¦¾î´Â ½Å¿ëÇÒ ¼ö ¾ø´Â Äڵ忡 ´ëÇØ °´Ã¤°¡ ºÎÀûÀýÇÏ°Ô »ç¿ëµÇÁö ¾Ê´Â´Ù´Â º¸ÀåÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ¿¹¸¦ µé¸é, ÀÚ¹Ù ¶óÀ̺귯¸®´Â ÆÄÀÏ °´Ã¼¿¡ ´ëÇÑ Á¤ÀǸ¦ Æ÷ÇÔÇϴµ¥, ÆÄÀÏ °´Ã¼´Â Àбâ¿ëÀ¸·Î public ¸Þ½îµå(´©±¸³ª È£Ãâ °¡´É) °¡Áö°í ÀÖ°í ¶ÇÇÑ Àбâ¿ëÀ¸·Î Àú¼öÁØÀÇ private ¸Þ½îµå(°´Ã¼ ¸Þ½îµå¿¡ ÀÇÇØ¼­¸¸ È£Ãâ°¡´ÉÇÑ)¸¦ °¡Áö°í ÀÖ´Ù. public È£ÃâÀº ¿ì¼± ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ Ã¼Å©¸¦ ¼öÇàÇÏ°í ³­ ´ÙÀ½¿¡ private Àб⸦ È£ÃâÇÑ´Ù. ÀÚ¹Ù´Â ½Å·ÚµÇÁö ¾ÊÀº Äڵ尡 ÆÄÀÏ °´Ã¼¸¦ ¾ÈÀüÇÑ°Ô Á¶Á¤ÇÏ´Â °ÍÀ» public ¸Þ½îµå¿¡ ´ëÇÑ Á¢±Ù¸¸À» Çã¿ëÇÔÀ¸·Î½á º¸ÀåÇÏ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î, Á¢±ÙÁ¦¾î´É·ÂÀº ÇÁ·Î±×·¡¸ÓµéÀÌ ¶óÀ̺귯¸®¿¡ ´ëÇÑ Á¢±ÙÁ¦¾î¸¦ Á¤È®È÷ ¸í½ÃÇÔÀ¸·Î½á ¾ð¾î¿¡ ½ÃÅ¥¸®Æ¼°¡ º¸ÀåµÈ ¶óÀ̺귯¸® ÀÛ¼ºÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù.

Á¢±ÙÁ¦¾î¸¦ º¸ÀåÇÏ´Â ´Ù¸¥ ´É·ÂÀº ÆÄÀ̳Î(final)·Î¼­ Ŭ·¡½º³ª ¸Þ½îµå¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ´Ù. À̰ÍÀº ¾ÇÀÇÀûÀÎ ÇÁ·Î±×·¡¸Ó°¡ ÇÙ½ÉÀûÀÎ ¶óÀ̺귯¸® Ŭ·¡½º¸¦ ¼­ºêŬ·¡½º·Î »ç¿ëÇϰųª, ÇÑ Å¬·¡½ºÀÇ ¸Þ½îµå¸¦ ¿À¹ö¶óÀ̵ùÇÏ´Â °ÍÀ» ¸·¾ÆÁØ´Ù. ±×·¯¹Ç·Î, ÀÚ¹Ù´Â ½ÇÁ¦ ¸Þ½îµå°¡ ¾î¶² °´Ã¼¿¡ °ü°èµÇ¾úÀ»¶§ °´Ã¼ÀÇ ÄÄÆÄÀϽà ŸÀÔ¿¡ ¸Â°Ô ¾²¿©Áø ÆÄÀ̳Π¸Þ½îµåÀÓÀ» º¸ÀåÇÑ´Ù. ÀÌ´Â ¶ÇÇÑ °´Ã¼ÀÇ ÇൿÀÇ Æ¯Á¤ÇÑ ºÎºÐÀÌ ¼öÁ¤µÇÁö ¾Ê¾ÒÀ½À» º¸ÀåÇÏ´Â °ÍÀÌ´Ù.

ÀÚ¹Ù´Â ¶ÇÇÑ Å¸ÀÔ¿¡ ¾ÈÀüÇÏ°Ô ¼³°èµÇ¾ú´Ù. À̰ÍÀº ÄÄÆÄÀϽà ŸÀÔ°ú º¯¼öÀÇ ½ÇÇà½Ã ŸÀÔÀÇ È£È¯¼ºÀÌ º¸ÀåµÊÀ» ÀǹÌÇÑ´Ù. ÀÌ´Â cast°¡ ÄÄÆÄÀϰú ½ÇÇàÇÏ´Â °æ¿ì¿¡ ±×µéÀÌ À¯È¿ÇÑÁö¸¦ È®ÀÎÇϱâ À§Çؼ­ ¸ðµÎ üũµÊÀ» ÀǹÌÇÑ´Ù. ÀÌ´Â Á¢±Ù Á¦¾î¸¦ ºñ²¸°¡±â À§Çؼ­ °´Ã¼¿¡ ´ëÇÑ Á¢±ÙÀ» °¡ÀåÇÏ´Â °ÍÀ» ¿¹¹æÇØ ÁØ´Ù. ÀÌ¹Ì º¸¿©Áø File¿¡ ´ëÇÑ ¿¹¿¡¼­ º¸µíÀÌ, ÀÌ´Â ¾ÇÀÇÀûÀÎ Äڵ尡 File °´Ã¼¿¡ ´ëÇØ ij½ºÆÃÀ» ÇÏ´Â °Í¿¡¼­ ¾ÇÀÇÀûÀÎ ÄÚµåÀÇ MyFile ŸÀÔÀÌ FileŸÀÔ°ú µ¿ÀÏÇÑ ÇüŸ¦ Áö´ÏÁö¸¸ ¸ðµç ¸Þ½îµå°¡ publicÀΰÍÀ» ¸·¾ÆÁØ´Ù.

3.2. ¶óÀ̺귯¸®µé

½ºÅÄ´Ùµå ÀÚ¹Ù ½ÇÇà ȯ°æÀº ´Ù¾çÇÑ À¯¿ëÇÑ ¶óÀ̺귯¸®µé·Î °¡´ÉÇØÁö´Âµ¥, ÀÌ´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¢±ÙÇϰųª, ³×Æ®¿öÅ©¿¡ Á¢±ÙÇϴ°Í, À©µµ¿ì ŸŶÀ̳ª À̿ܿ¡ ´Ù¾çÇÑ ÅøÀ» Æ÷ÇÔÇÑ´Ù. ¶óÀ̺귯¸®ÀÇ Á¤È®ÇÑ ºÐ·ù´Â ¸Å¿ì Áß¿äÇÏ´Ù. ¾ð¾î ÀÚü´Â ¾ÈÀüÇÑ ¶óÀ̺귯¸®¸¦ Á¦°øÇÒ ´É·ÂÀ» Áö´ÏÁö¸¸, ¶óÀÌÆ®·¯¸® Äڵ尡 ºÐ·ùµÇÁö¾Ê°í Á¤È®È÷ ¾²¿©ÁöÁö ¾ÊÀ» °æ¿ì ½Ã½ºÅÛÀÌ ¾ÈÀüÇÒ ¼ö´Â ¾ø´Ù. ¶óÀ̺귯¸®°¡ ÀÚ¹Ù ½ÇÇà½ÃÀÇ 2.1¿¡¼­ ¾ð±ÞÇÑ ½Ã½ºÅÛ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ÇÑ ºÎºÐÀ̱⠶§¹®¿¡, ¶óÀ̺귯¸®ÀÇ Á¤È®ÇÑ ±¸ÇöÀº ÇÙ½ÉÀûÀÎ Á߿伺À» Áö´Ñ´Ù.

¶óÀ̺귯¸®ÀÇ Á¢±Ù Á¦ÇÑÀº ±âº»ÀûÀ¸·Î ¼¼°¡Áö ¸ÞÄ¿´ÏÁò¿¡ ÀÇÁ¸ÇÑ´Ù. ù¹øÂ°´Â ÀÚ¹Ù ¾ð¾îÀÇ ¿ÀºêÁ§Æ® ¸Þ½îµå¿Í ½Ã½ºÅÛ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±Ù Á¦ÇÑÀ» °ø±ÞÇÏ´Â ¹æ½ÄÀ¸·Î¼­ ÀÌ·ç¾îÁö°í µÎ¹øÂ°´Â ƯÁ¤ÇÑ ClassLoader°¡ ƯÁ¤ÇÑ Äڵ带 ·ÎµåÇÏ´Â ¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù. ¸¶Áö¸· ¸ÞÄ¿´ÏÁòÀº ±Û·Î¹ú SecurityManager°¡ ƯÁ¤ÇÑ ÀÛ¿ëÀÇ À¯¿ë¼ºÀ» °Ë»çÇÏ´Â ¸í¹éÇÑ È£ÃâÀ» »ç¿ëÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù.

ClassLoader

ÀÚ¹Ù ½ÇÇàÀº »õ·Î¿î Ŭ·¡½º¸¦ ·ÎµåÇϴµ¥ ¸í¹éÇÑ µÎ°¡Áö ¹æ½ÄÀ» °¡Áø´Ù. ±âº»ÀûÀÎ ¹æ½ÄÀº ·ÎÄà ȣ½ºÆ®ÀÇ ÆÄÀÏ¿¡¼­ Ŭ·¡½º¸¦ ·ÎµåÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¹æ½ÄÀº ClassLoader¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇÏ´Â µîÀÇ ¹æ½ÄÀ¸·Î Ŭ·¡½º¸¦ ·ÎµùÇÏ´Â °ÍÀº °ü·ÃµÈ ClassLoader¸¦ ¿ä±¸ÇÑ´Ù. (¿¹¸¦ µé¸é ƯȭµÈ ¹æ¹ýÀ» Áö´Ï´Â ClassLoader Ŭ·¡½ºÀÇ ¼­ºêŸÀÌÇÁ) ClassLoader´Â Ŭ·¡½ºÀÇ ¿ø½Ã µ¥ÀÌÅ͸¦ ³»ºÎÀÇ Å¬·¡½º¸¦ ´ëÇ¥ÇÏ´Â µ¥ÀÌÅÍ ±¸Á¶·Î º¯È¯ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

ÀÚ¹Ù ¾ÖÇø´µéÀÌ °¡´ÉÇÑÇÑ Æ÷ÅͺíÇϱâ À§Çؼ­, ÀÚ¹Ù ÄÄÆÄÀÏ·¯´Â ¸Ó½Å Äڵ带 ÄÄÆÄÀÏÇÏÁö ¾Ê°í ´ë½Å¿¡ ¾ÆÅ°ÅØÃÄ¿¡ ¹«°üÇÑ °¡»ó ±â°è¿ë ¹ÙÀÌÆ® Äڵ带 ÄÄÆÄÀÏÇÑ´Ù. ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ´Â ÀÌ·¯ÇÑ ¹ÙÀÌÆ®Äڵ带 ÀÎÅÍÇÁ¸®Æ®Çؼ­ ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù. ±×·¯¹Ç·Î, ¾ÖÇø´Àº ¼Ò½ºÄڵ峪 ¸Ó½Å Äڵ尡 ¾Æ´Ï¶ó ¹ÙÀÌÆ®ÄÚµå ÇüÅ·ΠÀü´ÞµÈ´Ù. À̰ÍÀº ClassLoader°¡ ¹ÙÀÌÆ®Äڵ常À» ´Ù·ê ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù.

Ŭ·¡½ºÆÄÀÏ °Ë»ç(Class File Verification)

ÄÄÆÄÀÏ·¯°¡ ŸÀÔÀ» °Ë»çÇÏÁö¸¸ "À§ÇèÇÑ" ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÔÀ¸·Î½á °ø°ÝÀ» ¹ÞÀ» ¼ö ÀÖ´Â °¡´É¼ºÀÌ ¿©ÀüÈ÷ ÀÖ´Ù. ÇÖÀÚ¹Ù(tm)ºê¶ó¿ìÀú¿Í °°Àº ¾îÇø®ÄÉÀ̼ÇÀº ¼Ò½ºÄڵ带 Àü¼Û¹ÞÀº ÈÄ ÄÄÆÄÀÏÀ» ÇÏÁö ¾Ê´Â´Ù; ÀÌ·± ¾îÇø®ÄÉÀ̼ÇÀº ÀÌ¹Ì ÄÄÆÄÀÏµÈ Å¬·¡½ºÆÄÀϵéÀ» Àü¼Û¹Þ´Â´Ù. ÇÖÀÚ¹Ù ºê¶ó¿ìÀú´Â ±× ¹ÙÀÌÆ® Äڵ尡 ¹ÏÀ» ¸¸ÇÑ ÀÚ¹ÙÄÄÆÄÀÏ·¯¿¡¼­ »ý¼ºµÇ¾ú´ÂÁö ¶Ç´Â ÀÎÅÍÇÁ¸®Å͸¦ °ø°ÝÇÏ·Á´Â ÀûÀ¸·ÎºÎÅÍ »ý¼ºµÇ¾ú´ÂÁö È®ÀÎÇÒ ¹æ¹ýÀÌ ÀüÇô ¾ø´Ù.

¿ÜºÎ¿¡¼­ À¯ÀÔµÈ ¸ðµç Ŭ·¡½ºÆÄÀϵéÀº °Ë»ç±â¿¡¼­ È®ÀεǾî¾ß ÇÑ´Ù. °Ë»ç±â´Â ±× Ŭ·¡½º ÆÄÀÏÀÌ ¿Ã¹Ù¸¥ Æ÷¸ËÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ¹ÙÀÌÆ®Äڵ忡 ´ëÇÑ "±¸Á¶Àû Á¦ÇÑ"ÀÇ ¼¼Æ®¸¦ ±¸¼ºÇÏ´Â °£´ÜÇÑ ³í¸® È®ÀÎÀÚ¸¦ »ç¿ëÇÔÀ¸·Î½á ¹ÙÀÌÆ®Äڵ带 °Ë»çÇÒ ¼ö ÀÖ´Ù.

¹ÙÀÌÆ®ÄÚµå °Ë»ç±â´Â ÀÎÅÍÇÁ¸®ÅÍÀÇ ÆÛÆ÷¸Õ½º¸¦ Çâ»ó½Ã۱⵵ ÇÑ´Ù. °¢ ÀÎÅÍÇÁ¸®Æ®µÈ ¸í·É¾î¿¡ ´ëÇØ¼­ ¼öÇàµÇ¾î¾ß ÇßÀ» ½ÇÇà½Ã°£ È®ÀÎÀ» ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ¿ÀÈ÷·Á ÀÎÅÍÇÁ¸®ÅÍ´Â ÀÌ·¯ÇÑ È®ÀÎÀÌ ÀÌ¹Ì ¼öÇàµÇ¾ú´Ù°í °£ÁÖÇÒ ¼ö ÀÖ´Ù. °¢°¢¿¡ ´ëÇÑ È®ÀÎÀº ±×´ÙÁö Å©°Ô ºÎ´ãµÇÁö ¾ÊÀ» ¼ö À־ °¢ ¹ÙÀÌÆ®ÄÚµå ¸í·É¾îÀÇ ½ÇÇà¿¡ ´ëÇÑ ¸î°¡Áö ±â°è ¸í·É¾î°¡ ¾ø¾îÁú ¼ö ÀÖ´Ù.

¿¹¸¦ µé¾î ÀÎÅÍÇÁ¸®ÅÍ´Â Äڵ尡 ´ÙÀ½ Á¦ÇѵéÀ» °¡´ÉÇÑÇÑ ÁؼöÇÑ´Ù´Â °ÍÀ» °í·ÁÇØ¼­ ÀÛµ¿ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

°Ë»ç±â´Â ÀÚ¹ÙÄÄÆÄÀÏ·¯¿Í´Â µ¶¸³ÀûÀÌ´Ù. ÇöÀçÀÇ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ý¼ºµÇ´Â ¸ðµç Äڵ带 üũÇÏÁö¸¸ °Ë»ç±â´Â ÇöÀçÀÇ ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÒ ¼ö ¾ø´Â ÄÚµåµéµµ È®ÀÎÇÑ´Ù. ±¸Á¶ÀûÀÎ ±âÁØ¿¡ ¸¸Á·ÇÏ´Â ¹ÙÀÌÆ®ÄÚµåÀÇ ¾î¶°ÇÑ Á¶ÇÕÀÌ¶óµµ °Ë»ç±â¿¡ ÀÇÇØ È®À뵃 °ÍÀÌ´Ù.

´Ù¸¥ ¾ð¾îµéµµ ÀÚ¹ÙÀÇ Å¬·¡½ºÆ÷¸ËÀ¸·Î ÄÄÆÄÀ쵃 ¼ö ÀÖ´Ù. ¹ÙÀÌÆ®ÄÚµå°Ë»ç±â´Â ÀÚ¹Ù¾ð¾î¿¡¸¸ Á¦ÇѵÇÁö ¾ÊÀ½À¸·Î½á »ç¿ëÀÚ°¡ ÆÄÀ̾î¿ù °Ç³Ê¿¡¼­ ¾î¶°ÇÑ Äڵ嵵 ¾ÈÀüÇÏ°Ô ºÒ·¯µéÀÏ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù.

Ŭ·¡½ºÆÄÀÏ Æ÷¸Ë

°¢ Àڹ٠Ŭ·¡½ºÆÄÀÏÀº ºÐÇÒµÈ »óÅ·Π³×Æ®¿öÅ©¸¦ ÅëÇØ Àü¼ÛµÇ¾îÁø´Ù. Ŭ·¡½ºÆÄÀÏÀº °£´ÜÈ÷ º¸¸é 8ºñÆ® µ¥ÀÌÅÍÀÇ È帧ÀÌ´Ù. ¸ðµç 16ºñÆ®³ª 32ºñÆ®ÀÇ °ªµéÀº °¢±â µÑ ȤÀº ³ÝÀÇ 8ºñÆ® ¹ÙÀÌÆ®µé·Î º¯ÇüµÈ »óÅ·ΠÀÐÇôÁø ÈÄ ¸¶Áö¸·¿¡ °¡¼­ ÇϳªÀÇ Àüü·Î ÇÕÃÄÁø´Ù.

±âº» Æ÷¸Ë

ÇϳªÀÇ Å¬·¡½ºÆÄÀÏÀº ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù:

»ó¼ö Ç®Àº ¿©·¯°¡Áö µ¥ÀÌÅÍÀÇ »óÀÌÇÑ Á¶ÇÕÀÌ´Ù. »ó¼öÇ®ÀÇ °¢ µ¥ÀÌÅÍ´Â ´ÙÀ½ Áß Çϳª°¡ µÉ ¼ö ÀÖ´Ù:

Ŭ·¡½ºÆÄÀÏÀÇ ´Ù¸¥ ¾î¶² ºÎºÐµµ ½ºÆ®¸µ, Ŭ·¡½º, ÇÊµå ¶Ç´Â ¸Þ½îµå¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¸¸µé¾î³»Áö ¾Ê´Â´Ù. ÀÌ·¯ÇÑ ¸ðµç ·¹ÆÛ·±½º´Â »ó¼öÇ®ÀÇ À妽ºµé¿¡ ÀÇÇØ¼­ ÀÌ·ç¾îÁø´Ù.

Ŭ·¡½ºÀÇ °¢ Çʵå¿Í ¸Þ½îµå¿¡ ´ëÇØ¼­ Ŭ·¡½ºÆÄÀÏÀÇ ¹ÙÀÌÆ®´Â Çʵ峪 ¸Þ½îµåÀÇ À̸§°ú ±× À¯ÇüÀ» ³ªÅ¸³½´Ù. Çʵ峪 ¸Þ½îµåÀÇ Å¸ÀÔÀº ½Ã±×³Êó(signature)¶ó°í ºÒ¸®´Â ½ºÆ®¸µ¿¡ ÀÇÇØ¼­ ³ªÅ¸³»¾îÁø´Ù. Çʵå´Â ÇʵåÀÇ ÃʱⰪÀ» ¾Ë·ÁÁÖ´Â Ãß°¡ÀûÀÎ ¼Ó¼ºÀ» °¡Áú ¼ö ÀÖ´Ù. ¸Þ½îµå´Â ±× ¸Þ½îµå¸¦ ½ÇÇà½Ãų Äڵ带 ¾Ë·ÁÁÖ´Â Ãß°¡ÀûÀÎ ¼Ó¼ºÀ» °¡Áú ¼ö ÀÖ´Ù.

½ÇÁ¦·Î´Â ¸Þ½îµå°¡ ÁßøµÈ ÄÚµå ¼Ó¼ºÀ» °¡Áú ¼ö ÀÖ´Ù. ÄÚµå¶ó´Â ¼Ó¼ºÀº ÀÎÅÍÇÁ¸®Å͸¦ ÅëÇØ ½ÇÇàµÉ ¹ÙÀÌÆ®ÄÚµå¶ó´Â °ÍÀ» ³ªÅ¸³½´Ù. ¸Þ½îµå´Â ¶ÇÇÑ ±× ¸Þ½îµåÀÇ ±â°èÄڵ带 ±¸ÇöÇÑ SPARC-CODE³ª 386-CODE¿Í °°Àº ¼Ó¼ºÀ» °¡Áú ¼ö ÀÖ´Ù. ÇÖÀÚ¹Ù ºê¶ó¿ìÀú´Â ÀÌ ¸Ó½ÅÄڵ尡 ±¸Á¶ÀûÀ¸·Î ¾ÈÀüÇÑ °ÍÀÎÁö ÆÇº°ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ½Å·ÚÇÒ ¼ö ¾ø´Â Ãâó¿¡¼­ ³ª¿Â ¸ðµç ¸Þ½îµåÀÇ ±â°è¸ðµå¸¦ ¹«½ÃÇÑ´Ù.

ÇÖÀÚ¹Ù ºê¶ó¿ìÀú¿¡¼­´Â ÇöÀç ³×Æ®¿öÅ©¸¦ ÅëÇØ¼­ Àü¼ÛµÇ´Â ¾î¶°ÇÑ Å¬·¡½ºÆÄÀϵµ ½Å·ÚÇÒ ¼ö ¾ø´Ù°í °£ÁÖÇÑ´Ù. ÇÖÀÚ¹Ù ºê¶ó¿ìÀú´Â ·ÎÄà Ŭ·¡½º ÆÄÀÏ¿¡¼­ ºÒ·¯µé¿©Áø ±â°èÄڵ常À» ½ÇÇàÇÑ´Ù. ¾î·°Å³ª Ŭ·¡½ºÆ÷¸ËÀº ÀÛ¼ºÀÚ°¡ Ŭ·¡½ºÆÄÀÏ¿¡ ÀüÀÚ ¼­¸íÀ» ³²±æ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¾ÕÀ¸·ÎÀÇ ºê¶ó¿ìÀúµéÀº ½Å·ÚÇÒ ¼ö ÀÖ´Â Ãâó¿¡¼­ ³ª¿Â ÀüÀÚ ¼­¸íµÈ Äڵ带 Á» ´õ ½Å·ÚÇÏ°Ô µÉ °ÍÀÌ´Ù.

¹ÙÀÌÆ®ÄÚµå¿Í °¡»ó±â°è

ÄÚµå ¼Ó¼ºÀº °¡»ó±â°èÀÇ ±â°è¾ð¾î¿¡¼­ ¸Þ½îµå¸¦ ½ÇÇà½Ã۱â À§ÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. °¢ ¸Þ½îµå¿¡ ´ëÇÑ Á¤º¸´Â ´ÙÀ½À» Æ÷ÇÔÇÑ´Ù:

ÀÚ¹Ù °¡»ó±â°è´Â ¿©¼¸°¡ÁöÀÇ ¿ø½Ã À¯ÇüÀ» Á¤ÀÇÇÑ´Ù:

ÀÚ¹Ù °¡»ó±â°è´Â ¶ÇÇÑ ¸î°¡ÁöÀÇ ¹è¿­ À¯ÇüÀ» Á¤ÀÇÇÑ´Ù: ÀÌ À¯ÇüµéÀº integers, longs, single floats, double floats, handles, booleans, bytes (8-bit integers), shorts (16-bit integers) ±×¸®°í Unicode ¹®ÀÚµéÀÇ ¹è¿­À» Æ÷ÇÔÇÑ´Ù. ÇÚµéÀÇ ¹è¿­Àº ±× ¹è¿­ÀÌ ÀâÀ» ¼ö ÀÖ´Â °´Ã¼ÀÇ Å¬·¡½º¸¦ Ç¥½ÃÇÏ´Â Ãß°¡ÀûÀÎ À¯ÇüÇʵ带 °®°í ÀÖ´Ù.

°¢ ¸Þ½îµå Ȱ¼ºÈ­´Â ±¸ºÐµÈ Expression-Evaluation ½ºÅðú ·ÎÄà ·¹Áö½ºÅÍÀÇ ¼¼Æ®¸¦ °®°í ÀÖ´Ù. °¢ ·¹Áö½ºÅÍ¿Í °¢ ½ºÅà À§Ä¡´Â ÇϳªÀÇ integer, single float, handle ¶Ç´Â return address¸¦ ÀâÀ» ¼ö ÀÖ¾î¾ß ÇÑ´Ù. longs¿Í double floats´Â µÎ ¿¬¼ÓÀûÀÎ ½ºÅà À§Ä¡³ª µÎ ¿¬¼ÓÀûÀÎ ·¹Áö½ºÅÍ¿¡ ¸Â¾Æ µé¾î¾ß ÇÑ´Ù. °¡»ó±â°è ¸í·É¾îµé("opcodes")Àº ³·Àº ¼ýÀÚ°¡ ¸Å°ÜÁø ·¹Áö½ºÅÍÀÇ À妽º¸¦ »ç¿ëÇϸ鼭 ·¹Áö½ºÅÍ¿¡¼­ longs¿Í double floats¸¦ °¡¸®ÄÑ¾ß ÇÑ´Ù.

½ºÅðú ·¹Áö½ºÅÍÀÇ °´Ã¼µéÀº (¹Ýµå½Ã) ÅÂ±×µÈ °ÍÀº ¾Æ´Ï´Ù. °¡»ó±â°è ¸í·É¾î Á¶ÇÕÀº ¿ÉÄÚµåµéÀÌ ´Ù¸¥ ¿ø½Ã µ¥ÀÌŸ À¯Çü¿¡¼­ ÀÛµ¿Çϵµ·Ï ÇÑ´Ù. ¿¹¸¦ µé¾î ineg, fneg, lneg ±×¸®°í dnegÀÇ °¢ negate´Â ±× ½ºÅÃÀÇ °¡Àå À§ÂÊ¿¡ ÀÖ´Â ¾ÆÀÌÅÛµéÀÌÁö¸¸ °¢ ½ºÅÃÀÇ °¡Àå À§ÂÊÀÇ ¾ÆÀÌÅÛÀÌ °¢°¢ ¼ø¼­´ë·Î integer, single float, long ¶Ç´Â double floatÀ̶ó°í ¹Þ¾ÆµéÀδÙ.

¹ÙÀÌÆ®ÄÚµå ¸í·É¾îµéÀº ¸î°¡Áö ¹üÁÖ·Î ³ª´· ¼ö ÀÖ´Ù:

°¢ ¹ÙÀÌÆ®ÄÚµå´Â 0 ¶Ç´Â Ãß°¡ÀûÀÎ ¿ÀÆÛ·£µå Á¤º¸ÀÇ ¹ÙÀÌÆ®°¡ µÚ¿¡ µû¶ó ¿À´Â 1¹ÙÀÌÆ® ¿ÉÄÚµå·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. µÎ °¡ÁöÀÇ "Å×ÀÌºí °Ë»ö" ¸í·É¾î ¿¡ ´ëÇÑ ¿¹¿Ü¸¦ Á¦¿ÜÇÏ°í¼­´Â ¸ðµç ¸í·É¾îµéÀº ¿ÉÄڵ忡 ±Ù°ÅÇÑ Á¤ÇØÁø ±æÀ̸¦ °®°Ô µÈ´Ù.

°Ë»ç ÇÁ·Î¼¼½º(The Verification Process)

°Ë»ç±â´Â 4°¡ÁöÀÇ °úÁ¤À» ÅëÇØ ÀÛµ¿ÇÑ´Ù.

°úÁ¤ 1

ù¹øÂ° °úÁ¤Àº °¡Àå °£´ÜÇÑ °úÁ¤ÀÌ´Ù. ÀÌ °úÁ¤Àº ±× Ŭ·¡½º°¡ ÀÎÅÍÇÁ¸®ÅͷΠóÀ½ ÀÐÇôÁ³À» ¶§ ÀϾ´Ù.

ÀÌ °úÁ¤Àº Ŭ·¡½ºÆÄÀÏÀÌ Å¬·¡½ºÆÄÀÏÀÇ Æ÷¸ËÀ» °®Ãß°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ù¹øÂ° ¸î ¹ÙÀÌÆ®°¡ ¿Ã¹Ù¸¥ ¸ÅÁ÷ ³Ñ¹ö°ªÀ» °®°í ÀÖ¾î¾ß ÇÑ´Ù. ¸ðµç ÀÎ½ÄµÈ ¼Ó¼ºÀÌ ÀûÀýÇÑ ±æÀÌÀ̾î¾ß ÇÑ´Ù. Ŭ·¡½ºÆÄÀÏÀº Àß·ÁÁö°Å³ª ³¡ ºÎºÐ¿¡ Ãß°¡ÀûÀÎ ¹ÙÀÌÆ®°¡ À־´Â ¾È µÈ´Ù. »ó¼öÇ®Àº ¾Ë¾Æº¼ ¼ö ¾ø´Â Á¤º¸¸¦ °®°í ÀÖ¾î¾ß ¾È µÈ´Ù.

°úÁ¤ 2

µÎ¹øÂ° °úÁ¤¿¡¼­´Â °Ë»ç±â°¡ Ŭ·¡½ºÆÄÀÏÀÇ Æ÷¸Ë¿¡ ´ëÇØ¼­ Á» ´õ ±íÀÌ °Ë»ç¸¦ ÇØ º»´Ù. °Ë»ç±â´Â ¹ÙÀÌÆ®Äڵ带 °Ë»çÇÏÁö ¾Ê°í ¼öÇàÇÒ ¼öÀÖ´Â ¸ðµç °Ë»ç¸¦ ¼öÇàÇÑ´Ù. °úÁ¤ 2¿¡¼­ ã¾ÆÁö´Â ¿¡·¯µéÀº ´ÙÀ½ÀÇ °ÍµéÀÌ´Ù:

  1. Ŭ·¡½º finalÀÌ ¼­ºêŬ·¡½ºµÇÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇϰí, ¸Þ½îµå finalÀÌ µ¤¾î¾º¾îÁöÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇÑ´Ù.
  2. Ŭ·¡½º Object ÀÌ ¿ÜÀÇ ¸ðµç Ŭ·¡½º°¡ ¼öÆÛŬ·¡½º¸¦ °®°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.
  3. »ó¼öÇ®ÀÌ Á¤ÇØÁø Á¦ÇÑÀ» ¸¸Á·ÇÏ´ÂÁö È®ÀÎÇÑ´Ù. ¿¹¸¦ µé¾î »ó¼öÇ®¿¡¼­ Ŭ·¡½º ·¹ÆÛ·±½º´Â »ó¼öÇ®ÀÇ À¯´ÏÄÚµå ¹®ÀÚ¿­ ·¹ÆÛ·±½º¸¦ °¡¸®Å°´Â Çʵ带 ¹Ýµå½Ã °®°í ÀÖ¾î¾ß ÇÑ´Ù.
  4. »ó¼öÇ®ÀÇ ¸ðµç ÇÊµå ·¹ÆÛ·±½º¿Í ¸Þ½îµå ¸ÞÆÛ·±½º°¡ ±ÔÄ¢¿¡ ¸Â´Â À̸§À» °®°í ÀÖ´ÂÁö, ±ÔÄ¢¿¡ ¸Â´Â Ŭ·¡½º¸¦ °®°íÀÖ´ÂÁö, ±×¸®°í ±ÔÄ¢¿¡ ¸Â´Â À¯Çü ½Ã±×³ÊÃĸ¦ °®°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.

Çʵå¿Í ¸Þ½îµå ·¹ÆÛ·±½ºµéÀÌ °Ë»çµÉ ¶§¿¡ ÀÌ °úÁ¤Àº ÁÖ¾îÁø Çʵå¿Í ¸Þ½îµå°¡ ½ÇÁ¦·Î ÁÖ¾îÁø Ŭ·¡½º¿¡ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ÀØÀ¸¸é ¾ÈµÈ´Ù; ÀÌ °úÁ¤¿¡¼­´Â À¯Çü ½Ã±×³ÊÃİ¡ ½ÇÁ¦ Á¸ÀçÇϴ Ŭ·¡½º¸¦ °¡¸®Å°´ÂÁö ¿©ºÎµµ È®ÀÎÇÏÁö ¾Ê´Â´Ù. ±×º¸´Ù´Â ±×Àú ±× ½Ã±×³ÊÃİ¡ ±ÔÄ¢¿¡ ¸Â´Â ½Ã±×³Êó·Î "º¸¿©¾ß" ÇÏ´Â °ÍÀÌ´Ù. Á» ´õ ÀÚ¼¼È÷ È®ÀÎÇÏ´Â °ÍÀº °úÁ¤ 3À̳ª 4¿¡¼­ ÀÌ·ç¾îÁø´Ù.

°úÁ¤ 3

ÀÌ °úÁ¤Àº Ŭ·¡½º °Ë»ç¿¡¼­ °¡Àå º¹ÀâÇÑ °úÁ¤ÀÌ´Ù. °¢ ¸Þ½îµå¿¡ ´ëÇÑ ¹ÙÀÌÆ®ÄÚµåµéÀÌ °Ë»çµÈ´Ù. µ¥ÀÌŸÈ帧 ºÐ¼®ÀÌ °¢ ¸Þ½îµå¿¡ ´ëÇØ¼­ ¼öÇàµÈ´Ù. ÇÁ·Î±×·¥ »óÀÇ ÁÖ¾îÁø ¾î¶°ÇÑ À§Ä¡¿¡¼­, ±× ÁöÁ¡À¸·Î µµ´ÞÇϱâ À§ÇØ ¾î¶°ÇÑ ÄÚµå°æ·Î°¡ ÀâÇôÁöµç °Ë»ç±â´Â Ç×»ó ´ÙÀ½ÀÇ Ç׸ñµéÀ» È®ÀÎÇÑ´Ù:

ÀÌ °úÁ¤¿¡ ´ëÇÑ Á» ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ¹ÙÀÌÆ®ÄÚµå °Ë»ç±â(The Bytecode Verifier)¼½¼Ç¿¡ ³ª¿Í ÀÖ´Ù.

°úÁ¤ 4

È¿À²À» ³ôÀ̱â À§Çؼ­ °úÁ¤ 3¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ¾ú´ø ¸î°¡Áö °Ë»çµéÀÌ ½ÇÁ¦·Î ±× Äڵ尡 ½ÇÇàµÉ ¶§±îÁö ¹Ì·ç¾îÁø´Ù. °Ë»ç±âÀÇ °úÁ¤ 3Àº ±× Ŭ·¡½ºÆÄÀÏÀÌ ¹Ýµå½Ã ·ÎµùµÇ¾î¾ß µÉ ¶§±îÁö Ŭ·¡½ºÆÄÀÏÀ» ·ÎµùÇÏÁö ¾Ê´Â´Ù.

¿¹¸¦ µé¾î ¸¸ÀÏ ¾î´À ¸Þ½îµå°¡ À¯Çü foobarTypeÀÇ °´Ã¼¸¦ µ¹·ÁÁÖ´Â ¶Ç´Ù¸¥ ¸Þ½îµå¸¦ È£ÃâÇÏ°í ±× °´Ã¼°¡ °°Àº À¯ÇüÀÇ Çʵå·Î °ð¹Ù·Î ÇÒ´çµÈ´Ù¸é °Ë»ç±â´Â À¯Çü foobarTypeÀÌ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÏ´Â ¼ö°í¸¦ ÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ±× °´Ã¼°¡ À¯Çü anotherTypeÀÇ Çʵå·Î ÇÒ´çµÈ´Ù¸é foobarType°¡ anotherTypeÀÇ ¼­ºêŬ·¡½ºÀÎÁö¸¦ È®ÀÎÇϱâ À§ÇÏ¿© foobarType¿ÍanotherType µÑ ´ÙÀÇ Á¤ÀÇ(definition)°¡ ·ÎµåµÇ¾î¾ß ÇÑ´Ù.

¾î¶² Ŭ·¡½º¸¦ ·¹ÆÛ·±½ºÇÏ´Â ¸í·É¾î°¡ óÀ½À¸·Î ½ÇÇàµÇ¸é °Ë»ç±â´Â ´ÙÀ½ÀÇ °ÍµéÀ» ÇÑ´Ù:

¸í·É¾î°¡ óÀ½À¸·Î ¸Þ½îµå¸¦ È£ÃâÇϰųª Çʵ带 ¾ï¼¼½ºÇϰųª º¯°æÇÏ¸é °Ë»ç±â´Â ´ÙÀ½ÀÇ °ÍµéÀ» ÇÑ´Ù:

°Ë»ç±âÀÇ ÀÌ °úÁ¤Àº ½ºÅà °´Ã¼ÀÇ À¯ÇüÀº Á¶»çÇÒ Çʿ䰡 ¾ø´Ù. ±× Á¶»ç´Â °úÁ¤ 3¿¡¼­ ÀÌ¹Ì ¼öÇàµÇ¾ú´Ù.

Á¶»ç°¡ ¼öÇàµÈ ÀÌÈÄ¿¡ ¹ÙÀÌÆ®ÄÚµå ½ºÆ®¸²ÀÇ ¸í·É¾î´Â ´Ù¸¥ ÇüÅÂÀÇ ¸í·É¾î·Î ´ëÄ¡µÈ´Ù. ¿¹¸¦ µé¾î ¿ÉÄÚµå new´Â new_quick·Î ´ëÄ¡µÈ´Ù. ÀÌ ¶Ç´Ù¸¥ ÇüÅÂÀÇ ¸í·É¾î´Â ÀÌ ¸í·É¾î¿¡ ´ëÇÑ Á¶»ç°¡ ÀÌ¹Ì ¼öÇàµÇ¾ú°í ´Ù½Ã Á¶»çÇÒ Çʿ䰡 ¾ø´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. °úÁ¤ 3¿¡¼­ ÀÌ _quick¸í·É¾î°¡ ³ªÅ¸³ª´Â °ÍÀº À߸øµÈ °ÍÀÌ´Ù.

¹ÙÀÌÆ®ÄÚµå °Ë»ç±â(The Bytecode Verifier)

À§¿¡¼­ ³ªÅ¸³­ ¹Ù¿Í °°ÀÌ ¹ÙÀÌÆ®ÄÚµå °Ë»ç±â(bytecode verifier)ÀÇ °úÁ¤ 3Àº Ŭ·¡½º°Ë»ç¿¡¼­ °¡Àå º¹ÀâÇÑ °úÁ¤ÀÌ´Ù.

ù°·Î, °¡»ó±â°è ¸í·É¾î¸¦ ÀÌ·ç°í ÀÖ´Â ¹ÙÀÌÆ®µéÀº ¸í·É¾îÀÇ ³ª¿­·Î Âɰ³¾îÁö°í °¢ ¸í·É¾îµé¿¡ ´ëÇÑ ½ÃÀÛ ¿ÀÇÁ¼ÂÀº ºñÆ®Å×ÀÌºí¿¡ º¸°üµÈ´Ù. ±× ÈÄ¿¡ °Ë»ç±â´Â µÎ¹øÂ°·Î ¹ÙÀÌÆ®µé·Î µé¾î°¡°í ¸í·É¾îµéÀ» ºÐ»êÇÑ´Ù. ÀÌ °úÁ¤¿¡¼­ ¸í·É¾îµéÀº ±¸Á¶·Î ¹Ù²ï´Ù. °¢ ¸í·É¾îµé¿¡ ´ëÇØ Àμö°¡ Á¸ÀçÇÑ´Ù¸é ±× ÀμöµéÀ» ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.

°¢ ¸í·É¾î¿¡ ´ëÇÏ¿© °Ë»ç±â´Â ±× ¸í·É¾î¸¦ ½ÇÇà½Ã۱â Àü¿¡ ½ºÅÃÀÇ °ª°ú ·¹Áö½ºÅÍÀÇ °ª¿¡ ´ëÇØ¼­ °è¼ÓÇÏ¿© ÃßÀûÀ» ÇÑ´Ù. °¢ ½ºÅÿ¡ ´ëÇÏ¿© °Ë»ç±â´Â ½ºÅÃÀÇ ±æÀÌ¿Í ½ºÅÿ¡ ÀÖ´Â °¢ ¿ø¼ÒµéÀÇ À¯ÇüÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. °¢ ·¹Áö½ºÅÍ¿¡ ´ëÇÏ¿© °Ë»ç±â´Â ·¹Áö½ºÅÍÀÇ °ªÀÇ À¯ÇüÀ̳ª ·¹Áö½ºÅͰ¡ À߸øµÈ °ªÀ» °®°í ÀÖÁö´Â ¾ÊÀºÁö ¾Ë¾Æ¾ß ÇÑ´Ù. ½ºÅÃÀÇ °ªÀÇ À¯ÇüÀ» °áÁ¤ÇÒ ¶§¿¡ ¿©·¯°¡Áö º¸ÅëÀÇ Á¤¼ö À¯Çü(¿¹¸¦ µé¾î byte, short, charÀ» ¹ÙÀÌÆ®ÄÚµå °Ë»ç±â°¡ ±¸ºÐÇÒ ÇÊ¿ä´Â ¾ø´Ù.

´ÙÀ½À¸·Î µ¥ÀÌÅÍÈ帧 ºÐ¼®±â°¡ ÃʱâÈ­µÇ¾îÁø´Ù. ù¹øÂ° ¸í·É¾î¿¡ ´ëÇØ¼­ ´õ ³·Àº ¹øÈ£°¡ ¸Å°ÜÁø ·¹Áö½ºÅͰ¡ ±× ¸Þ½îµåÀÇ À¯Çü ½Ã±×³Êó¿¡¼­ ³ªÅ¸³­ À¯ÇüÀ» ÀúÀåÇÑ´Ù;±× ½ºÅÃÀº ºñ¾îÀÖ´Ù. ¸ðµç ´Ù¸¥ ·¹Áö½ºÅ͵éÀº À߸øµÈ °ªÀ» °®°í ÀÖ´Ù. ¸ðµç ´Ù¸¥ ¸í·É¾îµé¿¡ ´ëÇØ¼­ ±× ¸í·É¾î´Â ¾ÆÁ÷ °Ë»çµÇÁö ¾Ê¾Ò´Ù°í Ç¥½ÃÇÑ´Ù; ¸í·É¾îÀÇ ½ºÅÃÀ̳ª ·¹Áö½ºÅÍ¿¡´Â ¾ÆÁ÷ ¾Æ¹«·± Á¤º¸µµ ¾ø´Ù.

¸¶Áö¸·À¸·Î µ¥ÀÌÅÍÈ帧 ºÐ¼®±â°¡ ½ÇÇàµÈ´Ù. °¢ ¸í·É¾îµé¿¡ ´ëÇØ¼­ ±× ¸í·É¾î°¡ °Ë»çµÉ Çʿ䰡 ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ ¾Ë¸®´Â "changed"¶ó´Â ºñÆ®°¡ ÀÖ´Ù. óÀ½¿¡´Â ÀÌ "changed" ºñÆ®´Â ù¹øÂ° ¸í·É¾î¿¡¸¸ ÄÑÁ® ÀÖ´Ù. µ¥ÀÌÅÍÈ帧 ºÐ¼®±â´Â ´ÙÀ½ÀÇ ·çÇÁ¸¦ ½ÇÇàÇÑ´Ù:

  1. ±× "changed" ºñÆ®°¡ ÄÑÁ® ÀÖ´Â °¡»ó ±â°è ¸í·É¾î¸¦ ã´Â´Ù. ¸¸ÀÏ "changed"ºñÆ®°¡ ÄÑÁ® ÀÖ´Â ¸í·É¾î°¡ Çϳªµµ ¾ø´Ù¸é ±× ¸Þ½îµå´Â ¼º°øÀûÀ¸·Î °Ë»çµÈ °ÍÀÌ´Ù. "changed"ºñÆ®¸¦ ²ö´Ù.
  2. ±× ½ºÅðú ·¹Áö½ºÅÍ¿¡ ´ëÇØ¼­ ÀÌ ¸í·É¾îÀÇ ¿µÇâÀ» ¿¡¹Ä·¹ÀÌÆ®ÇÑ´Ù:
    • ¸í·É¾î°¡ ½ºÅÃÀÇ °ªÀ» »ç¿ëÇÑ´Ù¸é, ½ºÅÿ¡ ÃæºÐÇÑ ¿ø¼Ò°¡ ÀÖ´ÂÁö, ½ºÅÃÀÇ °¡Àå À§ÀÇ ¿ø¼Ò(µé)ÀÌ ÀûÀýÇÑ À¯ÇüÀÎÁö È®ÀÎÇÑ´Ù. ±×·¸Áö ¾Ê´Ù¸é ½ÇÆÐÇÑ´Ù.
    • ¸í·É¾î°¡ ·¹Áö½ºÅ͸¦ »ç¿ëÇÑ´Ù¸é, ¼±ÅÃµÈ ·¹Áö½ºÅͰ¡ ÀûÀýÇÑ À¯ÇüÀÇ °ªÀ» °®°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ±×·¸Áö ¾Ê´Ù¸é ½ÇÆÐÇÑ´Ù.
    • ¸í·É¾î°¡ ½ºÅÿ¡ °ªÀ» Ãß°¡ÇÑ´Ù¸é, ±× ¾Ë·ÁÁø À¯ÇüÀ» ½ºÅÃÀÇ °¡Àå óÀ½ ºÎºÐ¿¡ Ãß°¡ÇÑ´Ù. ½ºÅÿ¡ »õ·Î¿î ¿ø¼ÒÀ» À§ÇÑ ÃæºÐÇÑ °ø°£ÀÌ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.
    • ¸í·É¾î°¡ ·¹Áö½ºÅ͸¦ º¯°æÇÑ´Ù¸é ±× ·¹Áö½ºÅÍ´Â »õ·Î¿î À¯ÇüÀ» °®´Â´Ù°í Ç¥½ÃÇÑ´Ù.
  3. ÀÌ ¸í·É¾î¸¦ µÚµû¸£´Â °¡»ó ±â°èÀÇ ¸í·É¾îµéÀ» °áÁ¤ÇÑ´Ù. µÚµû¸£´Â ¸í·É¾îµéÀº ´ÙÀ½ Áß ÇÑ °¡ÁöÀÌ´Ù:
    • ÇöÀçÀÇ ¸í·É¾î°¡ Á¶°Ç¾ø´Â goto, return ¶Ç´Â throw goto, return¶Ç´Â throw°¡ ¾Æ´Ï¶ó¸é ±× ´ÙÀ½ ¸í·É¾îÀÌ´Ù. ¸¸ÀÏ ¸¶Áö¸· ¸í·É¾î¸¦ "fall off"ÇÏ°Ô µÈ´Ù¸é ³¡³½´Ù.
    • Á¶°ÇÀÌ ÀÖ´Â ¶Ç´Â Á¶°ÇÀÌ ¾ø´Â °¡ÁöÀÇ ³¡.
    • ÀÌ ¸í·É¾î¿¡ ´ëÇÑ ¸ðµç ¿¹¿Ü Çڵ鷯.
  4. ÇöÀç ¸í·É¾îÀÇ ¸¶Áö¸·¿¡ ÀÖ´Â ½ºÅðú ·¹Áö½ºÅÍÀÇ »óŸ¦ °¢ µÚµû¸£´Â ¸í·É¾îµé¿¡°Ô ÇÕÄ£´Ù. ¿¹¿ÜÇڵ鷯ÀÇ °æ¿ì(2c)¿¡´Â ¿¹¿ÜÇڵ鷯 Á¤º¸¿¡ ³ªÅ¸³ª ÀÖ´Â ¿¹¿Ü À¯ÇüÀÇ ÇϳªÀÇ °´Ã¼¸¦ °®µµ·Ï ½ºÅÃÀ» º¯°æÇÑ´Ù.
    • ¸¸ÀÏ À̹øÀÌ µÚµû¸£´Â ¸í·É¾î¸¦ ù¹øÂ°·Î °Ë»çÇÏ´Â °ÍÀ̶ó¸é 2¹øÂ° °úÁ¤°ú 3¹øÂ° °úÁ¤¿¡¼­ °è»êµÈ ½ºÅðú ·¹Áö½ºÅÍÀÇ °©ÀÌ µÚµû¸£´Â ¸í·É¾î¸¦ ½ÇÇàÇϱâ ÀÌÀü¿¡ ½ºÅðú ·¹Áö½ºÅÍÀÇ »óŶó´Â °ÍÀ» Ç¥½ÃÇÑ´Ù; µÚµû¸£´Â ¸í·É¾îÀÇ "changed"ºñÆ®¸¦ ÄÒ´Ù.
    • ±× ¸í·É¾î°¡ ÀÌÀü¿¡ °Ë»çµÇ¾ú´Ù¸é, 2¹øÂ° °úÁ¤°ú 3¹øÂ° °úÁ¤¿¡¼­ °è»êµÈ ½ºÅðú ·¹Áö½ºÅÍÀÇ °ªÀ» ÀÌ¹Ì ±× °÷¿¡ ÀÖ´ø °ªÀ¸·Î Àü¼ÛÇÑ´Ù; ¸¸ÀÏ ¾î¶² º¯°æÀÌ ÀÖ¾ú´Ù¸é "changed"ºñÆ®¸¦ ÄÒ´Ù.
  5. ù¹øÂ° °úÁ¤À¸·Î °£´Ù.

    µÎ ½ºÅÃÀ» ÇÕÄ¡·Á¸é °¢ ½ºÅÃÀÇ ¿ø¼ÒÀÇ ¼ö°¡ ¶È°°¾Æ¾ß ÇÑ´Ù. ¸¸ÀÏ °°Áö ¾Ê´Ù¸é ½ÇÆÐ°¡ Ç¥½ÃµÈ´Ù. µÎ ½ºÅÃÀÇ ´ëĪµÇ´Â Àå¼Ò¿¡ ¼­·Î ´Ù¸¥ À¯ÇüÀÇ ÇÚµéÀÌ ³ªÅ¸³ªÁö ¾Ê´Â´Ù¸é µÎ ½ºÅÃÀº ¶È°°¾Æ¾ß ÇÑ´Ù. ÀÌ·± °æ¿ì¿¡ ¸ÓÁöµÈ ½ºÅÃÀº µÎ ÇÚµé À¯ÇüÀÇ °øÅë Á¶»óÀ» °®°Ô µÈ´Ù.

    µÎ ·¹Áö½ºÅÍ »óŸ¦ ÇÕÄ¡·Á¸é µÎ ·¹Áö½ºÅ͸¦ ºñ±³ÇÑ´Ù. µÎ À¯ÇüÀÌ ¶È°°Áö ¾Ê°í °¢°¢ÀÌ ÇÚµéÀ» °®°í ÀÖÁö ¾Ê´Ù¸é ·¹Áö½ºÅͰ¡ ¹ÌÁöÀÇ(±×¸®°í »ç¿ëÇÒ ¼ö ¾ø´Â) °ªÀ» °®°í ÀÖ´Ù°í Ç¥½ÃÇÑ´Ù. ÇÚµé À¯ÇüÀ» ±¸ºÐÇϱâ À§Çؼ­ ¸ÓÁöµÈ »óÅ´ µÎ À¯ÇüÀÇ °øÅë Á¶»óÀ» °®°Ô µÈ´Ù.

    ¸¸ÀÏ µ¥ÀÌÅÍÈ帧 ºÐ¼®±â°¡ ¾î¶² ½ÇÆÐ¸¦ º¸°íÇÏÁö ¾Ê°í ¸Þ½îµå¿¡¼­ ½ÇÇàµÈ´Ù¸é ±× ¸Þ½îµå´Â Ŭ·¡½ºÆÄÀÏ ºÐ¼®±âÀÇ °úÁ¤ 3¿¡ ÀÇÇØ ¼º°øÀûÀ¸·Î °Ë»çµÈ °ÍÀÌ´Ù.

    ¹ÙÀÌÆ®ÄÚµåÀÇ ÀûÇÕ¼ºÀ» üũÇÏ´Â °Í°ú ÇÔ²², ClassLoader´Â ´Ù¿î·ÎµåµÈ ÄÚµåÀÇ ³×ÀÓ½ºÆäÀ̽º¸¦ »ý¼ºÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

3.3. Security Manager

ÇöÀçÀÇ ÀÚ¹Ù ¹öÁ¯¿¡¼­´Â, SecurityManager´Â »ó¼¼È÷ ¾ð±ÞµÇ¾î ÀÖÁö ¾Ê´Ù. ±×·³¿¡µµ, ÀÚ¹Ù º£Å¸ ¹öÁ¯°ú ÇÔ²² ¹èÆ÷µÈ °Ë»çÄڵ忡¼­ ±×¸®°í ¾î¶°ÇÑ ¹®¼­°¡ Á¸ÀçÇÏ´ÂÁö ÀÐÀ½À¸·Î¼­, SecurityManagerÀÇ °³¹ß ¸ñÀû¿¡ ´ëÇØ¼­ Ãß·ÐÇÒ ¼ö ÀÖ´Ù. SecurityManager´Â ƯÁ¤ÇÑ Á¾·ùÀÇ ÇൿÀ» °Ë»çÇϱâ À§ÇØ È£ÃâµÇµµ·Ï ¼³°èµÈ ´Ù¼öÀÇ ¸Þ½îµå¸¦ Æ÷ÇÔÇÑ´Ù. SecurityManager Ŭ·¡¾²´Â Á÷Á¢ÀûÀ¸·Î »ç¿ëµÇÁö ¾Ê´Â´Ù. (°¢°¢ÀÇ Ã¼Å©´Â º¸¾È»óÀÇ ¿¹¿Ü¸¦ °Ë»çÇÏ´Â °ÍÀ» ±âº»À¸·Î ÇÑ´Ù.), ´ë½Å¿¡ ¼­ºêŬ·¡½º°¡ µÇ°í ½Ã½ºÅÛ SecurityManager·Î¼­ ¼³Ä¡µÇµµ·Ï µÇ¾î ÀÖ´Ù. ¼­ºêŬ·¡½º°¡ µÈ SecurityManager´Â ÁöÁ¤µÈ ½ÃÅ¥¸®Æ¼ Á¤Ã¥À» ½ÇÇàÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.

SecurityManager´Â Á¶°Ç¿¡ ¸Â°Ô ÀÚ¿ø¿¡ Á¢±ÙÀ» Çã¿ëÇϴµ¥ ±Øµµ·Î À¯¿¬ÇÏ°í °­·ÂÇÑ ¹æ½ÄÀ» º¸ÀåÇØ ÁÖ°í ÀÖ´Ù. Á¢±ÙÀ» üũÇÏ´Â SecurityManagerÀÇ ¸Þ½îµå´Â Á¶°ÇÀû Á¢±Ù Á¦¾î Á¤Ã¥À» ±¸ÇöÇϴµ¥ ÇÊ¿äÇÑ ÀÎÀÚµé·Î ³Ñ°ÜÁö´Âµ¥, ÀÌ´Â ÄÚµåÀÇ Ãâó(·ÎÄÃÀ̳ª ³×Æ®¿öÅ©) °áÁ¤ÇÏ´Â ½ÇÇà ½ºÅÃÀ» üũÇÏ´Â ´É·ÂÀ» °¡Áö´Â °Í°ú ¸¶Âù°¡ÁöÀÌ´Ù.

ÀáÀçÀûÀ¸·Î À§ÇèÇÑ ½Ã½ºÅÛ ÀÚ¿øÀ» »ý¼ºÇÒ °¡´É¼ºÀÌ ÀÖ´Â ¶óÀ̺귯¸® Äڵ忡 ´ëÇÑ Ç¥ÁØÀûÀÎ Á¢±Ù ¹æ½ÄÀº À§ÇèÇÏÁö ¾ÊÀº ¿¬»êµé¿¡ ´ëÇØ¼­¸¸ Á¢±ÙÀ» Çã¿ëÇϰí Á¦ÇÑµÈ ±â¹Ý¿¡¼­¸¸ Á¢±Ù°¡´ÉÇÑ ½Ã½ºÅÛ È£Ãâ¿¡ ´ëÇØ ½ÃÅ¥¸®Æ¼ °Ë»ç¸¦ ¼öÇàÇÏ´Â °ÍÀÌ´Ù.(SecurityManager¸¦ »ç¿ë)


public boolean mkdir(String path) throws IOException    {

    SecurityManager security = System.getSecurityManager();

    if (security != null) {

               security.checkWrite(path);

    }

    return mkdir0();
}
½ÃÅ¥¸®Æ¼ üũÀÇ ¿¹½Ã. ÀÌ ¿¹´Â ±âº»ÀûÀÎ Á¢±Ù ¹æ½ÄÀ» º¸¿©ÁØ´Ù: public ¸Þ½îµå mkdirÀº ½Ã½ºÅÛSecurityManager¸¦ üũ(üũ°¡ Åë°úµÇÁö ¾ÊÀ» ¶§´Â ¿¹¿Ü¸¦ »ý¼ºÇÏ´Â)ÇÏ°í ´ÙÀ½¿¡ Àú¼öÁØÀÇ private ¸Þ½îµåÀÎ mkdir0À» È£ÃâÇÑ´Ù.

3.4. Java Enabled Browser(ÀÚ¹Ù °¡´É ºê¶ó¿ìÁ®)

À¥ ºê¶ó¿ìÁ® ¶ÇÇÑ ½Ã½ºÅÛÀÇ º¸¾È¿¡ À־ Áß¿äÇÑ ¿ªÇÒÀ» ÇÑ´Ù. À¥ ºê¶ó¿ìÁ®´Â ´Ù¿î·ÎµåµÈ ÀÚ¹Ù Äڵ带 ½ÇÇàÇÏ´Â º¸¾È Á¤Ã¥À» Á¤ÀÇÇÏ°í ±¸ÇöÇÑ´Ù. JEWB´Â ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ¿Í ½ÇÇà ½Ã°£ ¶óÀ̺귯¸®¿Í SecurityManager ¹× ´Ù¾çÇÑ ClassLoader¸¦ Æ÷ÇÔÇÒ °ÍÀÌ´Ù. ½ÃÅ¥¸®Æ¼ °üÁ¡¿¡¼­ º»´Ù¸é, SecurityManagerÀÇ À¥ ºê¶ó¿ìÁ®»óÀÇ ±¸ÇöÀÌ ClassLoaderÀÇ ±¸Çöº¸´Ù ´õ¿í Áß¿äÇÏ´Ù.

SecurityManager´Â ÇÙ½ÉÀûÀÎ ½Ã½ºÅÛ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» ÅëÁ¦ÇÑ´Ù. À̰ÍÀº JEWBÀÇ ±¸ÇöÀÚ°¡ SecurityManager¸¦ ¼­ºêŬ·¡½ÌÇÏ°í Æ¯Á¤ÇÑ ¸Þ½îµå¸¦ ¿À¹ö¶óÀ̵ùÇϰųª »õ·Î¿î ¹öÁ¯À» ½Ã½ºÅÛSecurityManager·Î½á ¼³Ä¡ÇÏ´Â °Í¿¡ ÀÇÇØ ƯÁ¤ÇÑ º¸¾È Á¤Ã¥À» ±¸ÇöÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇØÁØ´Ù. ¼­ºêŬ·¡½ºµÈ SecurityManager´Â º¸¾È Á¤Ã¥À» ±¸ÇöÇϱ⠶§¹®¿¡, À¥ºê¶ó¿ìÁ®ÀÇ SecurityManagerÀÇ ¹öÁ¯ÀÌ Á¤È®È÷ ±¸ÇöµÈ °ÍÀÌ ¸Å¿ì Áß¿äÇÏ°Ô µÈ´Ù. ±Ø´ÜÀûÀ¸·Î, JEWB°¡ ½Ã½ºÅÛ SecurityManager¸¦ ¼³Ä¡ÇÏÁö ¾Ê¾ÒÀ» °æ¿ì¿¡´Â, ¾ÖÇø´Àº ·ÎÄà ÀÚ¹Ù ¿¡Çø®ÄÉÀ̼ǰú °°Àº Á¢±Ù ±ÇÇÑÀ» °¡Áö°Ô µÉ °ÍÀÌ´Ù.

À¥ ºê¶ó¿ìÁ®ÀÇ ½ÃÅ¥¸®Æ¼ Á¤Ã¥Àº SecurityManagerÀÇ ¼ö´ÜµéÀÌ ¸Å¿ì À¯¿¬ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϱ⠶§¹®¿¡ ÀÓÀÇÀûÀ¸·Î º¹ÀâÇØÁú ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥µÉ ¼ö ÀÖ´Ù¸é ¾î¶°ÇÑ ½ÃÅ¥¸®Æ¼ Á¤Ã¥µµ »ç¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ½ÃÅ¥¸®Æ¼ Á¤Ã¥Àº SecurityManager°¡ ¾î¶² »ç¿ëÀÚ°¡ ¾î¶² Á¢±ÙÀ» ½ÃµµÇß´ÂÁö¿¡ ´ëÇØ¼­µµ Á¶»çÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.

4.ºÐ¼®

ÀÚ¹Ù°¡ Á¦°øÇÏ´Â executable content¿¡ ´ëÇÑ º¸¾È ¸ðµ¨¿¡ ´ëÇÑ ºÐ¼®Àº µÎ ´Ü¶ôÀ¸·Î ÇàÇØÁú °ÍÀÌ´Ù. ù¹øÂ° ´Ü¶ô¿¡¼­´Â, ÀÚ¹ÙÀÇ °í¼öÁØ ¼³°è°¡ ³íÀÇµÉ °ÍÀÌ´Ù. µÎ¹øÂ° ´Ü¶ô¿¡¼­´Â, ±¸ÇöÀÇ º¸´Ù ƯÁ¤ÇÑ ºÎºÐÀÇ À¯¿ë¼º¿¡ ´ëÇØ¼­ ³íÀÇµÉ °ÍÀÌ´Ù.

4.1. ¼³°è

ÀÚ¹ÙÀÇ º¸¾È ¸ðµ¨Àº °ÅÀÇ ÀüÀûÀ¸·Î ´Ù¿î·ÎµåµÈ ¹ÙÀÌÆ®Äڵ带 °Ë»çÇÏ´Â ´É·Â¿¡ ÀÇÁ¸ÇÑ´Ù, ±× ´É·ÂÀº ÀǵµµÇÁö ¾ÊÀº ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» ±ÝÁöÇÒ ¼ö ÀÖµµ·Ï ºÐ·ùÇÏ°í ¶óÀ̺귯¸®¸¦ ¾µ ¼ö ÀÖ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¶ÇÇÑ, À¥ ºê¶ó¿ìÁ®ÀÇ °³¹ßÀÚµéÀÌ ¿ì¼öÇÑ º¸¾È Á¤Ã¥À» ±¸ÇöÇϰí Äڵ带 ¾µ ¼ö ÀÖ´Â °ÍÀ» ÀǹÌÇÑ´Ù.


¿Ö ¹ÙÀÌÆ®ÄÚµåÀΰ¡?

ÀÚ¹Ù ÇÁ·Î±×·¥À» ÄÄÆÄÀÏµÈ ¹ÙÀÌÆ®ÄÚµå ÇüÅ·Πº¯È¯Çϱâ·Î ÇÑ °áÁ¤Àº ½ÃÅ¥¸®Æ¼ Ãø¸é¿¡¼­´Â Àǹ®À» ºÒ·¯ÀÏÀ¸Å°´Â »çÇ×ÀÌ´Ù. ½Ã½ºÅÛÀº ÀÚ¹Ù ¼Ò½ºÄڵ尡 ¹ÙÀÌÆ® ÄÚµå ´ë½Å¿¡ ¾²ÀÏ ¼ö ÀÖ´Ù¸é ´õ¿í ¾ÈÀüÇÒ °ÍÀÌ´Ù. ¹ÙÀÌÆ®ÄÚµåÀÇ »ç¿ëÀº ¹ÙÀÌÆ®ÄÚµåÀÇ °ËÁõ °úÁ¤À» ÇÊ¿ä·Î ÇÑ´Ù. ¸¸ÀÏ ÀÚ¹Ù¼Ò½ºÄڵ尡 ¾²¿´´Ù¸é, ÄÚµåÀÇ ¾ÈÀü¼ºÀº ¼Ò½º¸¦ Á÷Á¢ÀûÀ¸·Î ÀÎÅÍÇÁ¸®ÆÃÇϰųª ÀÚ¹ÙÄڵ带 ·ÎÄà »ó¿¡¼­ ½Å·ÚÇÒ ¼ö ÀÖ´Â ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÔÀ¸·Î½á º¸ÀåµÉ ¼ö ÀÖ¾úÀ» °ÍÀÌ´Ù. À̰ÍÀº ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ ´Ü¼øÇÑ Á¢±ÙÀÏ ¼ö Àִµ¥ ÀÌ´Â ÀÚ¹Ù ÄÄÆÄÀÏ·¯´Â ÀÌ¹Ì ½Å·ÚÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.(ÀÚ¹Ù ½ÇÇà ½Ã½ºÅÛÀº ·ÎÄà ¹ÙÀÌÆ®Äڵ忡 ´ëÇØ¼­´Â °Ë»ç¸¦ ¼öÇàÇÏÁö ¾Ê´Â´Ù.) ´Ù¸¥ ¾ð¾î·Î µÈ ÇÁ·Î±×·¥(¹ÙÀÌÆ®ÄÚµå)ÀÌ È£È¯¼ºÀÌ Àִ°¡¿¡ ´ëÇÑ Ã¼Å©¸¦ ¼öÇàÇÏ´Â ÇÁ·Î±×·¥¿¡ ´ëÇÑ Ã·°¡´Â ½Ã½ºÅÛ¿¡ ¶Ç´Ù¸¥ ½ÇÆÐÀÇ °¡´É¼ºÀ» ´õÇÑ´Ù.


¹°·Ð ¹ÙÀÌÆ® Äڵ带 »ç¿ëÇϴµ¥´Â ¸¹Àº ÀÌÀ¯°¡ ÀÖ´Ù. ¿ì¼±, ±×°ÍÀº È®½ÇÇÑ Ãß»óÈ­¸¦ º¸ÀåÇϴµ¥ ÀÌ´Â ÀÚ¹Ù ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¿ªºÐÇØ °øÇÐÀ» ¿¹¹æÇÑ´Ù. À̰ÍÀÌ »ç½ÇÀ̱ä ÇÏÁö¸¸, ¹ÙÀÌÆ®Äڵ尡 ¿ªÄÄÆÄÀÏÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù. ±×¸®°í ¼Ò½º Äڵ带 Á÷Á¢ ´Ù·ç´Â´Ù¸¥ ÄÚµå Ãß»óÈ­ ±â¼úµéÀÌ Á¸ÀçÇÑ´Ù. ´ÙÀ½À¸·Î, ¹ÙÀÌÆ®ÄÚµåÀÇ Ç¥ÇöÀº Å©±â°¡ ÁÙ¾îµé°Ô ÇÑ´Ù. ÇöÀç·Î´Â À̰ÍÀÌ »ç½ÇÀº ¾Æ´Ï´Ù. ÇöÀçÀÇ ¸ðµç ¿¹¿¡¼­, HotJavaºê¶ó¿ìÁ®ÀÇ ¼Ò½ºÄڵ带 Æ÷ÇÔÇØ¼­, ¼Ò½º¿Í ¹ÙÀÌÆ®ÄÚµå´Â °ÅÀÇ Å©±â¿¡ À־ ÀÏÄ¡ÇÑ´Ù. ¼¼¹øÂ°·Î, ¹ÙÀÌÆ®ÄÚµå °Ë»ç °úÁ¤Àº ÄÄÆÄÀÏ °úÁ¤º¸´Ù ºü¸¦ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ÇÁ·Î±×·¥À» ´Ù¿î·ÎµùÇÏ°í ½ÇÇàÇϴµ¥ °è»ê»ó ¸¹Àº ½Ã½ºÅÛ ÀÚ¿øÀ» »ç¿ëÇÒ Çʿ䰡 ¾ø°í ³·Àº latency¸¦ Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ³íÀÇ´Â °øÆòÇÏ°Ô °­¿äÀûÀε¥, ÀÚ¹ÙÆÀÀÌ °è»ê¿¡ ¸¹ÀÌ ÀÇÁ¸ÇÏ´Â ÇÁ·Î±×·¥¿¡ ´ëÇØ¼­´Â "Just in Time"ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù°í ¾Ï½ÃÇÑ ¹Ù°¡ ÀÖÁö¸¸, ÄÄÆÄÀÏÀÌ ¿¹¹æÀûÀÌÁö ¾ÊÀ½À» ÀǹÌÇÑ´Ù. ¸¶Áö¸· ³íÀÇ´Â ¹ÙÀÌÆ® ÄÚµå °Ë»ç±â°¡ ÀüÇüÀûÀÎ ÄÄÆÄÀÏ·¯º¸´Ù ´ú º¹ ÀâÇÑ ÇÁ·Î±×·¥À̾, Á¤È®¼ºÀÇ °Ë»ç°¡ ´Ü¼øÇÑ °úÁ¤À̶ó´Â °ÍÀÌ´Ù. »ç½Ç ÄÄÆÄÀÏ·¯´Â ¸ðµç ¹ÙÀÌÆ®Äڵ尡 ½Å·Ú¼º ÀÖ´Â ¹ÙÀÌÆ®ÄÚµå °Ë»ç±â·Î °Ë»çµÉ ¼ö Àֱ⠶§¹®¿¡ ½Å·Ú¼ºÀ» °¡Áú Çʿ䰡 ¾ø´Ù.(·ÎÄà ÄÚµå´Â È¿À²¼ºÀ» ÀÌÀ¯·Î ÇØ¼­ ÄÄÆÄÀÏ ½Ã¿¡ ´Ü Çѹø¸¸ °Ë»çµÉ ¼ö ÀÖ´Ù.)

º¸¾È¼ºÀÖ´Â ¶óÀ̺귯¸®¸¦ ÀÛ¼ºÇÏ´Â °Í

¿ì¼öÇÑ ¶óÀ̺귯¸®¸¦ ÀÛ¼ºÇÏ°í °ËÁõÇÏ´Â °úÁ¤Àº ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼¿¡ ÀÖ¾î °¡Àå Áß¿äÇÏ´Ù°í Çϴµ¥¿¡´Â À̰ßÀÌ ÀÖÀ» ¼ö ¾ø´Ù. Drew Dean°ú Dan Wallach°¡ ¾´ Security Flow in the HotJava Web Browser¶ó´Â ³í¹®¿¡´Â ÇÖÀÚ¹Ù°¡ ¶óÀ̺귯¸® ±¸Çö»óÀÇ ¿¡·¯·Î ÀÎÇØ ºØ±«µÉ ¼ö ÀÖ´Â ÁÁÀº ¿¹µéÀ» º¸¿©ÁÖ°í ÀÖ´Ù. Dean°ú Wallach´Â ÇÖÀÚ¹Ù 1.0 alpha3 ¶óÀ̺귯¸®ÀÇ ±¸Çö»óÀÇ ¾àÁ¡À» Áö´Ï°í ÀÖÀ½À» ÁöÀûÇÑ´Ù. ±×µéÀº ¸¹Àº ¼öÀÇ º¯¼ö¿Í ¸Þ½îµå°¡ ÆÛºí¸¯À¸·Î Á¢±Ù °¡´ÉÇϸç, ½ÃÅ¥¸®Æ¼ üũ¸¦ ÇÏÁö ¾Ê¾Æ¼­, ½ÃÅ¥¸®Æ¼ÀÇ ±¸¸ÛÀ» Çã¿ëÇÏ´Â °ÍÀ» Áõ¸íÇß´Ù. ÀÌ·¯ÇÑ Á¾·ùÀÇ ¹®Á¦µéÀÌ ÀÚ¹ÙÀÇ º£Å¸ ¹öÁ¯ ¶óÀ̺귯¸®µé¿¡¼­´Â ÇØ°áÀÌ ÀÌ·ç¾îÁ³Áö¸¸, ±×·¯ÇÑ ¿¡·¯µéÀº Á¤È®ÇÑ °ËÁõÀÌ ´Ü¼øÇÑ ÀÛ¾÷ÀÌ ¾Æ´ÔÀ» º¸¿©ÁÖ´Â °ÍÀÌ´Ù.


½ÃÅ¥¸®Æ¼ ¹®Á¦´Â ¶óÀ̺귯¸®°¡ ÀûÀýÈ÷ ÀÛ¼ºµÇ¾ú´Ù°í ÇØµµ ÀÚ¹Ù°¡ °¡´ÉÇÑ À¥ºê¶ó¿ìÁ®ÀÇ ÇÁ·Î±×·¡¸Ó°¡ Á¤È®È÷ SecurityManager¿¡¼­ ±×µéÀ» Á¤È®È÷ ±¸ÇöÇÏ°í ¸í½ÃÇØ¾ß ÇÑ´Ù´Â »ç½Ç ¶§¹®¿¡ ´õ¿í ¾î·Á¿öÁø´Ù. SecurityManager´Â ±âÁ¸ÀÇ ´õ¿í È®´ëµÈ ¸ÞÄ¿´ÏÁòµé¿¡ ºñÇØ¼­ À¯¿¬ÇÑ ½ÃÅ¥¸®Æ¼ Á¤Ã¥À» ¼ö¸³Çϴµ¥ ƯÁ¤Çϸç ĸ½¶È­µÈ ¹æ¹ýÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù´Â Á¡¿¡ ÀÖ¾î ºÐ¸íÇÑ ¹ßÀüÀÌ´Ù. ±×·³¿¡µµ ÀÚ¹Ù ½Ã½ºÅÛÀÇ ½ÃÅ¥¸®Æ¼¿¡ ´ëÇØ À¬ ºê¶ó¿ìÁ®°¡ Á÷Á¢ÀûÀÎ Á¶ÀÛÀ» ÇÒ ¼ö ÀÖ´Â »ç½ÇÀº ¸í¼¼¿Í ±¸Çö¿¡ ÀÖ¾î ¿¡·¯ÀÇ È®·üÀ» Áõ°¡½ÃŲ´Ù. ÀÚ¹Ù ÀÚü´Â ¸Å¿ì ¾ö°ÝÇÑ °Ë»ç¸¦ ¼öÇàÇÏÁö¸¸, ÀÚ¹Ù °¡´ÉÇÑ ºê¶ó¿ìÁ®°¡ ÀÚ¹ÙÀÇ ³»Àå ½ÃÅ¥¸®Æ¼¿¡ ÀÇÁ¸Çϸ鼭 ±×´ÙÁö ¾ö°ÝÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Â °ÍÀº ºÐ¸íÇÏ´Ù.

±×·¯¹Ç·Î ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼´Â »ó´çÈ÷ Å« ÄÚµåµéÀÇ Á¤È®ÇÑ ±¸Çö¿¡ ÀÇÁ¸ÇÑ´Ù. ÀÌ·¯ÇÑ »óȲÀº ÀÚ¹ÙÀÇ ¼³°è°¡ ¸Å¿ì À¯¿¬ÇÑ ½ÃÅ¥¸®Æ¼ ¸ðµ¨À» Á¦°øÇϰíÀÚ ÇÑ °á°úÀÌ´Ù. ÇÁ·Î±×·¡¸Ó¿¡°Ô ½Ã½ºÅÛ ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ Á¶ÀÛÀ» °¡´ÉÇÏ°Ô ÇÔÀ¸·Î½á, ÀÚ¹Ù Á¦ÀÛÀÚµéÀº ÀáÀçÀûÀÎ º¸¾ÈÀÇ Ãë¾à¼ºÀ» ³ëÃâÇÏÁö¸¸ À¯¿¬ÇÔÀ» Á¦°øÇß´Ù.

4.2±¸Çö

ÀÚ¹Ù ½ÃÅ¥¸®Æ¼ÀÇ À¯È¿¼ºÀ» °Ë»çÇϱâ À§Çؼ­´Â ¾ð±ÞµÈ °¢°¢ÀÇ ÀÚ¿øµé¿¡ ´ëÇØ¼­ Á¦¾îÇÏ´Â ÀûÀýÇÑ ¹æ¹ýÀÌ Àִ°¡¿¡ ´ëÇÑ °Ë»ç¸¦ ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.

ÀÌ·¯ÇÑ ÀÚ¿øµé Áß ÀϺο¡ ´ëÇÑ Á¦¾î´Â ºüÁ® ÀÖ´Ù. ¿ì¼±, ÇöÀçÀÇ SecurityManager´Â »óÀ§ ·¹º§ À©µµ¿ì¿¡ ´ëÇÑ »ý¼ºÀÇ Á¦¾î¿¡ ´ëÇÑ ¸Þ½îµå¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù.(±×µéÀÌ ¾ÈÀüÇÏÁö ¾ÊÀ½À» Ç¥½ÃÇÒ ¼ö ¾øÀ½À» Á¦¿ÜÇÏ°í¼­¶óµµ), ¶ÇÇÑ Ç¥½ÃµÉ ¼ö ÀÖ´Â °ÍÀ̳ª µéÀ» ¼ö ÀÖ´Â »çÇ׿¡ ´ëÇÑ Á¦¾îµµ ºüÁ® ÀÖ´Ù. ´ÙÀ½À¸·Î, »ç¿ëÀÚÀÇ ÀԷ¿¡ ´ëÇÑ Á¦¾î¸¦ ÅëÁ¦ÇÏ´Â ¸ÞÄ¿´ÏÁòÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ´Ù¾çÇÑ ÀÔ·Â ÀåÄ¡¿¡ ´ëÇØ¼­ º¸´Ù ƯÁ¤ÇÑ ½ÃÅ¥¸®Æ¼ Á¤Ã¥À» »ç¿ëÇÒ Çʿ䰡 ÀÖ´Â »óȲÀÌ ºÐ¸íÈ÷ Á¸ÀçÇÑ´Ù. ¸¶Áö¸·À¸·Î, ¾ÖÇø´Àº ÇöÀç »õ·Î¿î °´Ã¼¸¦ »ý¼ºÇÔÀ¸·Î½á ÀÓÀÇÀÇ ¸Þ¸ð¸® °ø°£À» ÇÒ´çÇÒ ¼ö ÀÖ´Ù. ¸Þ¸ð¸® ÇÒ´çÀÇ ¹®Á¦´Â Á÷Á¢ÀûÀÎ À§ÇùÀ» Á¦°øÇÏÁö ¾Ê±â ¶§¹®¿¡ Æò°¡ÇϱⰡ ¾î·Æ´Ù. ±×·¯ÇÑ ¹®Á¦´Â ºê¶ó¿ìÁ®°¡ ÀÚ¹Ù°¡ »ç¿ë°¡´ÉÇÑ ¸Þ¸ð¸®ÀÇ ¾çÀ» Á¦ÇÑÇÒ ¼ö Àֱ⠶§¹®¿¡ ´ë´ÜÇÑ °ÍÀº ¾Æ´Ï´Ù. ºê¶ó¿ìÁ®´Â ¶ÇÇÑ ÇöÀçÀÇ ÀÚ¹Ù ¾ÖÇø´À» Á×ÀÌ´Â ¸Þ½îµå¸¦ °ø±ÞÇÒ ¼ö Àִµ¥, ÀÌ´Â ¸Þ¸ð¸®¸¦ ȸº¹°¡´ÉÇÏ°Ô ÇÑ´Ù.

4.3½Ã³ª¸®¿Àµé

ÀÚ¿øµé¿¡ ´ëÇÑ Á¢±Ù Á¦¾î¿¡ ´ëÇÑ ºÐ¼®À» ¹ÙÅÁÀ¸·Î, ÀÚ¹Ù°¡ 2.2¿¡¼­ ¾ð±ÞµÈ ´Ù¾çÇÑ °ø°Ý¿¡ ´ëÇØ¼­ ¾î¶»°Ô ¹æ¾îÇÒ ¼ö Àִ°¡¸¦ °í·ÁÇØ º»´Ù.


ÁÖ¾îÁø ºÐ¼®Àº ÀÚ¹Ù°¡ º¸´Ù À§ÇèÇÑ ÇüÅÂÀÇ °ø°ÝÀ» ¿¹¹æÇϴµ¥ È¿°úÀûÀÓÀ» º¸¿©ÁØ´Ù. ºÒÄè°¨ À¯¹ß °ø°ÝÀº ÀÚ¹Ù¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÇöÀçÀÇ À¥ ºê¶ó¿ìÁ®¿¡ ¶ÇÇÑ °¡´ÉÇÔÀÌ ¾ð±ÞÇϰíÀÚ ÇÑ´Ù. ¼­ºñ½º °ÅºÎ °ø°Ý¿¡ ´ëÇØ¼­´Â ¾ÈÀüÈ÷ ¿¹¹æÇϱâ¶õ ¸Å¿ì ¾î·Æ´Ù. 10°³ ÀÌ»óÀÇ À©µµ¿ì¸¦ »ý¼ºÇÏ´Â °ÍÀ» ±ÝÁöÇϰųª 100ų·Î¹ÙÀÌÆ® ÀÌ»óÀÇ ¸Þ¸ð¸® ÇÒ´çÀ» ±ÝÁöÇÏ´Â ½ÃÅ¥¸®Æ¼ Á¤Ã¥À» »ý°¢ÇØ º¼ ¼ö´Â ÀÖÁö¸¸, ÀÌ´Â ¸Å¿ì ÀÓÀÇÀûÀÌ´Ù. ´ë½Å¿¡, À¯Àú°¡ ¾ÖÇø´À̳ª ¾ÖÇø´ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç ÀÚ¿ø¿¡ ´ëÇØ ±ÇÇÑÀ» °¡Áö´Â À¥ºê¶ó¿ìÁ®°¡ ´õ ³ªÀº ´ë¾ÈÀ̶ó°í »ý°¢ÇÑ´Ù. ´ÙÇེ·´°Ôµµ ±×·¯ÇÑ ¸ÞÄ¿´ÏÁòÀº ±¸ÇöÀÌ °¡´ÉÇÒ °ÍÀÌ´Ù.

5.°á·Ð

ÀÚ¹ÙÀÇ º¸¾È Ãë¾à¼º¿¡ ´ëÇÑ ÇÊÀÚÀÇ °ßÇØ


ÇÊÀÚ°¡ ÀÌ ³í¹®À» ÀÛ¼ºÇÏ´Â µ¿¾È¿¡µµ ÀÚ¹ÙÀÇ º¸¾ÈÀº ²÷ÀÓ¾ø´Â °ø°Ý(?) ³»Áö °ü½ÉÀÇ ´ë»óÀ̾ú´ø°Í °°´Ù. ³í¹®À» ³¡³¾ ÂëÀÎ 3¿ù 5Àϰ濡 ÀÚ¹Ù Security ManagerÀÇ º¸¾È Ãë¾à¼ºÀÌ ¹ß°ßµÇ¾î CERT ÀÇ Advisory°¡ ³ª¿À°í ³×½ºÄÉÀÌÇÁ »ç´Â ÆÐÄ¡¸¦ ¹ßÇ¥ÇÏ´Âµî ºÎ»êÀ» ¶³¾ú´Ù. ÀÌ¹Ì HotJavaÀÇ ¾ËÆÄ ¹öÁ¯¿¡¼­ÀÇ º¸¾È Ãë¾à¼ºÀÌ ¹ßÇ¥µÇ¾î ¼öÁ¤ÀÌ ÀÌ·ç¾îÁ³µíÀÌ, ¾ÕÀ¸·Îµµ ÀÚ¹Ùó·³ µ¢Ä¡°¡ Å« ¼ÒÇÁÆ®¿þ¾î´Â º¸¾ÈÀÇ Ãë¾à¼ºÀÌ °è¼Ó ¹ß°ßµÉ °ÍÀÌ´Ù ÀÌ·¯ÇÑ º¸¾ÈÀÇ Ãë¾à¼º¿¡µµ ºÒ±¸Çϰí ÀÚ¹Ù¸¦ »ç¿ëÇØ¾ß Çϴ°¡? ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼¿¡ ´ëÇÑ »ó±âÇÑ ³íÀǵéÀº ¾ÕÀ¸·ÎÀÇ Àü¸Á°ú ¿¬°èµÇ¾î¾ß ÇÑ´Ù. ÀÚ¹Ù°¡ óÀ½ºÎÅÍ ÁÖ¸ñÀ» ¹ÞÀº °ÍÀº À¥¿¡ Áõ´ëµÈ Ç¥Çö ´É·Â°ú À¯¿¬¼ºÀ» °ø±ÞÇß´Ù´Â µ¥¿¡ ÀÖ´Ù. ´É·Â¿¡ Áõ°¡¿¡ ºñ·ÊÇÏ´Â ½Ã½ºÅÛÀÇ ½ÃÅ¥¸®Æ¼ À§ÇùÀº ÇÊ¿¬ÀûÀÎ °Å·¡¶ó°í º¸¾Æ¾ß ÇÑ´Ù. ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼ Æò°¡´Â ¹Ù¶÷Á÷ÇÑ ¹æÇâÀ¸·Î ÀÌ·¯ÇÑ ±ÕÇüÀ» ¸ÂÃâ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ½ÃÅ¥¸®Æ¼°¡ ÃÖ°íÀÇ ¿ä±¸ »çÇ×ÀÎ ½Ã½ºÅÛ¿¡¼­, ÀÚ¹Ù¸¦ »ç¿ëÇÏ´Â °ÍÀº Àǹ̰¡ ¾ø´Ù. ÀÌ´Â ÀÚ¹Ù°¡ ½ÃÅ¥¸®Æ¼ À§Çù¿¡ ´ëÇÑ Áõ°¡ ¸¸Å­ÀÇ °¡Ä¡°¡ ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. °¡Á¤¿ë ÄÄÇ»ÅÍ °°Àº ½Ã½ºÅÛ¿¡¼­ ¸¹Àº »ç¶÷µéÀº ÀÚ¹ÙÀÇ ÀÌÀÍÀÌ À§ÇùÀ» ´É°¡ÇÏ´Â °ÍÀ» ¹ß°ßÇÒ °ÍÀÌ´Ù. °°Àº ¸Æ¶ô¿¡¼­, ÀÎÅͳÝÀÇ ÀÌÁ¡º¸´Ù º¸¾È»óÀÇ À§ÇèÀÌ Å©±â ¶§¹®¿¡ »ó´çÇÑ ¼öÀÇ ½Ã½ºÅÛÀÌ ÀÎÅͳݿ¡ ¿¬°áµÇÁö ¾Ê°í ÀÖ´Ù. ÀÚ¹Ù¸¦ »ç¿ëÇÏ´Â °ÍÀ» °í·ÁÇÒ °æ¿ì ÀÚ¹Ù°¡ ½ÃÅ¥¸®Æ¼ À§ÇùÀ» Áõ°¡½ÃŰ´Â °ÍÀº »ç½ÇÀÌÁö¸¸ ¶ÇÇÑ ¸¶Âù°¡Áö·Î ¿ì¼öÇÑ "¹æÈ­º®" µµ±¸¸¦ Á¦°øÇÑ´Ù´Â °ÍÀ» ÀÌÇØÇÒ Çʿ䰡 ÀÖ´Ù.

Àå·¡ÀÇ ÇØ°á ¹æÇâ¿¡ ´ëÇÑ Àü¸Á

ÀÌ¹Ì ´Ù¸¥ ³íÀÚµéÀÌ ¾ð±ÞÇßµíÀÌ, ÀÚ¹Ù ¾ÖÇø´ÀÇ ´É·ÂÀ» ÃÖ´ëÇÑ È°¿ëÇÏ°í º¸¾È¿¡ ´ëÇÑ ¿ì·Á¸¦ ¶³ÃÄ ¹ö¸®±â À§Çؼ­´Â °ø¿ëŰ ¾Ïȣȭ ±â¼úÀÌ ÀÚ¹Ù ¾ÖÇø´ ÀÎÁõ¿¡ µµÀԵǴ °ÍÀÌ ÇʼöÀûÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ÇöÀç ³×½ºÄÉÀÌÇÁ¿¡¼­ ÀÚ¹Ù ¾ÖÇø´Àº ÆÄÀÏÀÇ ÀÐ°í ¾²±â¸¦ ÀüÇô ÇÒ ¼ö ¾ø´Â »óÅÂÀ̹ǷÎ, ¾ÖÇø´À» ÅëÇÑ ¾îÇø®ÄÉÀ̼ÇÀÇ ±¸ÇöÀº ¿ä¿øÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¾ÖÇø´ÀÌ ½Ã½ºÅÛ ÀÚ¿øÀ» ¸¶À½´ë·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â ±æÀ» º¸ÀåÇϱâ À§Çؼ­´Â ±× ¾ÖÇø´ÀÌ ¹ÏÀ» ¼ö ÀÖ´Â Ãâó¿¡¼­ ¿Â °ÍÀ̶ó´Â º¸ÀåÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ º¸ÀåÀ» À§ÇÑ ÀüÀÚ¼­¸í ±â¼úÀÇ µµÀÔÀÌ Àå·¡ÀÇ ÀÚ¹Ù ¾ÖÇø´ ½ÃÅ¥¸®Æ¼ ±¸Çö¿¡ À־ ÇÙ½ÉÀ̶ó°í ÇÒ ¼ö ÀÖ°Ú´Ù.

±×·¯³ª, ³ª¹«ÁýÀ» Áö¾î ³õ°í´Â ö¹®À» ´Þ ÇÊ¿ä´Â ¾øµíÀÌ ½ÃÅ¥¸®Æ¼´Â °¡´ÉÇÑ ¸ðµç ¾àÁ¡¿¡ ´ëÇØ¼­ ¸·¾Æ¾ß ÇÑ´Ù´Â ¾î·Á¿òÀÌ ÀÖ´Ù. È£½ºÆ®¿Í ³×Æ®¿öÅ© Â÷¿øÀÇ ±âº»ÀûÀÎ º¸¾ÈÀÌ ÀüÁ¦µÇ°í ¶ÇÇÑ À¥ ¼­¹ö »ó¿¡¼­ ±¸ÇöµÇ´Â ¿ä¼Ò ±â¼úµéÀÇ º¸¾ÈÀÌ ¸ðµÎ °ËÁõµÇ¾úÀ»¶§, ÀÚ¹ÙÀÇ ½ÃÅ¥¸®Æ¼ ¸ÞÄ¿´ÏÁòÀÌ ºûÀ» ¹ßÇÒ ¼ö ÀÖÀ½Àº ÀÚ¸íÇÏ´Ù.

There is no security, but there is only opportunity

-Douglas Macarthur

[Âü°í ¹®Çå]

Drew Dean and Dan S.Wallach, Securiyt Flaws in the HotJava Web Browser,

November 3, 1995. Available via ftp://ftp.cs.princeton.edu/reports/1995/501.ps.Z

The HotJava Overview.

Available via http://java.sun.com/1.0alpha3/doc/overview/hotjava/index.html

HotJava(tm):The Security Story.

Available via http://java.sun.com/1.0alpha3/doc/security/security.html

James Gosling and Henry Mcgilton, The Java Language Environment: A White Paper, Sun Microsystems, May 1995. Available via ftp://java.sun.com/docs/JavaBook.ps.tar.Z

James Gosling and Henry McGilton. The Java Language Overview: A White Paper. Sun Microsystems Technical Report, May 1995.

Available via http://java.sun.com/whitePaper/javawhitepaper_1.html

The Java Language Overview.

Available via http://java.sun.com/1.0alpha3/doc/overview/java/index.html

SunMicrosystems, The Java Language Specifications: Version 1.0 Beta

Available via http://java.sun.com/JDK-beta/psfiles/javaspec.ps

The Java Virtual Machine Specification.

Available via http://java.sun.com/1.0alpha3/doc/vmspec/vmspec_1.html

Frank Yellin, Low Level Security in Java.

Available via http://www.w3.org/pub/Conferences/WWW4/Papers/197/40.html