[Áöµð³ÝÄÚ¸®¾Æ]1980³â´ë Áß¹Ý ¼ÒÇÁÆ®¿þ¾îÀÇ »ç¿ë ¹üÀ§¿Í ±Ô¸ð°¡ Æø¹ßÀûÀ¸·Î ´Ã¾î³ª°Ô µÇ¸é¼ ¼ÒÇÁÆ®¿þ¾î¸¦ ±¸¼ºÇÏ´Â ÇÁ·Î±×·¥ÀÇ ³í¸®´Â Á¡Á¡ ´õ º¹ÀâÇÑ ½ÇŸ·¡Ã³·³ ²¿¿©°¬´Ù. C ¾ð¾î·Î ´ëÇ¥µÇ´Â ±âÁ¸ÀÇ ¡®ÀýÂ÷Àû¡¯ ¾ð¾î°¡ ±×·± º¯È¸¦ °¨´çÇϱ⿡ ¿ªºÎÁ·À̶ó´Â »ç½ÇÀº ´©±¸ÀÇ ´«¿¡µµ ºÐ¸íÇß´Ù. ÀÌ¿Í °°Àº »óȲ¿¡ µîÀåÇÏ¿© »çŸ¦ ´Ü¼û¿¡ Á¦¾ÐÇÑ Á¸Àç°¡ ¹Ù·Î ¡®°´Ã¼¡¯¿´´Ù. °´Ã¼°¡ Á¦°øÇÑ ¡®ÄÚµåÀÇ Àç»ç¿ë(reusability)¡¯°ú ¡®´ÙÇü¼º(polymorphism)¡¯À̶ó´Â ¾àÀº Áߺ´À» ¾Î´ø ¼ÒÇÁÆ®¿þ¾îÀÇ ¼¼°è¿¡¼ ³î¶ó¿î È¿´ÉÀ» Áö´Ñ ó¹æÀÌ µÇ¾ú´Ù.
°´Ã¼ÀÇ ¡®¾à¡¯¸ÀÀ» º» ÇÁ·Î±×·¡¸ÓµéÀº ¼¼ºÎÀûÀÎ ¾Ë°í¸®ÁòÀÇ ±¸Çö¿¡ Á¡Á¡ ´ú ±¸¾Ö¹Þ°Ô µÇ¾ú´Ù. ¼¼ºÎÀûÀÎ ³í¸®º¸´Ù´Â ¿ä±¸»çÇ×(requirements)À» ºÐ¼®ÇÑ °á°ú¿¡ µû¶ó¼ °´Ã¼¸¦ Á¤¹ÐÇÏ°Ô ¼³°èÇÏ´Â ÀÏÀÌ ´õ Áß¿äÇÏ°Ô µÇ¾ú±â ¶§¹®À̾ú´Ù. ÇÏÁö¸¸ ¸ðµç ¾àÀÌ ±×·¸µíÀÌ °´Ã¼µµ ¸ðµç º´¿¡ ´ëÇÑ ¸¸º´ÅëÄ¡¾àÀÌ µÉ ¼ö´Â ¾ø¾ú´Ù. °´Ã¼ÀÇ °³³ä°ú Àå´ÜÁ¡À» Á¤È®ÇÏ°Ô ÆÄ¾ÇÇϰí ÀÖ´Â ÇÁ·Î±×·¡¸Ó¿¡°Ô °´Ã¼´Â ºÐ¸í ¾àÀÌ µÇ¾úÁö¸¸ ±×·¸Áö ¾ÊÀº ÇÁ·Î±×·¡¸Ó¿¡°Ô´Â ¿ÀÈ÷·Á ¡®µ¶¡¯ÀÌ µÇ±âµµ Çß´ø °ÍÀÌ´Ù.
°´Ã¼ÁöÇâÀÇ Ã¢½ÃÀÚ, ¿Íµå Ä¿¹ÖÇܰú ÄËÆ® º¤
1987³â¿¡ °´Ã¼ÁöÇâ ¾ð¾îÀÎ ¡®½º¸ôÅäÅ©(Smalltalk)¡¯¸¦ ÀÌ¿ëÇØ¼ ¼ÒÇÁÆ®¿þ¾î ¼³°è ÀÛ¾÷À» ÇÏ´ø ¿Íµå Ä¿´×Çè(Ward Cunningham)°ú ÄËÆ® º¤(Kent Beck)Àº ¸·¹ÙÁö¿¡ À̸¥ ÀÛ¾÷ÀÇ ¿Ï¼ºÀ» À§Çؼ ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÌ¿ëÇÏ°Ô µÉ »ç¿ëÀÚµéÀÌ Á÷Á¢ ¼³°è¸¦ ³¡³»µµ·Ï ¸Ã°å´Ù. ÀÌ ¶§ Ä¿´×Çè°ú º¤Àº ½º¸ôÅäÅ©¿¡ Àͼ÷ÇÏÁö ¾ÊÀº »ç¿ëÀÚµéÀÌ À߸øµÈ ¼³°è¸¦ ÇÏ´Â °ÍÀ» ¹æÁöÇϱâ À§Çؼ ½º¸ôÅäÅ© ¾ð¾î¸¦ ÀÌ¿ëÇÑ ¼³°è¿¡¼ÀÇ ¸î °¡Áö ÇÙ½ÉÀûÀÎ ³»¿ëÀ» °£Ã߸° ¡®ÆÐÅÏ(pattern)¡¯À» Á¤¸®Çؼ ±³À°½ÃÄ×´Ù.
±³À°ÀÇ °á°ú´Â ¸¸Á·½º·¯¿ü´Ù. Ä¿´×Çè°ú º¤Àº ÀÌ °æÇèÀ¸·ÎºÎÅÍ °´Ã¼ÁöÇâ ¾ð¾î¿¡ ÀÖ¾î¼ µðÀÚÀÎ ÆÐÅÏÀÇ Á߿伺À» óÀ½À¸·Î ±ú´Ý°Ô µÇ¾ú´Ù. ±×¸®ÇÏ¿© ±×µéÀº 1987³â¿¡ ¿¸° OOPSLA(Object-Oriented Programming, Systems, Languages & Applications) ÄÁÆÛ·±½º¿¡¼ ÆÐÅÏÀÇ °³³ä°ú ±× Àǹ̽ÉÀåÇÔÀ» °º¯Çß´Ù. À̰ÍÀº ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹ÖÀÇ ¼¼°è¿¡¼ ÇϳªÀÇ ÀÛÀº ȹÀÌ ±×¾îÁö´Â ¼ø°£À̾ú´Ù. ÇÏÁö¸¸ Ä¿´×Çè°ú º¤ÀÌ ¹ß°ßÇÑ ÆÐÅÏÀº ¡®¾ÆÀ̵ð¾î¡¯¸¦ µÞ¹ÞħÇÒ ¸¸ÇÑ ±¸Ã¼ÀûÀÎ ½Çü°¡ °á¿©µÇ¾î ÀÖ¾ú±â ¶§¹®¿¡ »ç¶÷µéÀÇ ÁÖ¸ñÀ» ÃæºÐÈ÷ ²øÁö´Â ¸øÇß´Ù.
Áö±ÝÀº Â踮È÷(Zurich)¿¡¼ »ì¸é¼ IBMÀÇ ÀÌŬ¸³½º(Eclipse)³ª ºñÁÖ¾ó¿¡ÀÌÁö(VisualAge) °°ÀÌ Àß ¾Ë·ÁÁø ÇÁ·ÎÁ§Æ®¿¡ Âü¿©Çϰí ÀÖ´Â ¿¡¸®È÷ °¨¸¶(Erich Gamma)´Â 80³â´ë ÈĹݿ¡ ¹Ú»ç ³í¹®À» ¾²´Â ´ëÇпø»ýÀ̾ú´Ù. °¨¸¶´Â ÀÚ½ÅÀÇ ³í¹®À» Á¤¸®ÇÏ´Â °úÁ¤¿¡¼ °´Ã¼ÁöÇâ ¾ð¾î·Î °´Ã¼¸¦ ¼³°èÇÒ ¶§ ƯÁ¤ÇÑ ÆÐÅÏÀ» ³ªÅ¸³»¸é¼ ¹Ýº¹µÇ´Â ¡®¹«¾ù¡¯ÀÌ Á¸ÀçÇÑ´Ù´Â Á¡À» ºÐ¸íÈ÷ ÀνÄÇß´Ù. ÇÏÁö¸¸ ±× ¡®¹«¾ù¡¯À» ´Ù¸¥ »ç¶÷¿¡°Ô Àü´ÞÇÒ ¡®¾îÈÖ¡¯ ȤÀº ¡®ÀÇ»ç¼ÒÅ롯ÀÇ ¹æ¹ýÀÌ ±¸Ã¼ÀûÀ¸·Î µå·¯³ªÁö ¾Ê°í ÀÖ¾ú´Ù.
¡®³× ¸íÀÇ Àϴ硯°ú ÆÐÅÏÀÇ µîÀå
±×¸®ÇÏ¿© °¨¸¶´Â ºÒÈ®½ÇÇÑ ¡®¹«¾ù¡¯ÀÇ Á¸À縦 ¿¬±¸ÇÏ¿© ¡®ÇÕ¼º(Composite)¡¯, ¡®°áÁ¤ÀÚ(Decider)¡¯, ¡®°üÂûÀÚ(Observer)¡¯, ±×¸®°í ¡®Á¦ÇÑÀÚ(Constrainer)¡¯¶ó´Â ÀÏÁ¤ÇÑ ÆÐÅÏÀ¸·Î Á¤ÇüÈÇß´Ù. ÇÁ·Î±×·¡¹Ö °í¼öµéÀÇ ¸Ó¸´¼Ó¿¡¼ Ãß»óÀûÀ¸·Î¸¸ ¸Éµ¹´ø ÆÐÅÏÀÌ ¸¶Ä§³» µÎ²¨¿î ¿ÊÀ» ÀÔ°í Çö½Ç¿¡ ¸ð½ÀÀ» µå·¯³½ ¼ø°£À̾ú´Ù. Ãß»óÀûÀÎ °³³äÀÌ ±¸Ã¼ÀûÀÎ Á¸Àç·Î Å»¹Ù²ÞÀ» ÇÏ¸é¼ ¼ÒÇÁÆ®¿þ¾î ¼³°è¿¡ ÀÖ¾î¼ÀÇ ÆÐÅÏ¿¡ ´ëÇÑ ÇÁ·Î±×·¡¹Ö °í¼öµéÀÇ ¿¬±¸´Â °¡¼Óµµ°¡ ºÙ°Ô µÇ¾ú´Ù.
±×¸®ÇÏ¿© ¸¶Ä§³» 1991³â¿¡ °³ÃÖµÈ OOPSLA¿¡´Â Èʳ¯ ¡®³× ¸íÀÇ ÀÏ´çµé(Gang of Four)¡¯¶ó´Â º°ÄªÀ¸·Î ºÒ¸®°Ô µÇ´Â ¿¡¸®È÷ °¨¸¶, ¸®Ã³µå ÇÜ(Richard Helm), ¶öÇÁ Á¸½¼(Ralph Johnson), Á¸ ºí¸®½Ãµ¥½º(John Vlissides)°¡ ÇÑ ÀÚ¸®¿¡ ¸ðÀÌ°Ô µÇ¾ú´Ù. ÀÌ ³× ¸íÀÌ ¿©·¯ °³ÀÇ ÆÐÅÏÀ» Áý´ë¼ºÇؼ Àú¼úÇÑ Ã¥ÀÌ À¯¸íÇÑ ¡°µðÀÚÀÎ ÆÐÅÏ : Àç»ç¿ë °¡´ÉÇÑ °´Ã¼ÁöÇâ ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ä¼Òµé(Design Patterns: Elements of Reusable Object-Oriented Software]¡±À̾ú´Ù. ÆÐÅÏÀ̶ó´Â ÃʽÄÀ» ÀÍÈ÷°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó¶ó¸é ÇѹøÂë ÀÐÁö ¾ÊÀ» ¼ö ¾ø´Â Ã¥ÀÌ´Ù.
¡°°¢°¢ÀÇ ÆÐÅÏÀº ¿ì¸®¸¦ µÑ·¯½Î°í Àִ ȯ°æ¿¡¼ ¹Ýº¹ÀûÀ¸·Î ³ªÅ¸³ª´Â ƯÁ¤ÇÑ ¹®Á¦¿Í ±×¿¡ ´ëÇÑ ÇØ°áÃ¥À» ¼³¸íÇÑ´Ù. ±×¸®°í ±× ÇØ°áÃ¥Àº °è¼Ó »ç¿ëµÉ ¼ö Àֱ⠶§¹®¿¡ µ¿ÀÏÇÑ °úÁ¤À» ¹Ýº¹ÇÒ Çʿ䰡 ¾ø´Ù.¡±
°ÇÃàÀ¸·ÎºÎÅÍ ºô·Á¿Â ÆÐÅÏÀÇ °³³ä
ÆÐÅÏ¿¡ ´ëÇØ¼ ÀÌ¿Í °°ÀÌ °£¸íÇÑ Á¤ÀǸ¦ ³»¸° »ç¶÷Àº Å©¸®½ºÅäÆÛ ¾Ë·º»ê´õ(Christopher Alexander)¶ó´Â »ç¶÷À̾ú´Ù. ÆÐÅÏÀ̶ó´Â °³³äÀ» ÃÖÃÊ·Î Æ÷ÂøÇÑ ±×´Â ³î¶ø°Ôµµ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¸Ó°¡ ¾Æ´Ï¶ó °ÇÃà°¡¿´´Ù. °á±¹ ¼ÒÇÁÆ®¿þ¾î ¼³°è¿¡¼ ³ªÅ¸³ª´Â ÆÐÅÏÀ̶ó´Â °³³äÀº ¾Ë·º»ê´õ°¡ ¡®°ÇÃ࡯ ºÐ¾ß¿¡¼ Á¤¸³ÇÑ °³³äÀ» ºô·Á¿Â °ÍÀÌ´Ù.
ÇÁ·Î±×·¡¹Ö ¼¼°è¿¡¼ ÆÐÅÏÀÇ °³³äÀ» Á¤¸³ÇÑ »ç¶÷µéÀº °ÇÃà ¼³°è¿¡ ¸ôµÎÇß´ø ¾Ë·º»ê´õÀÇ Àú¼ú¿¡¼ ¿µ°¨À» ¹Þ¾Ò´Ù. À§¿¡ ÀοëÇÑ ÆÐÅÏÀÇ Á¤ÀÇ´Â ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹ÖÀÌ ¾Æ´Ï¶ó °ÇÃà°ú °ü·ÃÀÌ ÀÖ´Â °ÍÀ̾úÁö¸¸ ¾î¶² ´ë»óÀ» »õ·Ó°Ô µðÀÚÀÎÇÏ´Â °úÁ¤ ÀϹݿ¡ Àû¿ëµÇ´Â º¸ÆíÀûÀÎ ¹æ¹ý·ÐÀ» °¡¸®Å°°í Àֱ⠶§¹®¿¡ ¼ÒÇÁÆ®¿þ¾î ¼³°èÀÇ °úÁ¤À» Æ÷ÇÔÇß´Ù.
ÇÑÆí °ÇÃຸ´Ù´Â ¼ÒÇÁÆ®¿þ¾î ±¸Çö¿¡ ´õ ¸¹Àº °ü½ÉÀ» °¡Á³´ø ¡®³× ¸íÀÇ Àϴ硯ÀÌ Á¤ÀÇÇÑ ¼ÒÇÁÆ®¿þ¾î ¼³°è ÆÐÅÏÀº ´ÙÀ½°ú °°ÀÌ º¸´Ù ±¸Ã¼ÀûÀ̾ú´Ù.
¡°¼³°è ÆÐÅÏÀº °´Ã¼ÁöÇ⠽ýºÅÛ ¾È¿¡¼ ¹Ýº¹Çؼ µîÀåÇÏ´Â ¼³°è¿Í °ü·ÃµÈ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ÀϹÝÀûÀÎ ±â¹ý¿¡ À̸§À» ºÙÀ̰í, µ¿±â¸¦ ºÎ¿©Çϰí, ¼³¸íÀ» ÇÑ´Ù. ±×°ÍÀº ¹®Á¦¸¦, ÇØ°áÃ¥À», ±×¸®°í ±× ÇØ°áÃ¥À» ¾ðÁ¦ Àû¿ëÇØ¾ß ÇÏ´ÂÁö, Àû¿ëÇÑ °á°ú´Â ¹«¾ùÀÎÁö µîÀ» ¼³¸íÇÑ´Ù. ±×°ÍÀº ¶ÇÇÑ ½ÇÁúÀûÀÎ ±¸Çö¿¡ ´ëÇÑ ÈùÆ®¿Í ¿¹Á¦µµ Á¦°øÇÑ´Ù. ÇØ°áÃ¥Àº ´ë°³ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ ÇÊ¿äÇÑ °´Ã¼¿Í Ŭ·¡½º¸¦ ÀϹÝÀûÀÎ ¹æ½ÄÀ¸·Î ¹èÄ¡ÇÑ´Ù. ÇØ°áÃ¥Àº ÁÖ¾îÁø ¹®Á¦¸¦ ƯÁ¤ÇÑ ¹®¸Æ(context) ¾È¿¡¼ ÇØ°áÇϱâ À§Çؼ ´Ùµë¾îÁö°í ±¸ÇöµÈ´Ù.¡±
ÆÐÅÏÀ» ÀÍÈ÷´Â °ÍÀº ¸¶Ä¡ ¹ÙµÏ¿¡¼ ¡®Á¤¼®(ïÒà´)¡¯À» ÀÍÈ÷´Â °Í°ú °°¾Æ¼ ÆÐÅÏÀÇ ³»¿ëÀ̳ª À̸§À» ±â°èÀûÀ¸·Î ¡®¾Ï±â¡¯ÇÏ´Â °ÍÀº ¾Æ¹«·± Àǹ̰¡ ¾ø´Ù. ¡®³× ¸íÀÇ Àϴ硯ÀÌ ¹àÈù ¹Ù¿Í °°ÀÌ °¢°¢ÀÇ ÆÐÅÏÀÌ ÇÊ¿äÇÑ µ¿±â, ±× ÆÐÅÏÀÌ Á¦°øÇÏ´Â ÇØ°áÃ¥À» »ç¿ëÇØ¾ß ÇÒ ½ÃÁ¡, ±×¸®°í ±× ÇØ°áÃ¥À» »ç¿ëÇÑ °á°ú µîÀ» ÃæºÐÈ÷ ÀÌÇØÇÏ´Â °ÍÀÌ ÇÙ½ÉÀ̱⠶§¹®ÀÌ´Ù. ±×·¸Áö¸¸ ÇÁ·Î±×·¡¸Ó¸¦ ä¿ëÇϱâ À§ÇÑ ¸éÁ¢ °úÁ¤¿¡¼ ¼³°è ÆÐÅÏ¿¡ ´ëÇÑ Áú¹®À» ´øÁö¸é ¸Ó¸® ¼Ó¿¡ ¾Ï±âÇϰí ÀÖ´Â ÆÐÅÏÀÇ À̸§À» ¾Þ¹«»õó·³ À̾߱âÇÏ´Â »ç¶÷µéÀ» Á¾Á¾ ¸¸³ª°Ô µÈ´Ù.
´Ù½Ã ÇÑ ¹ø À̾߱âÇÏÁö¸¸ Áß¿äÇÑ °ÍÀº ÆÐÅÏÀÇ ¡®À̸§¡¯ÀÌ ¾Æ´Ï¶ó ±× À̸§ÀÌ ´ã°í ÀÖ´Â ¡®³»¿ë¡¯ÀÌ´Ù(öÇÐÀÚµéÀº À̰ÍÀ» ¡®Çü½Ä¡¯°ú ¡®³»¿ë¡¯ ȤÀº ¡®±âÇ¥¡¯¿Í ¡®±âÀÇ¡¯¶ó´Â ¾î·Á¿î ¸»·Î Ç¥ÇöÇϱ⵵ ÇÑ´Ù). ÇÁ·Î±×·¡¸ÓµéÀÌ °¡Àå ÈçÈ÷ ¾Ë°í ÀÖ´Â ÆÐÅÏÀ¸·Î ´ëÇ¥ÀûÀÎ °ÍÀº ¡®½Ì±ÛÅÏ(Singleton)¡¯ ÆÐÅϰú ¡®ÆÑÅ丮(Factory)¡¯ ÆÐÅÏÀÌ ÀÖ´Ù. µÑ ´Ù °´Ã¼¸¦ »ý¼ºÇÒ ¶§ ÈçÈ÷ »ç¿ëÇÏ´Â ±â¹ýÀ̱⠶§¹®¿¡ Àû¾îµµ ÇѹøÂë µé¾îº¸°Å³ª ±¸ÇöÇØº» ÀûÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î ÀÚ¹Ù ¾ð¾î¿¡¼ ÀÚ¹Ù °¡»ó¸Ó½Å(VM) ³»ºÎ¿¡ »ý¼ºµÇ´Â °´Ã¼ÀÇ ÀνºÅϽº ¼ö¸¦ Çϳª·Î ±¹ÇѽÃ۰íÀÚ ÇÒ ¶§ »ç¿ëÇÏ´Â ¡®½Ì±ÛÅÏ¡¯ ÆÐÅÏÀ» »ý°¢ÇØ º¸ÀÚ. ½Ì±ÛÅÏ ÆÐÅÏÀ» ¼÷ÁöÇϰí ÀÖ´Â »ç¶÷µéÀº ´ÙÀ½°ú °°Àº Äڵ带 ÀÛ¼ºÇÑ´Ù.
private static MyObject instance = null;
public static MyObject getInstance ()
{
if (instance == null)
{
instance = new MyObject ();
}
return instance;
}
private MyObject ()
{
// °´Ã¼ »ý¼º¿¡ ÇÊ¿äÇÑ ÃʱâÈ ÀÛ¾÷À» ¿©±â¿¡¼ ¼öÇàÇÑ´Ù.
}
¾ÕÀÇ ÄÚµå´Â MyObject¶ó´Â À̸§ÀÇ °´Ã¼¸¦ ¸¸µé±â À§ÇÑ Å¬·¡½º¸¦ Á¤ÀÇÇϰí ÀÖ´Ù. Ŭ·¡½ºÀÇ »ý¼ºÀÚ(constructor)°¡ ÇÁ¶óÀ̺ø(private)À¸·Î ¼±¾ðµÇ¾î Àֱ⠶§¹®¿¡ MyObjectÀÇ ÀνºÅϽº°¡ ÇÊ¿äÇÑ ÄÚµå´Â ¹Ýµå½Ã ÆÛºí¸¯(public)À¸·Î ¼±¾ðµÇ¾î ÀÖ´Â ¡®getInstance ¸Þ½îµå¡¯¸¦ ÅëÇØ¼ Á¢±ÙÇØ¾ß ÇÑ´Ù. getInstance ¸Þ½îµå´Â ½ºÅÂÆ½(static)À¸·Î ¼±¾ðµÇ¾î Àֱ⠶§¹®¿¡ ¡®MyObject.getInstance()󷳡¯ (°´Ã¼¸¦ »ý¼ºÇÒ ÇÊ¿ä ¾øÀÌ ¹Ù·Î) Ŭ·¡½º¿¡ ´ëÇÑ ÂüÁ¶¸¦ ÀÌ¿ëÇØ¼ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.
½Ì±ÛÅÏ ÆÐÅÏÀÇ À¯¿ë¼º
½Ì±ÛÅÏ ÆÐÅÏÀº ´Ü¼øÇÏÁö¸¸ À¯¿ëÇØ¼ ½ÇÀü ÇÁ·Î±×·¥¿¡¼ ³Î¸® »ç¿ëµÇ´Â ´ëÇ¥ÀûÀÎ ÆÐÅÏÀÇ ÇϳªÀÌ´Ù. º¸Åë ¡®»ý¼ºÀû(creational)¡¯, ¡®±¸Á¶Àû(structural)¡¯, ±×¸®°í ¡®ÇàÀ§Àû(behavioral)¡¯À̶ó´Â ¼¼ ¹üÁÖ·Î ±¸ºÐµÇ´Â ¿©·¯ °³ÀÇ ÆÐÅÏÀº ½Ì±ÛÅÏ ÆÐÅÏÀÌ ÀνºÅϽºÀÇ ¼ö¸¦ Çϳª·Î ±¹ÇѽÃ۰íÀÚ ÇÏ´Â ¸ñÀûÀ» °®´Â °Íó·³ Àú¸¶´ÙÀÇ ¸ñÀûÀ» °¡Áö°í ź»ýÇß´Ù. ±×¸®°í ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³°èÇÏ´Â ÇÁ·Î±×·¡¸ÓµéÀº ÀǽÄÀûÀÌµç ¾Æ´Ïµç ±×·¯ÇÑ ÆÐÅÏÀÇ µµ¿òÀ» ¹ÞÀ¸¸é¼ º¹ÀâÇϰí Á¤±³ÇÑ °´Ã¼ÀÇ °ÇÃ๰À» ¿Ï¼ºÇؿԴÙ.
Ä¿´×Çè°ú ÄËÀÌ ÆÐÅÏÀÇ °³³äÀ» Æ÷ÂøÇÑ ÀÌÈÄ·Î ÆÐÅÏÀº °í¼ö°¡ µÇ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó°¡ ¹Ýµå½Ã ÀÍÇô¾ß ÇÏ´Â ÃʽÄÀÌ µÇ¾úÁö¸¸, °´Ã¼¿Í ¸¶Âù°¡Áö·Î ±×°ÍÀº ¸¸º´ÅëÄ¡¾àÀº ¾Æ´Ï´Ù. °´Ã¼ÀÇ ¼³°èµç, Á¤±³ÇÑ ¾Ë°í¸®ÁòÀÇ ÀÛ¼ºÀ̵ç, ±×°ÍÀº ¡®¾à¡¯ÀÇ ÈûÀ¸·Î ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿ÀÁ÷ ÇÁ·Î±×·¡¸Ó º»ÀÎÀÇ ÈûÀ¸·Î ÇØ¾ß ÇÏ´Â ÀÏÀ̱⠶§¹®ÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ ¡®¿Ï¼ºµµ¡¯¿Í ¡®¹ÌÇС¯Àº ÆÐÅÏ ÀÚü¿¡ ³õ¿©ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ±× ÆÐÅÏÀ» ÀÌ¿ëÇÏ´Â ÇÁ·Î±×·¡¸ÓÀÇ ´É·Â°ú ÀÚ¼¼¿¡ ´Þ·ÁÀÖ´Â °ÍÀÌ´Ù. @
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ ÀÚ¸ÅÁöÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î 8¿ùÈ£¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.