RMI´Â ³»ºÎÀÇ º¹ÀâÇÑ Ã³¸® °úÁ¤À» ¸ðµÎ °¨Ãß¾î ÁÖ°í, ºÐ»ê ½Ã½ºÅÛ¿¡¼ ÀÚ¹ÙÀÇ °´Ã¼ ÁöÇâÀûÀÎ ÀÇ¹Ì ±¸Á¶(Semantics)¸¦ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ºÐ»ê °´Ã¼ ¸ðµ¨À» Á¦°øÇÕ´Ï´Ù. À̹ø Àý¿¡¼´Â ºÐ»ê °´Ã¼ ¸ðµ¨À» ÇÁ·Î±×·¡¹Ö ÇÒ ¶§ À¯ÀÇÇÒ »çÇ×µéÀ» ÀÏ¹Ý ÀÚ¹Ù Ç÷§ÆûÀÇ °´Ã¼ ¸ðµ¨°ú ºñ±³Çؼ »ìÆì º¸°Ú½À´Ï´Ù.
ºÐ»ê °´Ã¼ ¸ðµ¨Àº Ŭ¶óÀ̾ðÆ®/¼¹ö ¸ðµ¨¿¡¼ ¹ßÀüµÈ Åë½Å ¸ðµ¨·Î¼ ´Ü¼øÈ÷ ¼¹ö¸¸ÀÇ ¿ªÇÒÀ̳ª Ŭ¶óÀÌ¾ðÆ®¸¸ÀÇ ¿ªÇÒÀ» ÇÏ´Â ÇÑÁ¤ÀûÀÎ ¸ð½À»Ó¸¸ ¾Æ´Ï¶ó ÀÚ½ÅÀÌ Å¬¶óÀ̾ðÆ®ÀÌ¸é¼ µ¿½Ã¿¡ ´Ù¸¥ °´Ã¼¿¡ ´ëÇØ¼´Â ¼¹ö·Î¼ »ç¿ëµÉ ¼öµµ ÀÖ½À´Ï´Ù. ´Ù½Ã ¸»ÇÏ¸é ºÐ»ê°´Ã¼¸ðµ¨¿¡¼´Â ¾ç¹æÇ⼺ÀΠŬ¶óÀÌ¾ðÆ® Å¬¶óÀ̾ðÆ®/¼¹ö ¸ðµ¨À» ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù´Â ¾ê±âÁö¿ä. ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®¿Í ¼¹ö¸¦ ¸ðµÎ °´Ã¼´ÜÀ§·Î ±¸ÇöÇÏ°í ¹Ìµé¿þ¾î¸¦ ÅëÇÏ¿© ºÐ»ê ¼ºñ½º¸¦ Á¦°øÇÏ´Â ºÐ»ê °´Ã¼¸¦ Æí¸®ÇÏ°Ô Ã£°í ¼ºñ½º¸¦ ¹ÞÀ» ¼ö ÀÖµµ·Ï ÇÑ °ÍÀÔ´Ï´Ù. ºÐ»ê °´Ã¼ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ·Á¸é ºÐ»ê °´Ã¼°£ÀÇ Åë½ÅÀ» Áö¿øÇÏ´Â ¹Ìµé¿þ¾î°¡ ÇÊ¿äÇÕ´Ï´Ù. ¹Ìµé¿þ¾îÀÇ ±¹Á¦Ç¥ÁØÀº ¿©·¯ºÐ²²¼µµ À߾ƽô CORBAÀÔ´Ï´Ù.
¹Ìµé¿þ¾î¿¡ ´ëÇØ Àá½Ã ¼³¸íµå¸®°í, ´Ù½Ã ºÐ»ê °´Ã¼ ¸ðµ¨¿¡ ´ëÇØ ¼³¸íµå¸®°Ú½À´Ï´Ù. ÀüÅëÀûÀΠŬ¶óÀ̾ðÆ®/¼¹ö ¸ðµ¨¿¡¼´Â ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇϸç, À̶§ ´Ü¼øÈ÷ ³×Æ®¿öÅ©ÀÇ µ¥ÀÌÅÍ ¼Û¼ö½Å ±â´É¸¸ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. 2tier³ª 3tier±¸Á¶¿¡¼´Â Á¾Á¡°£ÀÇ ¿¬°áÀ» À§ÇÏ¿© »ó´ë¹æÀÇ IPÁÖ¼Ò³ª URLÀ» ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸ Ŭ¶óÀÌ¾ðÆ®°¡ ¹Ìµé¿þ¾î¸¦ ÅëÇØ¼ ÀÓÀÇÀÇ Àå¼Ò¿¡ ÀÖ´Â ºÐ»ê °´Ã¼¸¦ ÀÌ¿ëÇÑ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â ¹Ì¸® ¾Ë·ÁÁ®ÀÖ´Â ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ¼¹ö°¡ Á¦°øÇÏ´Â ºÐ»ê °´Ã¼ÀÇ ¸Þ¼µå¸¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö°¡ È£½ºÆ® ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥´ÜÀ§·Î ±¸ºÐµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó °´Ã¼ ´ÜÀ§·Î ±¸ºÐµÇ¸ç, ¹Ìµé¿þ¾î¸¦ ÅëÇØ ÀÓÀÇÀÇ Å¬¶óÀÌ¾ðÆ® °´Ã¼°¡ ÀÓÀÇÀÇ ºÐ»ê °´Ã¼¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿äÁö´Â ¹Ìµé¿þ¾î°¡ Àֱ⠶§¹®¿¡ ¿ì¸®´Â ¿¡Çø®ÄÉÀ̼ǻóÀÇ º¹ÀâÇÑ ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÒ Çʿ䰡 ¾øÀÌ ¸¶À½²¯ °´Ã¼°£ÀÇ Åë½ÅÀ» ÇÒ ¼ö°¡ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ ºÎºÐÀº 18.2¿¡¼ Á»´õ ½ÉµµÀÖ°Ô ´Ù·ê °ÍÀÔ´Ï´Ù.
´Ù½Ã ºÐ»ê °´Ã¼ ¸ðµ¨¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ºÐ»ê °´Ã¼ ¸ðµ¨¿¡¼´Â ÀÏ¹Ý ÀÚ¹Ù Ç÷§Æû¿¡¼¿Í ¸¶Âù°¡Áö·Î, ¸Þ¼µå¸¦ È£ÃâÇÒ ¶§ ¸Å°³º¯¼ö³ª °á°ú°ªÀ¸·Î ±âº»Çü µ¥ÀÌÅÍ Å¸ÀÔ(Primitive Data Type)»Ó¸¸ ¾Æ´Ï¶ó °´Ã¼¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. »Ó¸¸ ¾Æ´Ï¶ó, °´Ã¼¸¦ ´ë»óÀ¸·Î ij½ºÆÃ(Çüº¯È¯)¿¬»êÀÚ¿Í instanceof¿¬»êÀÚµµ ±×´ë·Î »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. ÀÌ ¸»Àº ¿ì¸®°¡ ÀϹÝÀûÀÎ ÀÚ¹Ù Ç÷§Æû¿¡¼ ½´ÆÛ Ŭ·¡½º¸¦ »ó¼ÓÇÏ´Â ¼ºê Ŭ·¡½º¸¦ ¸¸µé°í, ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °Í°ú °°Àº °´Ã¼¸¦ °¡Áö°í ÇÒ ¼ö ÀÖ´ø °ÅÀÇ ´ëºÎºÐÀÇ ÀϵéÀÌ °¡´ÉÇÏ´Ù´Â ¾ê±âÀÔ´Ï´Ù.
ÇÏÁö¸¸, ¸î °¡Áö ½Å°æ½á¾ß ÇÏ´Â Â÷ÀÌÁ¡µµ ÀÖ½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹öÀÇ RMI Registry·ÎºÎÅÍ ³Ñ°Ü¹ÞÀº ¿ø°Ý °´Ã¼´Â ÀϹÝÀûÀÎ ÀÚ¹Ù ÇÁ·Î±×·¥¿¡¼Ã³·³, pass by referenceÀÇ ¹æ½ÄÀ» µû¸£Áö¸¸, ¸Þ¼µåÀÇ ¸Å°³ º¯¼ö³ª °á°ú°ªÀ¸·Î Àü´ÞµÇ´Â °´Ã¼µéÀº ½ÇÁ¦ °´Ã¼°¡ ¾Æ´Ï¶ó º¹»çº»ÀÌ Àü´ÞÀÌ µË´Ï´Ù. Áï, Ŭ¶óÀÌ¾ðÆ®°¡ ¾î¶² °´Ã¼¸¦ ¼¹ö¿¡°Ô ¸Å°³º¯¼ö·Î ³Ñ°ÜÁá´Ù¸é, ¼¹öÂÊ¿¡¼ ¾Æ¹«¸® ±× °´Ã¼ÀÇ ¼Ó¼º°ªÀ» º¯°æÇصµ Ŭ¶óÀÌ¾ðÆ®°¡ °¡Áö°í ÀÖ´Â °´Ã¼¿¡´Â ¿µÇâÀ» ÁÙ ¼ö°¡ ¾ø½À´Ï´Ù. ±×¸®°í java.lang.ObjectŬ·¡½º¿¡¼ Áö¹Ù°¡»ó¸Ó½Å°ú °ü·ÃµÈ ÀϺΠ¸Þ¼µåµéÀº »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù. À̰ÍÀº ·ÎÄû󿡼¸¸ ÀÛµ¿µÇµµ·Ï ÇÑÁ¤µÇ¾î ÀÖ´Â ¸Þ¼µåµéÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ, ¿ø°Ý °´Ã¼ÀÇ ¸ðµç ¸Þ¼µåµéÀº RMI »ç¿ëÁß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â, ³×Æ®¿öÅ© Àå¾Ö¿Í °°Àº »óȲ¿¡ ´ëºñÇØ¼ Ç×»ó java.rmi.RemoteExceptionÀ» ¹ß»ýÇÑ´Ù°í ¼±¾ðÇØÁà¾ß ÇÕ´Ï´Ù.
¢Ñ ºÐ»ê °´Ã¼ ¸ðµ¨°ú ÀÏ¹Ý ÀÚ¹Ù Ç÷§Æû °øÅëÁ¡ |
1. ¿ø°Ý °´Ã¼ÀÇ ¸Þ¼µå¸¦ È£ÃâÇÒ ¶§ ¸Å°³º¯¼ö³ª ¸Þ¼µåÀÇ °á°ú °ªÀ¸·Î °´Ã¼¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. 2. °´Ã¼ ¸ðµ¨¿¡¼ÀÇ casting(Çüº¯È¯)¿¬»êÀÚ¸¦ ºÐ»ê °´Ã¼ ¸ðµ¨¿¡¼µµ ±×´ë·Î »ç¿ë ÇÒ ¼ö ÀÖ´Ù. 3. °´Ã¼ ¸ðµ¨¿¡¼ÀÇ instanceof¿¬»êÀÚ¸¦ ºÐ»ê °´Ã¼ ¸ðµ¨¿¡¼µµ ±×´ë·Î »ç¿ë ÇÒ ¼ö ÀÖ´Ù. |
¢Ñ ºÐ»ê °´Ã¼ ¸ðµ¨°ú ÀÏ¹Ý ÀÚ¹Ù Ç÷§Æû Â÷ÀÌÁ¡ |
1. ¿ø°Ý °´Ã¼ÀÇ ¸Þ¼µå¸¦ È£ÃâÇÒ ¶§ ¸Å°³º¯¼ö³ª ¸Þ¼µåÀÇ °á°ú °ªÀ¸·Î »ç¿ëµÇ´Â °´Ã¼´Â »ç½ÇÀº º»·¡ °´Ã¼ÀÇ º¹»çº»ÀÌ´Ù. (¿ø°Ý °´Ã¼ÀÇ °æ¿ì´Â º¹»çº» ¾Æ´Ô) 2. ÀϺΠjava.lang.Object Ŭ·¡½ºÀÇ JVM°ú °ü·Ã ÀÖ´Â ¸î °³ÀÇ ¸Þ¼µåµéÀÌ Á¦ÇѵȴÙ. 3. Ŭ¶óÀÌ¾ðÆ®´Â Ãß°¡ÀûÀ¸·Î, RMI »ç¿ë Áß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ¿¹¿Ü¸¦ ó¸®ÇØÁà¾ß ÇÑ´Ù. |
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |