·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[°´Ã¼ÁöÇâ SW ¼³°èÀÇ ¿øÄ¢] ¨é ÀÎÅÍÆäÀ̽º ºÐ¸®ÀÇ ¿øÄ¢

ÃÖ»óÈÆ (ÇÚµð¼ÒÇÁÆ®), ¼ÛÄ¡Çü (¼­¿ï´ë)   2005/09/02
¿¬Àç¼ø¼­
1ȸ. ´Ù½Ã º¸¸é Å©°Ô º¸ÀÌ´Â °³¹æ-Æó¼â ¿øÄ¢
2È÷. Çì¾îÁ®¼­ Çàº¹ÇØÁø »ç·Ê¿¬±¸, ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢
3ȸ. ÀÎÅÍÆäÀ̽º ºÐ¸®ÀÇ ¿øÄ¢
4ȸ. ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢
5ȸ. ÀÇÁ¸ °ü°è ¿ªÀüÀÇ ¿øÄ¢
6ȸ. Á¤¸®
¡°»ç¶÷Àº ´Ù¸¥ »ç¶÷°ú ¸»À» ÇÒ ¶§ µè´Â »ç¶÷ÀÇ °æÇè¿¡ ¸ÂÃß¾î ¸»Çؾ߸¸ ÇÑ´Ù. ¿¹¸¦ µé¾î ¸ñ¼ö¿Í À̾߱âÇÒ ¶§´Â ¸ñ¼ö°¡ »ç¿ëÇÏ´Â ¾ð¾î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.¡± - ÇöóÅæÀÇ ÆÄ¿¡Åæ(Phaethon)

¡°¾Æ¹«µµ µè´Â »ç¶÷ÀÌ ¾ø´Â ½£ ¼Ó¿¡¼­ ³ª¹«°¡ ¾²·¯Áú ¶§ ¼Ò¸®°¡ ³ª´Â°¡?¡±¶ó´Â ºÒ°¡¿¡¼­ À¯·¡ÇÑ Áú¹®ÀÌ ÀÖ´Ù. ±×°£ ¸¹Àº ÇöÀÚµéÀÌ ÀÌ Áú¹®¿¡ ´ëÇØ ¡®¾Æ´Ï´Ù¡¯¶ó´Â ÀϰüµÈ ´ë´äÀ» ÇØ¿Ô´Ù. ¼Ò¸®´Â Áö°¢µÇ¾î¾ß¸¸ ¼Ò¸®°¡ µÇ±â ¶§¹®¿¡ ³ª¹«°¡ ¾²·¯Áú ¶§ À½ÆÄ´Â ¹ß»ýÇϰÚÁö¸¸ µè´Â »ç¶÷ÀÌ ¾ø´Ù¸é ¼Ò¸®´Â ¾ø´Ù´Â °ÍÀÌ´Ù. »ç¶÷ »çÀÌÀÇ Ä¿¹Â´ÏÄÉÀ̼ǵµ ¸¶Âù°¡ÁöÀÌ´Ù. Àü´ÞÇÏ·Á´Â »ç¶÷ÀÌ ¹«¾ð°¡¸¦ ¿ÜÄ£´Ù°í ÇØµµ µè´Â »ç¶÷ÀÌ ¾ø´Ù¸é Ä¿¹Â´ÏÄÉÀ̼ÇÀº ¾ø´Â °ÍÀÌ´Ù.

¸¸¾à µè´Â »ç¶÷Àº ÀÖÁö¸¸ ¹ß½ÅÀÚ°¡ ¼ö½ÅÀÚÀÇ °æÇè, Áö½Ä, ±â´ë¸¦ °í·ÁÇÏÁö ¾Ê°í ¶°µé¾î ´ë´Â °ÍÀº ¾î¶³±î? ÀÌ ¿ª½Ã ¿Ã¹Ù¸¥ Ä¿¹Â´ÏÄÉÀ̼ÇÀ̶ó ÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. ¼ö½ÅÀÚ°¡ Ä¿¹Â´ÏÄÉÀÌ¼Ç ¸Þ½ÃÁö¸¦ Á¦´ë·Î ÀÌÇØ ¶Ç´Â Áö°¢ÇÏÁö ¸øÇϰųª, ±â´ë¿Í ¾î±ß³ª ÀǽÄÀûÀ¸·Î ȤÀº ¹«ÀǽÄÀûÀ¸·Î ¸Þ½ÃÁö¸¦ Èê·Á¹ö¸± °¡´É¼ºÀÌ Å©±â ¶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ÇöóÅæÀÇ ¸»´ë·Î ¼ö½ÅÀÚÀÇ °æÇè, ¿ª·® ±×¸®°í ±â´ë¸¦ °í·ÁÇØ ¸Þ½ÃÁö¸¦ Àü´ÞÇØ¾ß¸¸ Á¦´ë·Î µÈ Ä¿¹Â´ÏÄÉÀ̼ÇÀÌ µÉ ¼ö ÀÖ´Ù.

¸ÆÅ²Áö ÀϺ» Áö»çÀÇ Ä¿¹Â´ÏÄÉÀÌ¼Ç ½ºÆä¼È¸®½ºÆ®·Î ±Ù¹«Çϰí ÀÖ´Â Å×·ç¾ß ÇϳªÄÚ´Â Á» ´õ ±¸Ã¼ÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ À̾߱âÇÑ´Ù. ¡°Å¸Àο¡°Ô ¹«¾ð°¡¸¦ ÀüÇÏ·Á°í ÇÒ ¶§´Â ÀÚ½ÅÀÌ À̾߱âÇÏ°í ½ÍÀº °ÍÀ» ¾î¶»°Ô Á¤¸®ÇÒ±î, ¾î¶»°Ô ¸»ÇÒ±î, ¾î¶»°Ô ¾µ±î¸¦ »ý°¢Çϱâ Àü¿¡ ¹Ýµå½Ã °úÁ¦(Å׸¶)¿Í »ó´ë¹æÀÌ ±â´ëÇÏ´Â ¹ÝÀÀÀ» È®ÀÎÇÏÀÚ.¡±

ÀÌ ±ÛÀ» Àаí ÀÖ´Â ´©±¸³ª ÀÚ½ÅÀÌ ¸»ÇÏ°í ½ÍÀº ¸Þ½ÃÁö¸¦ ´õ¿í Àß Àü´ÞÇϱâ À§ÇØ º¸°í¼­¸¦ ¸î ¹ø¾¿ °íÄ¡°í ÆÄ¿öÆ÷ÀÎÆ®ÀÇ µðÀÚÀΰú Ä÷¯¿¡ °øÀ» µé¿© º» °æÇèÀÌ ÀÖÀ» °ÍÀÌ´Ù. ±×·±µ¥ Ȥ½Ã ÀÌ·¯ÇÑ ³ë·ÂÀÌ °úÁ¦ ȤÀº Å׸¶¿¡ ´ëÇØ ÀÚ½ÅÀÌ ¸»ÇÏ°í ½ÍÀº °Í, ÀÚ½ÅÀÌ Áß¿äÇÏ´Ù°í »ý°¢ÇÏ´Â °ÍÀ» Àü´ÞÇϱâ À§ÇÑ °ÍÀº ¾Æ´Ï¾ú´ÂÁö. ¡®¿©·¯ºÐ¡¯ÀÌ ¸»ÇÏ°í ½ÍÀº °Í, ¡®¿©·¯ºÐ¡¯ÀÌ Áß¿äÇÏ´Ù »ý°¢ÇÏ´Â °Íº¸´Ù ´õ¿í Áß¿äÇÑ °ÍÀÌ ÀÖ´Ù. »ó´ë¹æÀÌ Àü´Þ¹Þ±â¸¦ ±â´ëÇϰí ÀÖ´Â ¡®¸Þ½ÃÁö¡¯°¡ ¹«¾ùÀÌ³Ä ÇÏ´Â °ÍÀÌ´Ù.

¿©·¯ºÐÀÌ ¾Æ¹«¸® ¸¹Àº Áغñ¸¦ Çß°í, ¸¹Àº µ¥ÀÌÅ͸¦ ÃàÀûÇß°í, ÇÏ°í ½ÍÀº ¸»ÀÌ ¸¹´õ¶óµµ ÀÌ·¯ÇÑ ³»¿ëÀº »ó´ë¹æÀÇ ±â´ë¶ó´Â ÇÊÅ͸¦ ÅëÇØ ¿©°úµÇ¾î Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê°í ÁغñÇÑ ÀÚ·á°¡ ¾Æ±î¿ö¼­ À̰ÍÀú°Í ¸ðµÎ Àü´ÞÇÏ´Â °ÍÀº ¼ö½ÅÀÚ¿¡°Ô´Â ÀÏÁ¾ÀÇ °í¿ªÀÌ´Ù. ¹°·Ð ÁغñÇÑ ³ë·Â°ú ÀÚ·á Áß ÀϺθ¦ ¹ö·Á¾ß ÇϰÚÁö¸¸ ÀϺθ¦ ¹ö¸®°í È¿°úÀûÀ¸·Î ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ´Â °ÍÀÌ ¸ðµç ÀڷḦ ²ø¾î ¾ÉÀº ä ¸Þ½ÃÁö¸¦ Çã°ø ¼ÓÀ¸·Î Èê·Áº¸³»´Â °Íº¸´Ù ÈξÀ Çö¸íÇÑ ¼±ÅÃÀÏ °ÍÀÌ´Ù.

°´Ã¼ÁöÇ⠽ýºÅÛÀº ¸Þ½ÃÁö¸¦ ÅëÇØ Ä¿¹Â´ÏÄÉÀ̼ÇÇÏ´Â ¼ö¸¹Àº °´Ã¼µé·Î ±¸¼ºµÈ´Ù. ±×¸®°í ÀÌµé °´Ã¼ °£ÀÇ Åë½Å¿¡µµ ¾Õ¿¡¼­ ¾ð±ÞÇÑ Ä¿¹Â´ÏÄÉÀ̼ÇÀÇ ³í¸®°¡ ±×´ë·Î Àû¿ëµÈ´Ù. Áï »ó´ë¹æÀÌ ±â´ëÇϰí ÀÖ´Â ¸Þ½ÃÁö¸¦ ¡®±º´õ´õ±â ¾øÀÌ¡¯ Àü´ÞÇØ¾ß ÇÏµí ¼­ºñ½º¸¦ Á¦°øÇÏ´Â °´Ã¼´Â ÀÚ½ÅÀ» ÀÌ¿ëÇÏ´Â °´Ã¼¿¡°Ô ÇØ´ç °´Ã¼°¡ ±â´ëÇÏ´Â ¼­ºñ½º¸¸À» Á¦°øÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. À̹ø È£¿¡¼­ »ìÆìº¼ ÀÎÅÍÆäÀ̽º ºÐ¸®ÀÇ ¿øÄ¢(Interface Segregation Principle, ÀÌÇÏ ISP)ÀÌ ¹Ù·Î ÀÌ·¯ÇÑ ¿øÄ¢À» ¼³¸íÇØ ÁØ´Ù.

ÀÎÅÍÆäÀ̽º ºÐ¸®ÀÇ ¿øÄ¢ °³¿ä
¿äÁò º¹Á¦ÆùÀ¸·Î ÀÎÇÑ ºÒ¹ý °áÁ¦°¡ »çȸÀûÀÎ ¹®Á¦°¡ µÇ°í ÀÖ´Ù. ƯÁ¤ »ç¿ëÀÚÀÇ Æù Á¤º¸¸¦ º¹Á¦ÇØ ¿Â¶óÀλ󿡼­ ºÒ¹ý °áÁ¦¸¦ ÇÏ´Â °ÍÀÌ´Ù. ºÒ¹ý °áÁ¦ÀÚ´Â ½Ç¹°À» ±¸¸ÅÇϰųª Çö±ÝÀ¸·Î ȯ±Ý °¡´ÉÇÑ ¿Â¶óÀÎ È­Æó µîÀ» °áÁ¦Çϴµ¥, ¿ä±ÝÀº ½ÇÁ¦ Æù »ç¿ëÀÚ¿¡°Ô °ú±ÝµÈ´Ù. ±×·¡¼­ ÈÞ´ëÆù °áÁ¦ ¼­ºñ½º¸¦ Á¦°øÇÏ´Â ¸ð ¾÷ü¿¡¼­´Â ÀÌ·± º¹Á¦Æù »ç¿ëÀÚµéÀÇ ÆÐÅÏÀ» ã¾Æ Â÷´ÜÇϰíÀÚ ÇÑ´Ù. ºÒ¹ý °áÁ¦ Â÷´Ü ½Ã½ºÅÛÀº ÀÚ»çÀÇ °áÁ¦ ½Ã½ºÅÛÀ» ÀÌ¿ëÇÏ´Â °¢ ÄÁÅÙÃ÷ ÇÁ·Î¹ÙÀÌ´õ(CP, Contents Provider) º°·Î ·êÀ» ¼³Á¤ÇØ ºÒ¹ý °áÁ¦ ÆÐÅÏ¿¡ ÇØ´çÇÏ´Â »ç¿ëÀÚÀÇ °áÁ¦¸¦ Â÷´ÜÇϰí, ÀÌ¿¡ ´ëÇØ ȸ»ç ³»ºÎ ´ã´çÀÚ¿Í ÄÁÅÙÃ÷ ÇÁ·Î¹ÙÀÌ´õ ´ã´çÀÚ¿¡°Ô ƯÁ¤ ½Ã°£¿¡ ¸ÞÀÏ·Î ¸®Æ÷ÆÃÀ» ÇÏ°Ô µÈ´Ù. À̸¦ À§ÇØ ÀÌ È¸»çÀÇ °³¹ßÀÚ A±ºÀº ´ÙÀ½°ú °°Àº ±¸Á¶ÀÇ ÇÁ·Î±×·¥À» ¸¸µé¾ú´Ù.

<±×¸² 1> ÃʱâÀÇ ºÒ¹ý °áÁ¦ Â÷´Ü ½Ã½ºÅÛ

±×·±µ¥ ¸¸¾à À̸ÞÀÏ ¸®Æ÷ÆÃ ¿Ü¿¡ SMS¸¦ ÅëÇÑ ¸®Æ÷ÆÃ ±â´Éµµ ±¸ÇöÇØ ´Þ¶ó´Â ¿äûÀÌ µé¾î¿Ô´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î? SMS¿Í °ü·ÃµÈ ¸Þ½îµå¸¦ Ãß°¡Çϰųª, ÇöÀçÀÇ À̸ÞÀÏ °ü·Ã ¸Þ½îµå¸¦ SMS °ü·Ã ¸Þ½îµå¿Í ÅëÇÕÇØ getReportingRule°ú °°Àº ¸Þ½îµå¸¦ ¸¸µé¾î¾ß ÇÒ °ÍÀÌ´Ù.

±×·±µ¥ ÀÌ·¯ÇÑ ¸Þ½îµå Ãß°¡´Â À̿ʹ ÀüÇô »ó°ü ¾ø´Â BlockTransaction Ŭ·¡½º¿¡°Ô±îÁö ¿µÇâÀ» ¹ÌÄ¡°Ô µÇ°í, BlockTransaction Ŭ·¡½ºÀÇ ÀçÄÄÆÄÀÏ, Àç¹èÆ÷ µî°ú ¶È°°Àº ¹®Á¦¸¦ ¾ß±âÇÑ´Ù.

¿Ö ÀÌ·± ¹®Á¦°¡ ¹ß»ýÇßÀ»±î? ¿øÀÎÀº BlockTransaction°ú EmailReporting°ú °°Àº Ŭ·¡½º°¡ CPRuleÀÌ Á¦°øÇÏ´Â ¼­ºñ½º Áß ÀϺθ¸À» »ç¿ëÇϴµ¥ ÀÖ´Ù. CPRule ÀÔÀå¿¡¼­´Â BlockRule°ú EmailRule ¸ðµÎ¸¦ °®´Â °ÍÀÌ ÀÀÁý·Â ÀÖ´Â ±¸¼ºÀÌÁö¸¸ BlockTransactionÀÇ ÀÔÀå¿¡¼­ º¸¸é getEmailRule()Àº ÇÊ¿ä¾ø´Â ¼­ºñ½ºÀÌ´Ù. ¿ª½Ã EmailReportingÀÇ ÀÔÀå¿¡¼­´Â getBlockRule()ÀÌ ÇÊ¿ä¾ø´Â ¼­ºñ½º¶ó ÇÒ ¼ö ÀÖ´Ù. Áï CPRuleÀÌ ÀÚ½ÅÀ» ÀÌ¿ëÇϴ Ŭ¶óÀ̾ðÆ®ÀÇ ÀÔÀåÀ» °í·ÁÇÏÁö ¾Ê°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ÀڱⰡ ÇÏ°í ½ÍÀº ¸»À» ´Ù Çϰí ÀÖ´Â °ÍÀÌ´Ù. ÇöÀç´Â CPRuleÀ» ÀÌ¿ëÇÏ·Á¸é ¸ðµç ¼­ºñ½º¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý ¹Û¿¡´Â ¾ø´Ù.

ISP¸¦ ÅëÇØ ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ISP¸¦ °£´ÜÈ÷ Á¤ÀÇÇÏ¸é ¡°Å¬¶óÀÌ¾ðÆ®´Â ÀÚ½ÅÀÌ »ç¿ëÇÏÁö ¾Ê´Â ¸Þ½îµå¿¡ ÀÇÁ¸ °ü°è¸¦ ¸ÎÀ¸¸é ¾ÈµÈ´Ù¡±´Â °ÍÀÌ´Ù. ±×·±µ¥ ¾î¶»°Ô ÀÚ½ÅÀÌ »ç¿ëÇÏÁö ¾Ê´Â ¸Þ½îµå¿¡ ÀÇÁ¸ °ü°è¸¦ ¸ÎÁö ¾Ê°Ô ÇÒ ¼ö ÀÖÀ»±î? ´äÀº ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ¿¡ µû¶ó ¾ÕÀÇ ÇÁ·Î±×·¥ ±¸Á¶¸¦ ¹Ù²Ù¾î º¸¸é ´ÙÀ½°ú °°´Ù.

<±×¸² 2> ISP¸¦ Àû¿ëÇØ ¸®ÆÑÅ丵ÇÑ ºÒ¹ý °áÁ¦ Â÷´Ü ½Ã½ºÅÛ
¡¡
CPRuleÀº CPBlockRule°ú CPEmailRuleÀ̶ó´Â µÎ °³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ´Ù. ±×¸®°í BlockTransaction°ú EmailReportingÀº CPRuleÀ» Á÷Á¢ ÀÌ¿ëÇÏÁö ¾Ê°í °¢°¢ ÀÚ½ÅÀÇ ±â´ë¿¡ ¸Â´Â ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ CPRuleÀÌ Á¦°øÇÏ´Â ¼­ºñ½º¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

ÀÌÁ¦ SMS °ü·Ã ±â´ÉÀ» ±âÁ¸ À̸ÞÀÏ ±â´É°ú ÅëÇÕÇØ Á¦°øÇϵç, º°µµ·Î Á¦°øÇÏµç °áÁ¦ Â÷´Ü Ŭ·¡½º´Â ÀüÇô º¯È­ÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê°Ô µÈ´Ù. °áÁ¦ Â÷´Ü ±ÔÄ¢À̶ó´Â ÀÎÅÍÆäÀ̽º°¡ ÀÌ·¯ÇÑ º¯È­ÀÇ ¹æº® ¿ªÇÒÀ» ÇØÁֱ⠶§¹®ÀÌ´Ù. ±×¸®°í SMS ±â´ÉÀ» À̸ÞÀϰú º°µµ·Î Ãß°¡ÇÑ´Ù¸é ±âÁ¸ÀÇ À̸ÞÀÏ ¸®Æ÷ÆÃ ¿ª½Ã º¯È­ÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù(À̸ÞÀÏ ±â´É°ú SMS ±â´ÉÀ» ÅëÇÕÇÒÁö ¸»Áö´Â µÑ »çÀÌ¿¡ ¾ó¸¶³ª °øÅ뼺°ú À¯»ç¼ºÀÌ ÀÖ´À³Ä¿¡ µû¶ó ´Þ¶óÁö°Ô µÉ °ÍÀÌ´Ù).

ISP¸¦ ¡®ÇϳªÀÇ ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽ºº¸´Ù´Â, ¿©·¯ °³ÀÇ ±¸Ã¼ÀûÀÎ ÀÎÅÍÆäÀ̽º°¡ ³´´Ù¡¯¶ó°íµµ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ¾î¶² Ŭ·¡½º¸¦ ÀÌ¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®°¡ ¿©·¯ °³ ÀÖ°í, À̵éÀÌ ÇØ´ç Ŭ·¡½ºÀÇ Æ¯Á¤ ºÎºÐÁýÇÕ¸¸À» ÀÌ¿ëÇÑ´Ù¸é À̵éÀ» µû·Î ÀÎÅÍÆäÀ̽º·Î »©³»¾î Ŭ¶óÀÌ¾ðÆ®°¡ ±â´ëÇÏ´Â ¸Þ½ÃÁö¸¸À» Àü´ÞÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù.

ù ¿¬Àç¿¡¼­ º¸¾Ò´ø OCP¿¡¼­´Â ¡®È®À塯ÀÌ ÇÙ½ÉÀ̾ú°í Àß Á¤ÀÇµÈ °øÅëÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ¼öÁ¤¿¡´Â ¡®´Ý°í¡¯ È®Àå¿¡´Â ¡®¿­·Á Àִ¡¯ ±¸Á¶¸¦ ¸¸µé¾ú´Ù. SRP¿¡¼­´Â ¡®º¯È­¡¯°¡ ÇÙ½ÉÀ̾ú°í °¢ Ŭ·¡½º°¡ ÇϳªÀÇ Ã¥ÀÓ¸¸À» °®µµ·Ï ÇÏ¿© º¯È­°¡ ´Ù¸¥ Ŭ·¡½º·Î ¹ÌÄ¡Áö ¾Êµµ·Ï ÇÏ´Â ±¸Á¶¸¦ °¡´ÉÄÉ ÇÏ¿´´Ù. ±×·¯¸é ISPÀÇ ÇÙ½ÉÀº ¹«¾ùÀϱî? SRP¿Í ¸¶Âù°¡Áö·Î ¡®º¯È­¡¯°¡ °üÀüÀÇ Æ÷ÀÎÆ®°¡ µÈ´Ù. ISP´Â µÚ¿¡¼­ ¼³¸íÇÏ´Â ¡®ISP vs. SRP¡¯¿¡¼­ ¼³¸íÇϵíÀÌ ¾î¶² Ŭ·¡½º ȤÀº ÀÎÅÍÆäÀ̽º°¡ ¿©·¯ Ã¥ÀÓ È¤Àº ¿ªÇÒÀ» °¡Áú ¼ö ÀÖ´Ù´Â °ÍÀ» ÀÎÁ¤ÇÑ´Ù. ÀÌ·¯ÇÑ °æ¿ì ISP°¡ »ç¿ëµÇ´Âµ¥ SRP°¡ Ŭ·¡½º ºÐ¸®¸¦ ÅëÇØ º¯È­¿¡ÀÇ ÀûÀÀ¼ºÀ» ȹµæÇÏ´Â ¹Ý¸é, ISP¿¡¼­´Â ÀÎÅÍÆäÀ̽º ºÐ¸®¸¦ ÅëÇØ °°Àº ¸ñÇ¥¿¡ µµ´ÞÇÏ°Ô µÈ´Ù. ÀÌÁ¦ ÀüÇüÀûÀÎ ISP ±¸Á¶¿Í ÄÉÀ̽º ½ºÅ͵ð·Î ³Ñ¾î°¡±â·Î ÇÏÀÚ.
¡¡
ÀüÇüÀûÀÎ ISP ±¸Á¶
<±×¸² 3>À» º¸¸é Service ÀÎÅÍÆäÀ̽º´Â 3°³ ±ºÀÇ ¸Þ½îµå ÁýÇÕÀ» Á¦°øÇÏ¸ç °¢ Ŭ¶óÀÌ¾ðÆ®´Â À̵é Áß ÀϺθ¸ »ç¿ëÇϰí ÀÖ´Ù. ±×¸²°ú °°Àº °æ¿ì¿¡´Â Service ÀÎÅÍÆäÀ̽ºÀÇ ¾î´À Çϳª°¡ ¹Ù²î¸é ¼¼ Ŭ¶óÀÌ¾ðÆ® ¸ðµÎ¸¦ ÀçÄÄÆÄÀÏ, Àç¹èÆ÷ÇØÁà¾ß ÇÑ´Ù.

<±×¸² 3> ISP¸¦ Àû¿ëÇϱâ ÀüÀÇ ÀüÇüÀûÀÎ ±¸Á¶
¡¡
ÀÌÁ¦ <±×¸² 3>¿¡¼­ Service°¡ Á¦°øÇÏ´Â ¸Þ½îµå¸¦ Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÏ´Â ±âÁغ°·Î ±×·ìÇÎÇÑ´Ù. ±×¸®°í °¢ Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ½ÅÀÇ ±â´ë¿¡ ºÎÀÀÇÏ´Â ÀÎÅÍÆäÀ̽º¸¸À» ÀÌ¿ëÇÏ°Ô µÈ´Ù. ÀÌ¿Í °°ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®Çϸé ÇÑ Å¬¶óÀÌ¾ðÆ®¿¡¼­ÀÇ º¯È­°¡ ´Ù¸¥ ÂÊÀ¸·Î È®»êµÇÁö ¾Ê´Â´Ù.

<±×¸² 4> ISP¸¦ Àû¿ëÇÑ ÈÄÀÇ ÀüÇüÀûÀÎ ±¸Á¶

ÀÚ¹Ù ½ºÀ®ÀÌ Á¦°øÇÏ´Â JTable Ŭ·¡½º´Â ÀÌ¿Í °°Àº ISPÀÇ ÁÁÀº ¿¹Á¦°¡ µÈ´Ù. JTable Ŭ·¡½º¿¡´Â ±²ÀåÈ÷ ¸¹Àº ¸Þ½îµåµéÀÌ ÀÖ´Ù. Ä÷³À» Ãß°¡ÇÏ°í ¼¿ ¿¡µðÅÍ ¸®½º³Ê¸¦ ºÎÂøÇÏ´Â µî ¿©·¯ ¿ªÇÒÀÌ ÇϳªÀÇ Å¬·¡½º ¾È¿¡ È¥ÀçµÇ¾î ÀÖÁö¸¸ JTableÀÇ ÀÔÀå¿¡¼­ º»´Ù¸é ¸ðµÎ Á¦°øÇØ¾ß ÇÏ´Â ¿ªÇÒÀÌ´Ù. JTableÀº ISP°¡ Á¦¾ÈÇÏ´Â ¹æ½ÄÀ¸·Î ¸ðµç ÀÎÅÍÆäÀ̽º ºÐ¸®¸¦ ÅëÇØ ƯÁ¤ ¿ªÇÒ¸¸À» ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.

Áï Accessible, CellEditorListener, ListSelectionListener, Scrollable, TableColumnModelListener, TableMoldelListener µî ¿©·¯ ÀÎÅÍÆäÀ̽º ±¸ÇöÀ» ÅëÇØ ¼­ºñ½º¸¦ Á¦°øÇÏ´Â °ÍÀÌ´Ù. JTableÀº ÀÚ½ÅÀ» ÀÌ¿ëÇÏ¿© Å×À̺íÀ» ¸¸µå´Â °´Ã¼, Áï ¸ðµç ¼­ºñ½º¸¦ ÇÊ¿ä·Î ÇÏ´Â °´Ã¼¿¡°Ô´Â ±â´ÉÀÇ ÀüºÎ¸¦ ³ëÃâ½ÃŰÁö¸¸, À̺¥Æ® ó¸®¿Í °ü·ÃÇØ¼­´Â ¿©·¯ ¸®½º³Ê ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ÇØ´ç ±â´É¸¸À» ³ëÃâ½Ã۰í ÀÖ´Ù.

¼öÁØ¿¡ µû¸¥ EAI ÀÎÅÍÆäÀ̽º
¼ÒÇÁÆ®¿þ¾îÀÇ ÀϹÝÀûÀÎ ¸ñÀûÀº ¾÷¹«¸¦ ÀÚµ¿È­Çϰí ÀηÂÀ» ½Ã½ºÅÛÀ¸·Î ´ëüȭ½ÃŰ´Â °ÍÀÌ´Ù. À̸¦ ÅëÇØ »õ·Î¿î ºñÁî´Ï½º°¡ ¸¸µé¾îÁö±âµµ Çϰí Àΰ£ÀÇ ¾÷¹«¿µ¿ªÀÌ ÁÙ¾îµé±âµµ ÇÑ´Ù. Áö³­ ITÀÇ ¿ª»ç´Â ±â¾÷¿¡¼­ »ç¶÷ÀÌ ÇàÇÏ´ø ¾÷¹«¸¦ Àü»êÈ­ÇÏ¿© ¾÷¹«ÀÇ È¿À²À» ±Ø´ëÈ­½ÃŰ´Â °ÍÀ̾ú´Ù. ¿©·¯ °¡Áö ±â¼úÀÇ µµ¿òÀ¸·Î Á¡Â÷ ±â¾÷ ½Ã½ºÅÛÀÇ Àü»êÈ­°¡ Â÷ÁöÇÏ´Â ºñÀ²Àº È®´ëµÇ°í ÀÖ´Ù. ÇÏÁö¸¸ ½ÇÁ¦ ±â¾÷ ¾÷¹«°¡ ±×·¸µí, ´ëºÎºÐÀÇ ºñÁî´Ï½º´Â ÇϳªÀÇ ºÎ¼­, ÇϳªÀÇ ±â¾÷¿¡¼­ ¿Ï°áµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ¼­·Î À¯±âÀûÀÎ ¼ÒÅëÀ» ÅëÇØ¼­ ÀÌ·ç¾îÁø´Ù.

¶ÇÇÑ ±âÁ¸¿¡ ±¸ÇöµÈ ½Ã½ºÅÛ°ú »õ·Î ±¸ÃàµÇ´Â ½Ã½ºÅÛ°£ÀÇ ÀÇ»ç¼ÒÅëµµ ¸¸¸¸Ä¡ ¾ÊÀº ÀÛ¾÷ÀÌ´Ù. Aberdeen Group(http://www.aberdeen.com/) º¸°í¼­¿¡ ÀÇÇϸé ÀÌ·± ½Ã½ºÅÛ°£ÀÇ ÅëÇÕ ¿ä±¸´Â ½Ã°£ÀÌ Áö³¯¼ö·Ï ¸¹¾ÆÁö°í ÀÖ´Ù. ÀÌ·± ¿ä±¸»çÇ׿¡¼­ µîÀåµÈ °³³äÀÌ EAI(Enterprise Application Integration) °³³äÀÌ´Ù. Áï EAI´Â ±â¾÷ ³», ±â¾÷ °£ÀÇ ¼­·Î ´Ù¸¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÕÇϱâ À§ÇØ Á¦¾ÈµÈ ±â¼úÀÌ´Ù.

<±×¸² 5> ÅëÇÕÀÌ ¹«½ÃµÈ ±â¾÷ ½Ã½ºÅÛ°ú EAI·Î ±¸ÃàµÈ ±â¾÷ ½Ã½ºÅÛ

¿ì¸®´Â ÈçÈ÷ ¡®ÀÎÅÍÆäÀ̽º¡¯¶ó°í ÇÏ¸é °´Ã¼³ª ÄÄÆ÷³ÍÆ®ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¶°¿Ã¸®°ï ÇÑ´Ù. ÇÏÁö¸¸ ÀÎÅÍÆäÀ̽º´Â ¿©·¯ ŸÀÔ°ú ¿©·¯ ¹æ½ÄÀÌ »ç¿ëµÉ ¼ö ÀÖÀ¸¸ç ¼öÁØ¿¡ µû¸¥ EAI ÀÎÅÍÆäÀ̽º¸¦ ¼Ò°³Çϸ鼭 ÀÎÅÍÆäÀ̽ºÀÇ °³³äÀ» È®ÀåÇÏ·Á°í ÇÑ´Ù. ´ÙÀ½Àº EAI¿¡¼­ ºÐ·ùÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÅëÇÕÀ» À§ÇÑ (ÀÎÅÍÆäÀ̽ºÀÇ) Á¾·ùÀÌ´Ù. ´õºÒ¾î °áÇÕµµ¿Í È®À强ÀÇ °üÁ¡À» ´õÇØ¼­ »ý°¢ÇØ º¸´Â °Íµµ ÁÁÀ» µíÇÏ´Ù.

µ¥ÀÌÅÍ ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º
µÎ °³ ÀÌ»óÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¼­·Î ÅëÇÕÇϱâ À§Çؼ­ °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ÇѰ÷¿¡ µ¥ÀÌÅͺ£À̽º¸¦ µÎ°í ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ µ¥ÀÌÅͺ£À̽º¸¦ ÅëÇÏ¿© Á¤º¸¸¦ ÁÖ°í¹Þ´Â °ÍÀÌ´Ù. ÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÌ µ¥ÀÌÅͺ£À̽º¿¡ Á¤º¸¸¦ ÀúÀåÇÏ¸é ±× Á¤º¸¿¡ °ü½ÉÀÖ¾î ÇÏ´Â ´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ǵéÀÌ ±× Á¤º¸¸¦ ¹ß°ßÇÏ¿© ±× Á¤º¸¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÑ´Ù. Áï, ÀÌ ¶§ µ¥ÀÌÅͺ£À̽º´Â ÇϳªÀÇ ¾ÖÇø®ÄÉÀ̼ǵéÀÌ Á¤º¸¸¦ ±³È¯ÇÏ´Â ÀÏÁ¾ÀÇ ÀÎÅÍÆäÀ̽º°¡ µÈ´Ù. ÀÌ·± ¾ÆÅ°ÅØÃ³ ½ºÅ¸ÀÏÀ» °øÀ¯ ¸®ÆÄÁöÅ丮 ÆÐÅÏÀ̶ó°í ÇÑ´Ù.

ÇÏÁö¸¸ (Àß ÀϾÁö ¾ÊÁö¸¸) µ¥ÀÌÅͺ£À̽ºÀÇ ½ºÅ°¸¶°¡ º¯°æµÇ°Å³ª »õ·Î Å×À̺íÀÌ Ãß°¡µÇ¾î µ¥ÀÌÅͺ£À̽º°¡ º¹ÀâÇØÁø´Ù¸é? Áï ÀÎÅÍÆäÀ̽º°¡ ¹Ù²î°Å³ª È®ÀåµÇ°Ô µÈ´Ù¸é? ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÌ ±¸Á¶¿¡ µû¶ó¼­ ¾ÖÇø®ÄÉÀ̼ÇÀÌ º¯°æµÇ¾î¾ß ÇÑ´Ù. Áï, Àß ºÐ¸®, µðÀÚÀεÇÁö ¸øÇϰí È®ÀåÀÌ ¿ëÀÌÇÏÁö ¸øÇÑ ÀÎÅÍÆäÀ̽º´Â °Å´ëÇÑ º¯°æ¿¡ ´ëÇÑ ºñ¿ëÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù.

¶ÇÇÑ ±âÁ¸ÀÇ Å×ÀÌºí ±¸Á¶°¡ »ç¿ëÇÏ·Á´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿øÇÏ´Â ±¸Á¶¸¦ ¸¸Á·ÇÏÁö ¸øÇßÀ» ¶§ µ¥ÀÌÅͺ£À̽º¿¡¼­ ¿øÇϴ ƯÁ¤ Á¤º¸¸¦ ´Ù¸¥ µ¥ÀÌÅͺ£À̽º·Î À̵¿(migration)½ÃŰ°Å³ª ¿©·¯ °³ÀÇ µ¥ÀÌÅͺ£À̽º¿¡ ÀÖ´Â Á¤º¸µéÀ» ÃëÇÕÇÏ°Ô µÈ´Ù. Áï, ºÒÇÊ¿äÇÑ ÀÎÅÍÆäÀ̽ºÀÇ º¹Á¦, ÀçÁ¤¸³ÇÏ´Â ºñ¿ëÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù. À̸¦Å׸é ÇлçÇàÁ¤ ½Ã½ºÅÛ¿¡¼­ ¡®Çлý¡¯ µ¥ÀÌÅͺ£À̽º¿Í ¡®ÀÓÁ÷¿ø¡¯À̶õ µ¥ÀÌÅͺ£À̽º°¡ ÀÖÀ» ¶§ ÀÌ µÎ µ¥ÀÌÅͺ£À̽ºÀÇ Á¤º¸¸¦ ÃëÇÕÇÏ¿© ¡®¿¹ºñ±º¡¯À̶õ µ¥ÀÌÅͺ£À̽º°¡ ¸¸µé¾îÁ®¾ß ÇÏ´Â °æ¿ì°¡ ÀÌ¿¡ ÇØ´çÇÑ´Ù.

<±×¸² 6> µ¥ÀÌÅÍ ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º

ÀÌ ¹æ¹ýÀº ¸Å¿ì ´Ü¼øÇÏ°í ºü¸£°Ô ½Ã½ºÅÛ ÅëÇÕÀ» ±¸ÃàÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ °á°úÀûÀ¸·Î ¿©·¯ ´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÅëÇյDZâ À§Çؼ­ Áß¾Ó¿¡ µ¥ÀÌÅÍ ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º¸¦ µÎ°í ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÌ ÀÎÅÍÆäÀ̽º¿¡ ¸ÂÃç¾ß ÇÑ´Ù. À̷νá È®ÀεǴ ÇѰè´Â ÇϳªÀÇ ÀÎÅÍÆäÀ̽º°¡ ¿©·¯ ¸ñÀûÀÇ ¾ÖÇø®ÄÉÀ̼ǰú ÀÏ´ë ´ÙÀÇ °ü°è¸¦ °¡Áú ¶§ ¿©·¯ ¾ÖÇø®ÄÉÀ̼ǰ£ÀÇ °ü°è°¡ ÇϳªÀÇ ÀÎÅÍÆäÀ̽º·Î °­°áÇյǾî È®ÀåÀ̳ª º¯°æÀÇ ÀÚÀ¯µµ°¡ ¸Å¿ì ¶³¾îÁö°Ô µÈ´Ù. À̰ÍÀº ISPÀÇ ÇÙ½ÉÀÎ ¡°Å¬¶óÀÌ¾ðÆ®°¡ ÀÚ½ÅÀÌ »ç¿ëÇÏÁö ¾Ê´Â ¸Þ½îµå¿¡ ÀÇÁ¸Çϵµ·Ï °­Á¦µÇ¾î¼­´Â ¾ÈµÈ´Ù¡±´Â ¿ø¸®¿¡ À§¹èµÈ´Ù. ÀÌ ±¸Á¶´Â ÀÎÅÍ³Ý ±â¹Ý¿¡ ¿©·¯ ¼­ºñ½º¸¦ Á¦°øÇØ¾ß ÇÏ´Â, µû¶ó¼­ ÀÎÅÍÆäÀ̽º°¡ À¯¿¬ÇØ¾ß ÇÏ´Â Çö´ë ½Ã½ºÅÛ »óȲ¿¡ ÀûÀýÇÏÁö ¾ÊÀº ¹æ¹ýÀÌ´Ù.

¶ÇÇÑ ÀÌ ±¸Á¶¿¡¼­ Áß¿äÇÑ ÃàÀÌ µÇ´Â µ¥ÀÌÅͺ£À̽º°¡ º¯°æÀÌ µÉ °æ¿ì ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÌ °°ÀÌ º¯°æÇØ¾ß ÇÏ´Â °Å´ëÇÑ ¸®½ºÅ©¸¦ ¾È°í ÀÖ´Ù. ±×¸®°í µ¥ÀÌÅͺ£À̽º´Â ¿©·¯ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿øÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ ±¸ÃàÇØ¾ß Çϱ⠶§¹®¿¡ Å×À̺í (ÀÎÅÍÆäÀ̽º) ¼³°è°¡ º¹ÀâÇÏ°í ³­ÇØÇÏ°Ô ÀÌ·ç¾îÁ® °á±¹ ÀÌÇØ¸¦ À§ÇØ ³ôÀº ÁøÀÔÀ庮À» ¸¸³ª°Ô µÈ´Ù.

¾ÖÇø®ÄÉÀÌ¼Ç ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º
µ¥ÀÌÅÍ ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽ºÀÇ ´ÜÁ¡ÀÌ ¿©·¯¸ð·Î È®Àεȹ٠µ¥ÀÌÅͰ¡ ¾Æ´Ñ API ¼öÁØÀÇ ÅëÇÕÀÌ Á¦¾ÈµÈ´Ù. ±âÁ¸¿¡ ¿ì¸®°¡ »ç¿ëÇÏ´ø ¶óÀ̺귯¸®³ª ÆÐŰÁö¸¦ »ç¿ëÀÚ(´Ù¸¥ ¾ÖÇø®ÄÉÀ̼Ç)¿¡°Ô Á¦°øÇÏ¿© ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ¿¬µ¿À» ±¸ÃàÇÑ´Ù. ´Ü¼øÇÏ°í µ¶¸³ÀûÀÌÁö ¾ÊÀº ¼­ºñ½ºÀÇ °æ¿ì ¶óÀ̺귯¸®³ª ÆÐŰÁö ÇüÅ·Π¹èÆ÷µÇ¾î ÄÄÆÄÀÏ Å¸ÀÓ¿¡ ¹ÙÀεùÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÇÏÁö¸¸ µ¶¸³ÀûÀÎ ¾ÖÇø®ÄÉÀ̼ǰ£ÀÇ ¿¬µ¿Àº µÎ °³ ÀÌ»óÀÇ ÇÁ·Î¼¼½º°¡ ¼­·Î Åë½Å(Inter-Process Communication)À» ÇØ¾ß Çϴµ¥ IPC ¹æ½Ä¿¡¼­´Â ¿¬µ¿À» À§ÇÑ ÇÁ·ÎÅäÄÝÀÌ Á¤ÀǵǾî¾ß ÇÑ´Ù. Áï, ÇÁ·ÎÅäÄÝÀº ¾ÖÇø®ÄÉÀÌ¼Ç °£¿¡ ¿¬µ¿À» À§ÇÑ ÀÎÅÍÆäÀ̽º ¿ªÇÒÀ» ÇÑ´Ù. ³ª¾Æ°¡¼­ ¿äÁò ¾Ö¿ëµÇ°í ÀÖ´Â XML Àü¼Û¿¡¼­ XML ½ºÅ°¸¶°¡ ÇÁ·ÎÅäÄݰú °°Àº ¸Æ¶ôÀ» °®´Â´Ù. ÁÁÀº IPC ±¸Á¶¸¦ À§Çؼ­ Àß Á¤ÀÇµÈ ÇÁ·ÎÅäÄÝÀÌ ÀüÁ¦µÇ¾î¾ß ÇÑ´Ù. ÇÁ·ÎÅäÄÝÀÌ º¹ÀâÇϰí ÀåȲÇÒ¼ö·Ï ¿¬µ¿À» À§ÇÑ ºñ¿ëÀÌ ¸¹ÀÌ µç´Ù. Áï, ÀÎÅÍÆäÀ̽º°¡ ÁöÀúºÐÇÏÁö ¾ÊÀ»¼ö·Ï È¿°úÀûÀÌ°í ¿¬µ¿ºñ¿ëÀÌ Àû°Ô µç´Ù. ½ÇÁ¦·Î Àß Á¤ÀÇµÈ ÇÁ·ÎÅäÄÝ(ÀÎÅÍÆäÀ̽º)Àº ±× ÇÁ·ÎÅäÄÝ ¾È¿¡ ¿©·¯ ÀÎÅÍÆäÀ̽º¸¦ ½Äº°Çϱ⠽¬¿î ±¸Á¶¸¦ Á¦°øÇÑ´Ù(ÇÁ·ÎÅäÄÝ ³»ÀÇ ISP). °¡·É HTTPÀÇ °æ¿ì GET, POST, HEAD¡¦ µîÀÇ ¸Þ½ÃÁö ½Äº°ÀÌ ´Ü¼øÇϵµ·Ï ±¸¼ºµÇ¾î ÀÖ´Ù.

<±×¸² 7> ¾ÖÇø®ÄÉÀÌ¼Ç ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º

¼¼·ÃµÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â ±â¼úÀÌ RPC(Remote Procedure Call) ±â¼úÀÌ´Ù. RPC´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ ½ÇÁ¦ ÇÔ¼ö È£ÃâÇÏµí ¿ø°ÝÁö¿¡ ÀÖ´Â ÇÔ¼öÀÇ ½Ã±×´Ïó¸¦ ¸ð¹æÇÑ ÇÁ·Ï½Ã¸¦ µÎ¾î, ±× ÇÁ·Ï½Ã¸¦ ÅëÇØ ¿ø°Ý ÇÔ¼ö È£ÃâÀ» Á¦°øÇÑ´Ù. IPC ¹æ½Ä¿¡¼­ RPC ¹æ½ÄÀ¸·Î ÀüȯÀº ÁøÈ­¶ó ÇÒ ¸¸Å­ ȹ±âÀûÀÌ´Ù. ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÑ ¿¬µ¿¹æ½Ä¿¡¼­ ¿ø°Ý ÇÔ¼ö È£ÃâÀ» ÀÌ¿ëÇÑ È£Ãâ¹æ½ÄÀ¸·Î ÀüȯµÆ±â ¶§¹®ÀÌ´Ù. À̰ÍÀº ÀǹÌÀûÀ¸·Î ÀÎÅÍÆäÀ̽º¸¦ ´õ¿í ´Ü¼øÇÏ°í ºÐ¸®Çϱ⠽±°Ô »ç¿ëÇϵµ·Ï À¯µµÇϰí ÀÖ´Ù.

ºñÁî´Ï½º ·ÎÁ÷ ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º
¾ÖÇø®ÄÉÀÌ¼Ç ¼öÁØÀÇ ÀÎÅÍÆäÀ̽º¿Í ºñÁî´Ï½º ·ÎÁ÷ ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽ºÀÇ ±Ùº»ÀûÀÎ Â÷ÀÌÁ¡Àº ÀÎÅÍÆäÀ̽ºÀÇ ÇüŰ¡ ÀÏ¹Ý ÇÔ¼ö ¼öÁØ¿¡¼­ ºñÁî´Ï½º ¼öÁØÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù´Â °ÍÀÌ´Ù. °¡·É ÀüÀÚÀÇ °æ¿ì ¡®º¹»ç¡¯, ¡®ÀúÀ塯, ¡®~Á¢±ÙÀÚ¡¯ ¼öÁØÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϴµ¥ ¹ÝÇØ ºñÁî´Ï½ºÀÇ °æ¿ì ¡®ÀÔ°í¡¯, ¡®ÀÌü¡¯, ¡®°áÁ¦¡¯ ¼öÁØÀ¸·Î ÀÎÅÍÆäÀ̽º°¡ ºñÁî´Ï½ºÈ­ µÇ¾ú´Ù.

Áï, ºñÁî´Ï½º ÀÎÅÍÆäÀ̽º´Â ºÐ¸®µÈ °´Ã¼ ÀÎÅÍÆäÀ̽ºÀÇ ¹­À½À¸·Î ÇØ¼®ÇÒ ¼öµµ ÀÖ´Ù. µû¶ó¼­ ÀÎÅÍÆäÀ̽º°¡ Å« ºÐ·ù·Î Á¤Àǵʿ¡ µû¶ó º¹ÀâÇÏ´ø ÀÎÅÍÆäÀ̽º°£ÀÇ °ü°è°¡ ´Ü¼øÇÏ°Ô ÀÌ·ç¾îÁø´Ù. °´Ã¼ °ü°è¿¡ ºñ±³ÇØ º¼ ¶§ ÄÄÆ÷³ÍÆ® °ü°è°¡ »ó´ëÀûÀ¸·Î ¸Å¿ì ´Ü¼øÇÏ°Ô ÀÌ·ïÁö´Â ÀÌÀ¯°¡ ¿©±â¿¡ ÀÖ´Ù. Á¤¸®ÇÏÀÚ¸é ºñÁî´Ï½º ÀÎÅÍÆäÀ̽º´Â ºñÁî´Ï½º ¸ñÀû¿¡ ÀÇÇØ¼­ º¹ÀâÇÑ °´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ ±¸ºÐÇÏ¿© ºÐ·ùÇÑ Facade (GoFÀÇ Facade ÆÐÅÏ ÂüÁ¶) ¿ªÇÒÀ» ÇÑ´Ù.

<±×¸² 8> ºñÁî´Ï½º ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º

À̶§ºÎÅÍ ¿¬µ¿À» À§ÇØ º»°ÝÀûÀ¸·Î CORBA, COM, EJB¿Í °°Àº ±â¼úµéÀÌ »ç¿ëµÈ´Ù. ºñÁî´Ï½º ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ¾òÀ» ¼ö ÀÖ´Â ÀÌÁ¡Àº ºñÁî´Ï½ºÀÇ °øÀ¯ÇÏ¿© Àç»ç¿ëÇϱâ À§ÇÑ ¸ñÀûÀÌ´Ù. ¿©±â¼­ ÀÐÀ» ¼ö ÀÖ´Â Çö»óÀº Àß ºÐ¸®µÈ ÀÎÅÍÆäÀ̽º´Â Àç»ç¿ëµµ°¡ ³ô¾ÆÁø´Ù´Âµ¥ ÀÖ´Ù. °¢ ¾ð¾î¿¡¼­ Á¦°øÇÏ´Â API´Â ±Ùº»ÀûÀ¸·Î Àç»ç¿ëÀ» ÀüÁ¦Çϱ⠶§¹®¿¡ ÀÎÅÍÆäÀ̽º¸¦ °üÂûÇØ º¸¸é ¾ö°ÝÇÏ°Ô ISP ¿øÄ¢À» Áö۰í ÀÖÀ½À» º¼ ¼ö ÀÖ´Ù.

À¯Àú ÀÎÅÍÆäÀ̽º ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º
EAI¿¡¼­ÀÇ À¯ÅäÇǾƴ ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¢±ÙÇϴµ¥ À־ ¸¶Ä¡ »ç¶÷ÀÌ Á¢±ÙÇϵíÀÌ Á¢±ÙÇÏ´Â ¹æ¹ýÀÌ´Ù. °¡·É ¿¢¼¿¿¡ ¿¬µ¿Çϱâ À§Çؼ­ ¸¶Ä¡ »ç¶÷ÀÌ ¿¢¼¿À» ´Ù·ç´Â °Í °°ÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿¢¼¿¿¡ À̺¥Æ®¸¦ ¹ß»ýÇÏ¿© ¿¬µ¿ÇÏ´Â ¹æ½ÄÀÌ´Ù. ¶Ç ´Ù¸¥ ¿¹´Â À¥ ¼­ºñ½º¿¡ ¸¶Ä¡ »ç¶÷ÀÌ À¥ ºê¶ó¿ìÀú¸¦ Á¶ÀÛÇÏ¿© ¹®¼­¸¦ ¿äûÇÏ´Â °Í °°ÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀÌ HTTP ¸®Äù½ºÆ®¸¦ ´øÁ® °á°ú¸¦ ¾ò¾î¿À´Â °ÍÀÌ´Ù.

À¯Àú ÀÎÅÍÆäÀ̽º ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º´Â ÀÌ·¸°Ô »ç¶÷ÀÌ ½ºÅ©¸°À» ÅëÇØ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ç¿ëÇÏµí ¾ÖÇø®ÄÉÀ̼ǰ£ÀÇ ¿¬µ¿ÀÌ ÀÌ·ç¾îÁö´Â ¹æ½ÄÀ» ¸»ÇÑ´Ù. ÀÌ·± ¿äûÀ» ½ºÅ©¸° īŻ·Î±×¶ó Çϸç ÀÌ·± ¿äû ¹æ½ÄÀ» ½ºÅ©¸° ½ºÅ©·¡ÇÎ(screen scrapping)À̶ó°í ÇÑ´Ù. <±×¸² 9>´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿©·¯ ÀåÀÇ ½ºÅ©¸° īŻ·Î±×¸¦ ¸¸µé¾î Ÿ°Ù ¾ÖÇø®ÄÉÀ̼ǿ¡ ¿¬µ¿ÇÏ´Â Àå¸éÀÌ´Ù.

<±×¸² 9> À¯Àú ÀÎÅÍÆäÀ̽º ¼öÁØÀÇ ÅëÇÕÀ» À§ÇÑ ÀÎÅÍÆäÀ̽º

EAI ÀÎÅÍÆäÀ̽º ŸÀÔ¿¡¼­ º» ¹Ù¿Í °°ÀÌ ÄÄÆ÷³ÍÆ®ÀÇ È®À强À» ³ôÀ̱â À§ÇØ °áÇÕµµ¸¦ ³·Ãç¾ß ÇÑ´Ù. ±×·¸±â À§ÇØ ÄÄÆ÷³ÍÆ®°£ÀÇ °ü°è¿¡¼­ Àß ºÐ¸®µÈ ÀÎÅÍÆäÀ̽º¸¦ ±¸¼ºÇÏ¿© °ü°è¸¦ ´Ü¼øÈ­ ÇÏ´Â ³ë·ÂÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ ´Ü¼øÈ­µÈ °ü°è´Â ÄÄÆ÷³ÍÆ®°£ÀÇ ÀÀÁý¼ºÀ» Çâ»ó½ÃŲ´Ù.

ÀÎÅÍÆäÀ̽º ºÐ¸® ¹æ¹ý
SRP(Áö³­ È£ ÂüÁ¶)¿¡¼­ ºÎºÐÀûÀ¸·Î ¾ð±ÞÇÑ ¹Ù¿Í °°ÀÌ ¼­·Î ¸ñÀûÀÌ ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®°¡ ÇϳªÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¢±ÙÇϰí ÀÖ´Ù¸é ±× ÀÎÅÍÆäÀ̽º´Â ºÐ¸®µÇ¾î¾ß ¸¶¶¥ÇÏ´Ù. ¿Ö³ÄÇÏ¸é ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ³ª¿Í ¹«°üÇÑ ÀÎÅÍÆäÀ̽º°¡ º¯°æµÆÀ» ¶§ ±× º¯°æÀ¸·Î ÀÎÇØ ³»°¡ »ç¿ëÇÏ´Â ÀÎÅÍÆäÀ̽º°¡ º¯°æµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. µû¶ó¼­ ¼­·Î ´Ù¸¥ Á¾·ùÀÇ Å¬¶óÀÌ¾ðÆ®µéÀÌ ÇϳªÀÇ ÀÎÅÍÆäÀ̽º¿¡ Á¢±ÙÇÑ´Ù¸é ±× Å¬¶óÀ̾ðÆ®ÀÇ Á¾·ù¸¸Å­ ÀÎÅÍÆäÀ̽º´Â ºÐ¸®µÇ¾î¾ß ÇÑ´Ù.

´Ù½Ã óÀ½¿¡ ¿¹½ÃÇÑ <±×¸² 1> ÃʱâÀÇ ºÒ¹ý °áÁ¦ Â÷´Ü ½Ã½ºÅÛÀÇ ¿¹Á¦¸¦ º¸ÀÚ. CPRule Ŭ·¡½ºÀÇ getBlockRules(), getEmailRule()´Â ¼­·Î ¼º°ÝÀÌ ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ Á¢±ÙµÇ°í ÀÖ´Ù. getBlockRules()´Â Block Transactoin Ŭ·¡½º¿¡ ÀÇÇØ¼­ getEmailRule()Àº Email Reporting Ŭ·¡½º¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù. ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®°¡ ¸í¹éÈ÷ ºÐ¸®µÈ´Ù´Â °ÍÀº ÀÎÅÍÆäÀ̽º°¡ ±× Ŭ¶óÀ̾ðÆ®ÀÇ °³¼ö¸¸Å­ ´Ù¸¥ ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù´Â ÀǹÌÀÌ´Ù. ÇÏÁö¸¸ ¾ÖÃÊ¿¡ ÀÌ ¿©·¯ °³ÀÇ ÀÎÅÍÆäÀ̽º°¡ °°ÀÌ ÀÖ´Ù´Â °ÍÀº ³ª¸§´ë·ÎÀÇ ¡®°øÀ¯, ¿¬°üµÇ´Â ¹«¾ùÀΰ¡¡¯°¡ ÀÖ´Ù´Â °ÍÀÌ´Ù.

±×·¸´Ù¸é °øÀ¯, ¿¬°üµÇ´Â ºÎºÐÀº ±×´ë·Î µÎµÇ È¿°úÀûÀ¸·Î ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ´Â ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. ¿©±â¼­ ¸î °¡Áö ±ÔÄ¢ÀÌ ÇÊ¿äÇÏ´Ù. ¨ç ±â ±¸ÇöµÈ Ŭ¶óÀ̾ðÆ®ÀÇ º¯°æÀ» ÁÖÁö ¸»¾Æ¾ß ÇÒ °Í ¨è µÎ °³ ÀÌ»óÀÇ ÀÎÅÍÆäÀ̽º°¡ °øÀ¯ÇÏ´Â ºÎºÐÀÇ Àç»ç¿ëÀ» ±Ø´ëÈ­ÇÒ °Í ¨é ¼­·Î ´Ù¸¥ ¼º°ÝÀÇ ÀÎÅÍÆäÀ̽º¸¦ ¸í¹éÈ÷ ºÐ¸®ÇÒ °Í µîÀÌ´Ù. ºÐ¸® ¹æ¹ýÀº Ŭ·¡½º ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÑ ºÐ¸®¿Í °´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÑ ºÐ¸®¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
¡¡
Ŭ·¡½º ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÑ ºÐ¸®
´ÙÁß ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ´Â ¹æ¹ýÀ¸·Î Ŭ·¡½ºÀÇ ´ÙÁß »ó¼ÓÀ» ÀÌ¿ëÇÏ¿© ÀÎÅÍÆäÀ̽º¸¦ ³ª´­ ¼ö ÀÖ´Ù. <±×¸² 10>¿¡¼­¿Í °°ÀÌ ¡®°áÁ¦ Â÷´Ü¡¯¿¡ °ü·ÃÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â getBlockRules()¸¦ Æ÷ÇÔÇÏ´Â BlockRule ÀÎÅÍÆäÀ̽º¿Í À̸ÞÀÏ Ã³¸®¸¦ Àü´ãÇϸç getEmailRule()À» ±¸ÇöÇÏ´Â EmailRule ÀÎÅÍÆäÀ̽º·Î ºÐ¸®ÇÏ¿© ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ºÐ¸®µÈ µÎ ÀÎÅÍÆäÀ̽º´Â »ó¼úÇÏ¿© Á¦½ÃÇÑ Ã¹ ¹øÂ° ¿øÄ¢ÀÎ ¡®±â ±¸ÇöµÈ Ŭ¶óÀ̾ðÆ®ÀÇ º¯°æÀ» ÁÖÁö ¸»¾Æ¾ß¡¯ ÇÏ´Â Á¶°ÇÀ» ¸¸Á·ÇØ¾ß ÇÑ´Ù. Áï, Ŭ¶óÀÌ¾ðÆ® Å¬·¡½º´Â ±âÁ¸ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ±×´ë·Î À¯ÁöÇÏ¿© º¯°æ¾øÀÌ Á¢±ÙÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·± Á¶°ÇÀ» ¸¸Á·Çϱâ À§Çؼ­ EmailRule°ú BlockRule Ŭ·¡½º¸¦ ´ÙÁß»ó¼ÓÇÏ´Â CPRuleÀÌ Á¤ÀÇµÉ ¼ö ÀÖ´Ù.

<±×¸² 10> ´ÙÁß »ó¼ÓÀ» ÀÌ¿ëÇÑ Å¬·¡½º ÀÎÅÍÆäÀ̽º·ÎÀÇ ÅëÇÑ ºÐ¸®

ÀÌ¿Í °°Àº ±¸Á¶´Â Block Transaction, Email Reporting Ŭ¶óÀÌ¾ðÆ® ¸ðµÎ¿¡°Ô º¯È­ÀÇ ¿µÇâÀ» ÁÖÁö ¾ÊÀ» »Ó ¾Æ´Ï¶ó ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ´Â È¿°ú¸¦ °®´Â´Ù. ÇÏÁö¸¸ °ÅÀÇ ¸ðµç °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­´Â »ó¼ÓÀ» ÀÌ¿ëÇÑ È®ÀåÀº »ó¼Ó¹Þ´Â Ŭ·¡½ºÀÇ ¼º°ÝÀ» µðÀÚÀÎ ½ÃÁ¡¿¡¼­ ±ÔÁ¤ÇØ ¹ö¸®´Â Ư¡ÀÌ ÀÖ´Ù. µû¶ó¼­ CPRule Ŭ·¡½º´Â Block Transaction ÀÎÅÍÆäÀ̽º¿Í Email Reporting ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó¹Þ´Â ¼ø°£ ÀÌ µÎ ÀÎÅÍÆäÀ̽º¿¡ ¿¹¼ÓµÇ¾î Á¦°øÇÏ´Â ¼­ºñ½ºÀÇ ¼º°ÝÀÌ Á¦ÇѵȴÙ.

°´Ã¼ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÑ ºÐ¸®
´Ù¸¥ ¹æ¹ýÀ¸·Î´Â À§ÀÓ(delegation)À» ÀÌ¿ëÇÑ ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ ¹æ¹ýÀº CPRuleÀÇ Çʵå·Î RuleÀ̶õ °´Ã¼¸¦ °®´Â´Ù. Rule °´Ã¼´Â ÀÎÅÍÆäÀ̽ºÀε¥ BlockRule°ú EmailRuleÀÌ °¢°¢ÀÇ ¼­ºñ½º¿¡ ¸Â´Â rule() ¸Þ½îµå¸¦ ±¸ÇöÇÑ´Ù. ÀÌ·± »óȲ¿¡¼­ Block Transaction Ŭ¶óÀÌ¾ðÆ®´Â getBlockRule() ¸Þ½îµå¸¦ ÅëÇØ BlockRule Ŭ·¡½ºÀÇ rule() ¸Þ½îµå¸¦ È£ÃâÇÑ´Ù. Email ReportingÀÇ °æ¿ìµµ ¸¶Âù°¡Áö·Î µ¿ÀÛÇÑ´Ù. Áï À§ÀÓÀ» ÀÌ¿ëÇØ¼­ getBlockRule(), getEmailRule() ¸Þ½îµå´Â ¸â¹öº¯¼ö rule °´Ã¼ÀÇ rule() ¸Þ½îµå¸¦ È£ÃâÇÏ°Ô µÈ´Ù.

À§ÀÓÀ» ÀÌ¿ëÇÑ °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º ºÐ¸®´Â RuleÀ̶õ °´Ã¼¸¦ È®ÀåÇÑ ¾î¶² ±¸Çöµµ ´ëüµÉ ¼ö ÀÖ´Ù. ¸¸¾à ¾ÏȣȭµÈ EmailRuleÀÌ ÇÊ¿äÇÏ´Ù¸é Rule ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¾ÏȣȭµÈ SecuredEmailRuleÀ̶ó´Â Ŭ·¡½º¸¦ Á¤ÀÇÇÏ¿© CPRuleÀÇ rule Çʵ忡 ²Å¾ÆÁÖ¸é È®ÀåÀÌ ¿ëÀÌÇÏ´Ù.

<±×¸² 11> À§ÀÓÀ» ÀÌ¿ëÇÑ °´Ã¼ ÀÎÅÍÆäÀ̽º·ÎÀÇ ºÐ¸®

À§ÀÓÀ» ÀÌ¿ëÇÑ È®Àå°ú »ó¼ÓÀ» ÀÌ¿ëÇÑ È®ÀåÀº ¶È°°ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ´Â ±â´ÉÀ» ÇÏÁö¸¸ ¼­ºñ½º °áÁ¤±ÇÀÇ Â÷À̰¡ ÀÖ´Ù. ´ëºÎºÐÀÇ °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­ »ó¼ÓÀÇ °æ¿ì ÄÄÆÄÀÏ ½ÃÁ¡¿¡¼­ ºÎ¸ðÀÇ ±¸ÇöÀ» Â÷¿ëÇÏ°Ô µÇ°í ºÎÀÚ°£ÀÇ °ü°è´Â º¯°æÀÌ ºÒ°¡´ÉÇÏ´Ù(ÀÚ½Ä Å¬·¡½º´Â ºÎ¸ð¸¦ ¹Ù²Ü ¼ö ¾ø´Ù). ¹Ý¸é, À§ÀÓÀ» ÀÌ¿ëÇÑ °ü°è´Â ·±Å¸ÀÓ¿¡ º¯°æÀÌ °¡´ÉÇÏ´Ù. °¡·É ÀÏ¹Ý À̸ÞÀÏ ¸ðµå¿¡¼­ ¾Ïȣȭ À̸ÞÀÏ ¸ðµå·Î ¿ªÇÒÀÌ º¯°æµÉ °æ¿ì CPRule.rule º¯¼ö¸¦ EmaileRule¿¡¼­ SecuredEmailRule °´Ã¼·Î ¹Ù²ãÁֱ⸸ ÇÏ¸é ¼­ºñ½ºÀÇ º¯°æÀÌ µ¿ÀûÀ¸·Î ÀÌ·ïÁø´Ù. µû¶ó¼­ À§ÀÓÀ» ÀÌ¿ëÇÑ È®ÀåÀº »ó¼ÓÀ» À§ÇÑ È®À庸´Ù °ü°è ¼³Á¤ÀÇ º¯È­°¡ »ó´ëÀûÀ¸·Î À¯¿¬ÇÏ´Ù.

´Ù¸¥ ¹æ½ÄÀ¸·Î´Â C++¿¡¼­ ÅÛÇø´À» ÀÌ¿ëÇÑ È®Àå ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÚ¹Ù¿¡¼­´Â Generic ÇÁ·Î±×·¡¹ÖÀ» ÅëÇØ¼­ ±¸ÇöÇÒ ¼ö Àִµ¥ ÄÄÆÄÀÏ ½ÃÁ¡(Á¤È®È÷ pre-processing ½ÃÁ¡)¿¡¼­ Àû¿ëµÇ´Â Ŭ·¡½ºÀÇ Å¸ÀÔÀ» ¼³Á¤ÇØÁÜÀ¸·Î½á È®À强À» Áö¿øÇÒ ¼ö ÀÖ´Ù.

»ç½ÇÀº ¾ÕÀÇ µÎ °¡Áö ºÐ¸® ¹æ¹ýÀº GoFÀÇ Adapter ÆÐÅÏ¿¡¼­ ±¸Çö ¹æ¹ý Áß Class Adapter¿Í Object Adapter ±¸Á¶¸¦ ±×´ë·Î Â÷¿ëÇÑ ¹æ¹ýÀÌ´Ù. ÇÏÁö¸¸ Á¤ ¹Ý´ëÀÇ ¸ñÀûÀ» °®´Â´Ù. Adapter ÆÐÅÏÀÇ °æ¿ì ±âÁ¸ÀÇ ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ Ŭ¶óÀÌ¾ðÆ®°¡ ¿øÇÏ´Â ÀÎÅÍÆäÀ̽º·Î °³Á¶ÇÏ´Â ¸ñÀûÀ» °®°í ÀÖÁö¸¸ ¿ì¸®ÀÇ ¸ñÀûÀº ¼­·Î ´Ù¸¥ ¼­ºñ½º¸¦ ÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ ºÐ¸®ÇÏ·Á´Â ¸ñÀûÀÌ´Ù. ÇÏÁö¸¸ ¸ñÀû°ú ÇØ°á ´ë»óÀÌ ºñ²¼À» »ÓÀÌÁö ±× ±¸Á¶´Â µ¿ÀÏÇÏ´Ù.

ISP vs. SRP
ÀϹÝÀûÀ¸·Î ÀÎÅÍÆäÀ̽º¿Í ¿ªÇÒÀº 1:1 °ü°è¸¦ °®´Â´Ù. ÇÏÁö¸¸ ÀÎÅÍÆäÀ̽º°¡ ¿©·¯ ¿ªÇÒÀ» °®´Â °æ¿ìµµ ÀÖ´Ù. À̰ÍÀº ÄÄÆ÷³ÍÆ®ÀÇ Å©±â¿¡ µû¶ó °áÁ¤µÇ°Ô µÇ´Âµ¥, °¡·É ¡®ÀÌü¡¯¶ó´Â ÀÎÅÍÆäÀ̽º´Â "¨ç Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÑ´Ù. ¨è »ó´ëÀÇ °èÁ Á¸Àç ¿©ºÎ¸¦ È®ÀÎÇÑ´Ù ¨é °í°´ÀÇ °èÁ¿¡ ¿øÇÏ´Â ±Ý¾×À» Ãâ±ÝÇÑ´Ù ¨ê »ó´ëÀÇ °èÁ¿¡ ÀÔ±ÝÇÑ´Ù ¨ë Æ®·£Àè¼ÇÀ» ¸¶Ä£´Ù"ÀÇ ÀýÂ÷¸¦ °ÅÄ£´Ù. ¿©±â¿¡ Âü¿©ÇÏ´Â ¿ªÇÒµéÀº ¼­·Î ÀÀÁý¼ºÀÌ °á¿©µÈ´Ù.

ÇÏÁö¸¸ ƯÁ¤ ºñÁî´Ï½º ¸ñÀû¿¡ ÀÇÇØ ÇϳªÀÇ Ã³¸® ÀýÂ÷·Î ¹­À̸鼭 ¡®ÀÌü¡¯¶ó´Â ÀÎÅÍÆäÀ̽º¸¦ ¸¸Á·½ÃŲ´Ù. ´Ù½Ã ¸»ÇÏÀÚ¸é, ¡®ÀÌü¡¯¶ó´Â ÀÎÅÍÆäÀ̽º´Â ¿©·¯ ¿ªÇÒÀÇ ¹­À½À¸·Î ±¸ÇöµÈ´Ù(1:n °ü°èÀÇ ÀÎÅÍÆäÀ̽º¿Í ¿ªÇÒ). ÀÌ ¶§ ¡®ÀÌü¡¯ ÀÎÅÍÆäÀ̽º´Â ÀÌ·± ¿ªÇÒÀÇ ¹­À½ÀÇ Facade°¡ µÈ´Ù. ¾Õ¿¡¼­ »ìÆìº» JTableÀÇ °æ¿ì¿¡µµ Å×À̺íÀÇ µ¥ÀÌÅÍ °ü¸®, Ä÷³ °ü¸®, ·»´õ¸µ °ü¸®, À̺¥Æ® °ü¸®¶ó´Â ¿©·¯ ¿ªÇÒÀÌ JTableÀ̶ó´Â ÇϳªÀÇ Å¬·¡½º ¾È¿¡ È¥ÀçµÇ¾î ÀÖ´Ù.

¹Ý¸é ÇϳªÀÇ ¿ªÇÒÀº ¿©·¯ ÀÎÅÍÆäÀ̽º·Î ºÐÇØµÇ±âµµ Çϴµ¥ ÀÚ¹ÙÀÇ java.io.OutputStream Ŭ·¡½º´Â µ¥ÀÌÅ͸¦ ¾²´Â write() ÀÎÅÍÆäÀ̽º¸¦ °®°í ÀÖ´Ù. ¶È°°Àº ¿ªÇÒÀ» ÇÏÁö¸¸ ÀÎÅÍÆäÀ̽º°¡ ´Ù¸¥ java.io.PrintWriter Ŭ·¡½º´Â printXX() ·ùÀÇ ÀÎÅÍÆäÀ̽º·Î ±× ¿ªÇÒÀ» ¼¼·ÃµÇ°Ô Á¦°øÇÑ´Ù(1:n °ü°èÀÇ ¿ªÇÒ°ú ÀÎÅÍÆäÀ̽º). ÀÌó·³ ÀÎÅÍÆäÀ̽º¿Í ¿ªÇÒ°úÀÇ °ü°è´Â »óÈ£ÀÇÁ¸¼ºÀ» °®Áö¸¸ ²À °°Àº Àǹ̷Π»ç¿ëµÇÁöµµ ¾Ê´Â´Ù. µû¶ó¼­ ISP¿Í RSP¸¦ ±¸ºÐÇÒ ¶§ ¿ªÇÒ°ú ÀÎÅÍÆäÀ̽ºÀÇ ¸Æ¶ôÀº ¸í¹éÈ÷ ´Ù¸£°Ô ±ÔÁ¤ÇÏ¿© Á¢±ÙÇÒ Çʿ䰡 ÀÖ´Ù. Áï SRP¸¦ Á¢±ÙÇÒ ¶§¿Í ISP¸¦ Á¢±ÙÇÒ ¶§ÀÇ Á¢±Ù¹ýÀº Â÷À̸¦ µÎ¾î¾ß ÇÑ´Ù.

ISP¸¦ ÁöŰÁö ¾Ê¾ÒÀ» ¶§ ¹ß»ýÇÒ ¼ö ÀÖ´Â ¾ÇÃë
¾Õ¿¡¼­ »ìÆìº» ¹Ù¿Í °°ÀÌ ±Ô¸ð°¡ Å« Ŭ·¡½º¿¡¼­¸¸ ISP°¡ ¹®Á¦µÇ´Â °ÍÀº ¾Æ´ÏÁö¸¸, ISP¿Í °ü·ÃÇÑ ¹®Á¦´Â ´ëºÎºÐ ºñ´ëÇÑ Å¬·¡½º·ÎºÎÅÍ ¹ß»ýÇÏ°Ô µÈ´Ù(JTable Ŭ·¡½º¸¦ Çѹø º¸¶ó). ºñ´ëÇÑ Å¬·¡½º¶ó´Â ¾ÇÃë´Â Extract Class, Extract Subclass, Extract Interface¿Í °°Àº ¸®ÆÑÅ丵 ±â¹ýÀ» ÅëÇØ ÇØ°áÇÏ°Ô µÇ´Âµ¥ ÀÌÁß Extract Class¿Í Extract Subclass´Â SRP¿Í ¿¬°üÀÌ ÀÖ°í Extract Interface°¡ ISP¸¦ µû¶ó´Â ¼³°è¸¦ °¡´ÉÇÏ°Ô ÇØÁØ´Ù.
¡¡
* Extract Interface : Ŭ¶óÀÌ¾ðÆ®°¡ Ŭ·¡½ºÀÇ ¾î´À ƯÁ¤ ±â´É¸¸À» ÀÌ¿ëÇÑ´Ù¸é ÀÌ·¯ÇÑ ±â´ÉÀÇ ºÎºÐ ÁýÇÕÀ» º°µµÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ ÃßÃâÇ϶ó.

¿ì¸®´Â Ä£±¸µé¿¡°Õ Ä£±¸°¡ µÇ°í, ºÎ¸ð´Ô²²´Â ÀÚ½ÄÀÌ µÇ°í, »ç¶ûÇÏ´Â »ç¶÷¿¡°Õ ¿¬ÀÎÀÌ µÈ´Ù. °°Àº Á¸ÀçÀ̰Ǹ¸ »ó´ë¿¡ µû¶ó ¿ì¸®ÀÇ ¿ªÇÒÀº ´Ù¸£´Ù. ÇÏÁö¸¸ Ä£±¸°¡ ¾ø´Ù¸é ¿ì¸° Ä£±¸°¡ µÉ ¼ö ¾øÀ¸¸ç, ºÎ¸ð´ÔÀÌ °è½ÃÁö ¾Ê´Â´Ù¸é ÀÚ½ÄÀÌ µÉ ¼ö ¾ø°í, ¾ÖÀÎÀÌ ¾ø´Ù¸é ´©±º°¡ÀÇ ¿¬ÀÎÀÌ µÉ ¼ö ¾ø´Â ³ë¸©ÀÌ´Ù. ¿ì¸®ÀÇ »ó´ë¿¡ ´ëÇØ Á» ´õ °ü½É°ú ¾ÖÁ¤À» ±â¿ïÀÌ°í ¹è·ÁÀÇ ³ë·ÂÀ» ÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´ÒÁö.@

* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
°ü·Ã±â»ç
[UML Á¦´ë·Î ¾Ë±â] ¨ç °¡´É¼º¡¤È®À强 ǰ°í µîÀåÇÑ UML 2.0
³»°Ô µü ¸Â´Â SW °³¹ß ÇÁ·¹ÀÓ¿öÅ©, ¾îµð¿¡ ÀÖÀ»±î?
ÁÖ¸ñ¹Þ´Â SW °³¹ß¹æ¹ý·Ð¡¸ºñ±³ ºÐ¼®¡¹
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
?>
[DDD ¨ç] µµ¸ÞÀÎ ÁÖµµ °³¹ß
À©µµ¿ìCE µð¹ö±ë¿¡ °üÇÑ 12°¡Áö...
°¡»óÈ­¿¡ ½ÇÆÐÇÏ´Â 10°¡Áö ÀÌÀ¯
[±â°í]±×¸° ½ºÅ丮Áö·Î °¡´Â±æ
À©µµ¿ìCE °³¹ßÅø¿¡ °üÇÑ 12°¡Áö...
[Ã¥¼Ò°³] À¥ °³¹ßÀÚ¸¦ À§ÇÑ ½ºÇÁ...
'°¡»óÈ­ °ü¸®'¿¡ ´ëÇÑ 10°¡Áö ...
[Weekend TV]'½ºÅ¸Å©·¡ÇÁÆ®' ¼º´ë¹¦»çÀÇ ´ÞÀÎ [00:01:20]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
[¼­¹ü±ÙÀÇ À¯ÄèÇÑ ¸®ºä]'º£Å×¶û' ·¹ÀÎÄÞ VS '½ÅÂü³»±â' TG»ïº¸ÀÇ 'PMP½ÃÀå ÀïÅ»Àü' [00:03:42]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
º¸¾È°­È­ ±¸±Û ¡°À©µµ ¹ö¸®°í À¥À¸...
¡®À©µµXP¡¯½Ã´ë Æó¸·, »ç¿ëÀÚ¿¡°Ô...
ÀÎÅÍ³Ý ¹ðÅ· ºê¶ó¿ìÀú´Â µû·Î ÀÖ´Ù...
¡®³ªÈ¦·Î ¾×ƼºêX¡¯¡¦¼¼°è ÀÎÅͳݰú...
SKT µ¶Á¡ 800MHz Á֯ļö,...
´ÙÀ½ vs Á¶Áßµ¿, Á¤¸éÃæµ¹·Î Ä¡...
[Àλç]¹®È­Ã¼À°°ü±¤ºÎ
BT, 'GSM-CDMA Áö¿ø' ...
SKT '¾ÆÀ̽º¹Ú½º', ÅëÇÕ UC...
2011³â, LCD TV 10´ë ...
´Ù¿ì±â¼ú, À̸ÞÀÏ ¾ÆÄ«À̺ù ¼Ö·ç¼Ç...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.