ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ¶Ç ´Ù¸¥ ÇüÅ·ΠÀ¥ ºê¶ó¿ìÀú¿¡¼ ½ÇÇàµÇ´Â ¾ÖÇø´À» »ý°¢ÇØ ³¾ ¼ö ÀÖ½À´Ï´Ù. ¾ÖÇø´Àº ¼¹ö¿¡¼ºÎÅÍ ´Ù¿î·Îµå ¹Þ¾ÆÁ®¼, Ŭ¶óÀ̾ðÆ®ÀÇ À¥ ºê¶ó¿ìÀú¿¡¼ ½ÇÇàÀÌ µË´Ï´Ù. ¾ÖÇø´Àº Ŭ¶óÀ̾ðÆ®ÀÇ À¥ ºê¶ó¿ìÀú »ó¿¡¼ ½ÇÇàµÇ±â ¶§¹®¿¡, ¸¸¾à ¾ÖÇø´¿¡°Ô ¾Æ¹«·± º¸¾È»óÀÇ Á¦¾àÀÌ ¾ø´Ù¸é, ¾ÖÇø´Àº Ŭ¶óÀ̾ðÆ®ÀÇ ¸Þ¸ð¸®³ª ·ÎÄà Çϵå¿Í °°Àº ÀÚ¿øµé¿¡ ¸¶À½´ë·Î Á¢±ÙÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. À̰ÍÀº Ŭ¶óÀ̾ðÆ®ÀÇ ÄÄÇ»ÅÍ¿¡ ¾Æ¹«³ª µé¾î¿Ã ¼ö ÀÖ´Â Ä¿´Ù¶õ ±¸¸ÛÀ» ¶Õ¾î ³õ´Â °Í°ú ¸¶Âù°¡Áö ÀÔ´Ï´Ù. ÀÚ¹Ù¿¡¼´Â ¾ÖÇø´ÀÇ º¸¾È»óÀÇ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ, ¾ÖÇø´ÀÌ ½ÇÇàµÇ´Â À¥ ºê¶ó¿ìÀú°¡ ¾ÖÇø´ÀÇ ¸¹Àº ±â´ÉµéÀ» °¨½ÃÇϵµ·Ï ¸¸µé¾ú½À´Ï´Ù. ƯÈ÷, ¾ÖÇø´Àº Ŭ¶óÀÌ¾ðÆ®¿Í ¿ÜºÎ¸¦ ¼ÒÄϰú °°Àº ¹æ¹ýÀ» »ç¿ëÇØ¼ ¿¬°áÇÏ·Á°í ÇÒ ¶§ ºê¶ó¿ìÀú·ÎºÎÅÍ ¸¹Àº Á¦¾àÀ» ¹Þ½À´Ï´Ù.
ÀÌ·¯ÇÑ ¾ÖÇø´¿¡¼ RMI¸¦ »ç¿ëÇÏ·Á¸é ¸î °¡Áö °í·ÁÇØ¾ß ÇÒ »çÇ×µéÀÌ ÀÖ½À´Ï´Ù. RMI°¡ ³×Æ®¿öÅ© °ü·Ã ¼¼ºÎ »çÇ×µéÀ» Àß °¨Ãß¾î ÁØ ´öºÐ¿¡, ¿ì¸®´Â ÀÏ¹Ý °´Ã¼¸¦ ´Ù·çµíÀÌ ¸Þ¼µå¸¦ °£´ÜÇÏ°Ô È£ÃâÇÔÀ¸·Î½á ¼¹öÀÇ ¼ºñ½º¸¦ ½ÇÇàÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ÇÏÁö¸¸, ½ÇÁ¦·Î ³»ºÎ¿¡¼´Â RMI°¡ Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀÌÀÇ Åë½ÅÀ» À§ÇØ ¼ÒÄÏ Åë½ÅÀ» »ç¿ëÇØ¼ º¹ÀâÇÑ °úÁ¤À» ó¸®Çϰí ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î, ¾ÖÇø´¿¡¼ RMI¸¦ »ç¿ëÇÑ´Ù´Â °ÍÀº Ŭ¶óÀ̾ðÆ®ÀÇ À¥ ºê¶ó¿ìÀú¿¡¼ ½ÇÇà µÇ°í ÀÖ´Â ¾ÖÇø´ÀÌ ¼¹ö¿Í ¼ÒÄÏÀ¸·Î ¿¬°áµÉ ¼ö ÀÖ¾î¾ß ÇÑ´Ù´Â ¾ê±âÀÔ´Ï´Ù.
À§¿¡¼ ¾ð±ÞÇßµíÀÌ ¾ÖÇø´Àº, ¾ÖÇø´ÀÌ ½ÇÁ¦ µ¿ÀÛÇϰí ÀÖ´Â ±â¹ÝÀÎ À¥ ºê¶ó¿ìÀú ³»¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â ÀÚ¹Ù°¡»ó¸Ó½ÅÀÇ Áö¹è¸¦ ¹Þ½À´Ï´Ù. ´ëºÎºÐÀÇ ºê¶ó¿ìÀúÀÇ ÀÚ¹Ù°¡»ó¸Ó½Å¿¡¼´Â º¸¾È»óÀÇ ÀÌÀ¯·Î, ¾ÖÇø´Àº ÀÚ½ÅÀÌ ·ÎµåµÈ ¼¹ö¸¸ ¼ÒÄÏÀ» ¿¬°áÇÒ ¼ö ÀÖ°Ô Á¦ÇÑÇÕ´Ï´Ù.
±×¸² 18‑9 ¾ÖÇø´°ú ¼¹öÀÇ ¿¬°á
ÀÌ·¯ÇÑ ¾ÖÇø´ÀÇ º¸¾È»óÀÇ Á¦¾à ¶§¹®¿¡, ¾ÖÇø´¿¡¼ RMI¸¦ »ç¿ëÇÏ·Á¸é RMI¿¡ »ç¿ëµÉ ÇÁ·Î±×·¥µéÀÇ À§Ä¡°¡ Áß¿äÇØÁý´Ï´Ù.
¾ÖÇø´¿¡¼ RMI¸¦ ½ÇÇàÇϱâ À§Çؼ´Â ¸ÕÀú, ¾ÖÇø´ÀÌ »ç¿ëÇÒ ¿ø°Ý °´Ã¼¿Í ¿ø°Ý °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º°¡ °°Àº ¼¹ö ÂÊ ÇÁ·Î±×·¥µéÀº ¾ÖÇø´ÀÌ ·Îµå µÈ ¼¹ö¿Í °°Àº ÄÄÇ»ÅÍ¿¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ±×·¡¾ß¸¸ ÀÚ½ÅÀÌ ·Îµå µÈ ¼¹ö¸¸ Åë½ÅÀÌ °¡´ÉÇÑ ¾ÖÇø´ÀÇ Á¦¾àÀ» ¹þ¾î³ªÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ¸¶Âù°¡Áö·Î ¾ÖÇø´¿¡°Ô ¿ø°Ý °´Ã¼¸¦ ³Ñ°ÜÁÙ RMI Registry ¿ª½Ã ¾ÖÇø´ÀÌ ·Îµå µÈ ¼¹ö¿¡¼ ½ÇÇà µÇ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® °ü·Ã ÆÄÀÏÀÎ StubŬ·¡½º´Â ¾ÖÇø´ Äڵ尡 »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¾ÖÇø´ ÄÚµå¿Í °°Àº °ø°£ ¾È¿¡ ÀúÀå µÇ¾î¾ß ÇÕ´Ï´Ù.
Á¤¸®ÇÏ¸é ´ÙÀ½ Ç׸ñµéÀº ¸ðµÎ °°Àº ¼¹ö ³»¿¡ Á¸ÀçÇϰųª ½ÇÇà µÇ¾î¾ß¸¸, ¾ÖÇø´ÀÌ RMI¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
n ¾ÖÇø´À» Æ÷ÇÔÇÒ À¥ ÆäÀÌÁöµé
n ¾ÖÇø´ ÄÚµå
n Stub Ŭ·¡½º
n ¿ø°Ý °´Ã¼µé
n RMI Registry
¾Æ·¡ ±×¸²Àº ½ÇÁ¦·Î °ü·Ã ÆÄÀϵéÀÌ ¼¹ö¿¡ ¹èÄ¡µÈ ¸ð½ÀÀ» ³ªÅ¸³À´Ï´Ù.
±×¸² 18‑10 ¾ÖÇø´¿¡¼ RMI¸¦ »ç¿ëÇϱâ À§ÇØ ÆÄÀϵéÀ» ¹èÄ¡ÇÑ ¸ð½À
ÀÌó·³, ³×Æ®¿öÅ© Åë½Å¿¡¼»Ó¸¸ ¾Æ´Ï¶ó, ¾ÖÇø´Àº Ŭ¶óÀ̾ðÆ®ÀÇ ·ÎÄà ÀÚ¿ø¿¡ Á¢±ÙÇÏ·Á°í ÇÒ ¶§µµ ¿ª½Ã Á¦¾àÀ» ¹Þ½À´Ï´Ù. ¸¸¾à ¼¹ö¿¡¼ Á¦°øÇÏ´Â ¸Þ¼µå°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ·ÎÄà ÀÚ¿ø¿¡ Á¢±ÙÇÏ·Á°í ÇÑ´Ù¸é ÀüºÎ ¼öÁ¤ µÇ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù.
¡®¹é¹®ÀÌ ºÒ¿©ÀϰßÀÌ°í ¹é¹®ÀÌ ºÒ¿©ÀÏŸ(ÝÕåýìéöè)¶ó¡¯ ¹é¹ø º¸´Â °Í º¸´Ù Çѹø ÄÚµùÇØº¸´Â °ÍÀÌ ÀÌÇØ°¡ ´õ Àß µÇ´Â °Í ¾Æ´Ï°Ú½À´Ï±î? À§ RMI¾îÇø®ÄÉÀÌ¼Ç ¸¸µé¾î º¸±â¿¡¼ ½ÇÇàÇØ º¸¾Ò´ø Çö±ÝÀÎÃâ±â ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼ ¾ÖÇø´¿¡¼ RMI°¡ ¾î¶»°Ô ½ÇÇàÀÌ µÇ´ÂÁö¸¦ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â ¼ø¼´Â À§¿¡¼ ¾ð±ÞÇÑ µ¥·Î ÇÏ½Ã¸é µÇ°í ½ÇÇà ¶ÇÇÑ ¸¶Âù°¡Áö·Î ÇÏ½Ã¸é µË´Ï´Ù. ½±°Ô »ý°¢Çϸé Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥¿¡ ¾ÖÇø´ÀÌ Ã·°¡ µÇ¾ú´Ù°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. ¿©±â¿¡¼´Â ¾ÖÇø´À» ½ÇÇàÇÏ´Â ÇÁ·Î±×·¥¸¸À» ¿¹Á¦·Î Á¦½ÃÇÏ°í ³ª¸ÓÁö ÇÁ·Î±×·¥µéÀº À§ ¿¹Á¦¿¡¼ ÂüÁ¶Çؼ ½ÇÇà½ÃÄѺ¸°Ú½À´Ï´Ù.
¸ÕÀú ¿ø°Ý °´Ã¼¸¦ »ç¿ëÇÒ ¾ÖÇø´ ½ÇÇàÀ» À§ÇÑ Å¬¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥°ú HTMLÆÄÀÏÀ» ¸¸µé¾î º¸°Ú½À´Ï´Ù. À§¿¡¼ ¸»ÇßµíÀÌ ¿ø°Ý°´Ã¼¸¦ »ç¿ëÇÏ´Â º¸ÅëÀÇ Å¬¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥°ú º° ´Ù¸¦ °ÍÀÌ ¾ø½À´Ï´Ù.
BankApplet.java (¾ÖÇø´ ½ÇÇàÀ» À§ÇÑ Å¬·¡½º) |
import java.awt.*; import java.rmi.*; import java.applet.Applet; public class BankApplet extends Applet { int balance, balance1, balance2 = 0; String a,b,c =null; public void init() { try { Bank bank = (Bank)Naming.lookup("//localhost/BankIp"); balance = bank.getBalance(); balance1 = bank.deposit(1000); balance2 = bank.withdraw(5000); a = balance + ""; b = balance1 + ""; c = balance2 + ""; } catch (Exception e) { System.out.println("BankApplet exception: " + e.getMessage()); e.printStackTrace(); } } public void paint(Graphics g) { g.drawString(a, 25, 20); g.drawString(b, 125, 20); g.drawString(c, 225, 20); } } |
C:\JavaExample\18>javac BankApplet.java |
Bank.html (¾ÖÇø´ ½ÇÇà HTML ¿¹Á¦) |
<HTML> <title>Bank RMI</titlt> <body> <center> <h1>Bank RMI</h1> </center> The balance from the BankServer is: <p> <applet code="BankApplet" width=500 height=120> </applet> </body> </HTML> |
ÀÌÁ¦ Áغñ°¡ ´Ù µÆÀ¸´Ï ¾ÖÇø´À» ½ÇÇà ÇØ º¸°Ú½À´Ï´Ù. ¸ÕÀú RMI Registry ¼ºñ½º¸¦ ½ÃÀÛ ÇÏ°í³ª¼ ¼¹öÇÁ·Î±×·¥À» ½ÇÇàÇÕ´Ï´Ù.
C:\JavaExample\18>rmiregistry |
C:\JavaExample\18>java BankImpl bankip was rebinded with name 'BankIp' |
¸¶Áö¸·À¸·Î ¾ÖÇø´ºä¾î(Appletviewer)¸¦ ½ÇÇàÇØ º¸°Ú½À´Ï´Ù.
C:\JavaExample\18>appletviewer Bank.html |
¿¹Á¦¸¦ ½ÇÇàÇØ º¸¸é ¾Õ¿¡¼ ¼³¸íÇÑ ¾ÖÇø´¿¡¼ RMI¼ºñ½º¿¡ Á¢±ÙÇÑ´Ù´Â °ÍÀÌ ¾î·Æ°í ³ÇØÇϱ⸸ ÇÏ´Ù´Â »ý°¢Àº »ç¶óÁö°í ¡®¾î º° °Í ¾Æ´Ï³×¡¯ ¶ó´Â »ý°¢ÀÌ µå½Ç °ÍÀÔ´Ï´Ù. ±× ÀÌÀ¯´Â ±¸ÇöµÇ´Â ¸ð½ÀÀÌ RMI¼ºñ½º¸¦ ¹Þ´Â ´Ù¸¥ ÇÁ·Î±×·¥µé°ú º° Â÷À̾ø´Ù°í »ý°¢Çϱ⠶§¹®À̰ÚÁö¸¸ ¾ÖÇø´¿¡¼ RMI¼ºñ½º¿¡ Á¢±ÙÇÑ´Ù´Â °ÍÀº RMI¼¹ö°¡ µ¿ÀÛÇÏ´Â ÄÄÇ»ÅÍ¿¡¼¸¸ µ¿ÀÛÀ» ÇÑ´Ù´Â °Í¿¡ À¯³äÇØ¾ß ÇÕ´Ï´Ù. ÀÌ°Ç RMI¼ºñ½º¿¡¼¸¸ ±¹ÇÑµÈ °ÍÀÌ ¾Æ´Ï¶ó ¾ÖÇø´À» »ç¿ëÇÏ´Â ¸ðµç ÇÁ·Î±×·¥¿¡ ÇØ´çµÇ´Â ¸»ÀÏ °ÍÀÔ´Ï´Ù.
¢Ñ ¾ÖÇø´¿¡¼ RMI »ç¿ëÇϱâ |
¾ÖÇø´ÀÇ º¸¾È»óÀÇ Á¦¾à ¶§¹®¿¡ ´ÙÀ½Àº ¸ðµÎ °°Àº ¼¹ö¿¡ À§Ä¡ÇØ¾ß ÇÑ´Ù 1. ¾ÖÇø´À» Æ÷ÇÔÇÏ´Â À¥ ÆäÀÌÁöµé 2. ¾ÖÇø´ ÄÚµå 3. Stub Ŭ·¡½º 4. ¿ø°Ý °´Ã¼ 5. RMI Registry |
ÀÌ·¯ÇÑ ¾ÖÇø´ÀÇ ¹®Á¦Á¡¿¡ º¸¾È ÀÎÁõ¼¸¦ Ãß°¡ÇÑ´Ù¸é À§¿Í °°Àº ¹®Á¦µéÀº »ç¶óÁö°ÚÁö¸¸ ±×·¸Áö ¾Ê´Ù¸é ±âÁ¸ ¾ÖÇø´ÀÇ º¸¾ÈÀ» ÁöÄÑ¾ß ÇÕ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |