¡°»ç¶÷Àº ´Ù¸¥ »ç¶÷°ú ¸»À» ÇÒ ¶§ µè´Â »ç¶÷ÀÇ °æÇè¿¡ ¸ÂÃß¾î ¸»Çؾ߸¸ ÇÑ´Ù. ¿¹¸¦ µé¾î ¸ñ¼ö¿Í À̾߱âÇÒ ¶§´Â ¸ñ¼ö°¡ »ç¿ëÇÏ´Â ¾ð¾î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.¡± - ÇöóÅæÀÇ ÆÄ¿¡Åæ(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ÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.