·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  Æ÷½ºÆ®   Ä÷³   º¸µµÀÚ·á   ±â¾÷Á¤º¸   ¸®Æ÷Æ® & Æ®·»µå   Àüü±â»ç  
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
°³¹ßÀÚÀÇ ÃʽÄ, µðÀÚÀÎ ÆÐÅÏ¡¸±×·¯³ª¡¦¡¹

ÀÓ¹éÁØ (·ç½¼Æ® Å×Å©³î·ÎÁö)   2004/11/05 10:54:02 AM
Untitled Document
[Áöµð³ÝÄÚ¸®¾Æ]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¿ùÈ£¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
UX´Â ·¯ºê¾×Ãò¾ó¸®½Ä ÇÁ·ÎÆ÷Áî
°øÀÎÀÎÁõüÁ¦, ¿ì¸®¿¡°Ô ÀÓ¹ÚÇÑ ¹Ì...
ÀÌ ¶¥ÀÇ IT º¥Ã³°¡ »ì¾Æ³²´Â ¼¼...
ºñÁî´Ï½º º¸¾È¿¡ µÐ°¨ÇÑ ITÁ¶Á÷µé
±¸±Û Å©·Ò¿¡ ´ëóÇÏ´Â ¿ì¸®ÀÇ ÀÚ¼¼
DB2 »ç¿ëÀÚ Ä¿¹Â´ÏƼ ¿ÀÇÂ!! ...
¿ÀÁîÀÇ ¸¶¹ýÀÌ ¹«¼±ÀÎÅÍ³Ý È¯°æ¿¡ ...
Ensuring Data Prot...
Á¦°ø: Oracle
SME Issues: 3 shor...
Á¦°ø: Oracle
How to Choose the ...
Á¦°ø: Oracle
Software And Servi...
Á¦°ø: Oracle
Director Special R...
Á¦°ø: Oracle
[Å×Å©º¸µå ½ÃÁð3]±Û·Î¹ú IT¾÷üµé, °¢Á¾ ¾Ç¼º ·ç¸Ó·Î È«¿ª ¿Ü [00:06:29]
±âȹ ·ùÁØ¿µ ±âÀÚ, ÁøÇà ¹ÚÀ±¹Ì, Á¦ÀÛ À¯È¸Çö PD
[CNET ¿µ¹®¹æ¼Û]¹°°í±â·Î ÀçâÁ¶µÈ 'MP3 ¸®¹Í½º ¾ÆÆ®' [00:06:09]
Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
¡°Çѱ¹ SW´Â ·¹µå¿À¼ÇÀΰ¡?¡±
"¾×ƼºêX¿Í °øÁ¸ ¸ð»ö"¡¦±¸±Û, ...
°øÀÎÀÎÁõüÁ¦, ¿ì¸®¿¡°Ô ÀÓ¹ÚÇÑ ¹Ì...
¡®¾Ë¾à¡¯ µ¹Ç³Àº ³×À̹öµµ ¸ø¸»·Á?
UX´Â ·¯ºê¾×Ãò¾ó¸®½Ä ÇÁ·ÎÆ÷Áî
³×À̹öÆÇ ÆÄÀÌ¾îÆø½º3, 9¿ù4ÀÏ ...
µðÁöÅÐÇîÁö, ºí·¹À̵弭¹ö 'ÆÄ¿ö¼¼...
ÇìÀÌ¿öµåÅ×Å©, Çѱ¹ÅõÀÚÁõ±Ç¿¡ XI...
Æ÷½ºµ¥ÀÌŸ, ECM ½ÃÀå ÁøÃâ
»ï¼ºÀüÀÚ, Çù·Â»ç CFO ´ë»ó '...
±¹³»¿Ü ÈÞ´ëÆù ¾Ö³Î¸®½ºÆ®, ÇÑÀÚ¸®...
 
 
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.