¡åAdvertisement
right event
¡åAdvertisement
ÀÐÀ»°Å¸® > ƯÁý

Áú¼­ ÀÖ´Â ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ̾߱â 3ºÎ

ÇÊÀÚÀÇ ÁöÀÎ Áß SI ±â¾÷ÀÇ »ç³» °­»ç°¡ ÀÖ´Ù. °­Àǰ¡ ÁÖ ¾÷¹«À̱ä ÇÏÁö¸¸, °úÁ¤ °³¹ßÀ̳ª °úÁ¤ °ü¸® ¾÷¹«µµ ´ã´çÇϰí ÀÖ´Ù. ÁöÀÎÀº °úÁ¤ °³¹ßÀ» ÇÏ°Ô µÇ¸é °úÁ¤ °³¼³ Àü¿¡ Á÷Á¢ ¸¶ÄÉÆÃÀ» ÇÑ´Ù. º»ÀÎÀÌ ¸¸µç °úÁ¤Àº ¹«¾ù¿¡ ´ëÇÑ ³»¿ëÀÎÁö, ´©±¸¸¦ À§ÇÑ °ÍÀÌ¸ç ¿Ö µé¾î¾ß ÇÏ´ÂÁö¿¡ ´ëÇØ »ç¶÷µéÀÌ ¸ðÀÌ´Â Àå¼Ò¿¡ °¡¼­ È«º¸ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ±ÛÀÇ ¸ñÀûµµ ƯÁ¤ ÆÐÅÏÀ» »ó¼¼È÷ ´Ù·ç±âº¸´Ù´Â ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ̶õ ¾î¶² °ÍÀ̰í, ¾î¶² »ç¶÷µéÀ» À§ÇÑ °ÍÀÎÁö¿¡ ´ëÇÑ ±ÛÀÌ´Ù.

¹Ú¼±¿í dikisun@naver.com£üÇö´ëÄ«µå¿¡¼­ 2³â°£ ±Ù¹«ÇßÀ¸¸ç, 2005³âºÎÅÍ´Â Çѱ¹¿¹Å¹°áÁ¦¿ø¿¡¼­ ºÐ¼®¼³°è ¾÷¹«¸¦ ´ã´çÇϰí ÀÖ´Ù. ±âȸ°¡ µÈ´Ù¸é ÀºÇà°ú º¸Çè ¾÷¹«¸¦ °æÇèÇÏ¿© ±ÝÀ¶ µµ¸ÞÀÎ Àü¹®°¡°¡ µÇ´Â °ÍÀÌ ¸ñÇ¥ÀÌ´Ù. ÆÐÅϰú ¹æ¹ý·Ð, ÇÁ·¹ÀÓ¿öÅ© µî¿¡ ¸¹Àº °ü½ÉÀ» °¡Áö°í Eva ½ºÅ͵ð Ȱµ¿À» Çϰí ÀÖ´Ù.

¸¶¼Ò ȨÆäÀÌÁö¿¡¼­ ÆÐÅÏÀ̶õ ´Ü¾î·Î PDF ¼­ºñ½º¸¦ °Ë»öÇϸé ÃÑ 42°³ÀÇ ÄÜÅÙÃ÷°¡ ¶á´Ù. ±×·³¿¡µµ ÆÐÅÏÀº ²ÙÁØÈ÷ ±â»ç°Å¸®°¡ µÇ°í ÀÖ´Ù. ¿Ö ±×·± °ÍÀϱî? ³Î¸® ¾Ë·ÁÁø °Íó·³ öÇп¡¼­ ¼öÇÐÀÌ ºÐ¸®µÇ¾ú°í, ¼öÇÐÀº ´Ù½Ã °úÇÐÀ¸·Î ³ª´©¾îÁ³´Ù. ÀÌó·³ ¸¹Àº »ç¶÷µéÀÌ °ü½ÉÀ» °¡Áö°í Âü¿©ÇÏ´Â Çй®µéÀº ÁøÈ­ÇÒ¼ö·Ï ¼¼ºÐÈ­µÈ´Ù. ÆÐÅÏ ¿ª½Ã 1995³â GoF°¡ ¡ºDesign Patterns: Elements of Reusable Object-Oriented Software¡»¶õ Ã¥À» ³»¸é¼­ ³Î¸® ¾Ë·ÁÁö±â ½ÃÀÛÇß´Ù. ±× ÀÌÈÄ ¼¼ºÐÈ­µÇ¾î ºÐ¼®¿µ¿ªÀÇ ÆÐÅÏ(Analysis Pattern), ±¸Çö ÆÐÅÏ(Implement Pattern), Å×½ºÆ® À¯´Ö ÆÐÅÏ(Test Unit Patterns) µî °¢°¢ÀÇ µµ¸ÞÀΠƯȭµÈ ÆÐÅϵéÀÌ °è¼ÓÇØ¼­ ³ª¿À°í ÀÖ´Ù. ȤÀÚµéÀº ÀÌÁ¦ ÆÐÅÏÀÇ È«¼ö·Î ÀÎÇØ ÆÐÅÏ »ç¿ëÀÌ ¿ÀÈ÷·Á ´õ Èûµé¾îÁö´Â ½Ã±â¶ó°í À̾߱âÇÑ´Ù.

ÇÊÀÚ´Â ¸¹Àº ¿µ¿ªÀÇ ÆÐÅÏ Áß¿¡¼­ GoFÀÇ µðÀÚÀÎ ÆÐÅϸ¸Å­À̳ª ÀÏÂï(1996³â Pattern-Oriented Software Architecture) ¼Ò°³µÇ¾î ÇØ¿Ü¿¡¼­´Â ¸¹ÀÌ ÀüÆÄµÇ¾úÀ¸³ª, ¾ÆÁ÷±îÁö ¿ì¸®³ª¶ó¿¡¼­´Â È®»êµÇÁö ¾ÊÀº ¾ÆÅ°ÅØÃ³ ÆÐÅÏ¿¡ ´ëÇØ À̾߱âÇϰíÀÚ ÇÑ´Ù.

¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³¶õ?
Á·º¸(?)¸¦ °Å½½·¯ ¿Ã¶ó°¡µíÀÌ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³¿¡ ´ëÇÑ ³»¿ëÀÌ°í ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³ÀÇ À¯·¡´Â ¸¹Àº IT ¿ë¾îµéÀÌ ±×·¸µíÀÌ °ÇÃàÀÇ ¾ÆÅ°ÅØÃ³¿¡¼­ À¯·¡µÇ¾ú´Ù. ±× Á·º¸ ¼ø¼­´ë·Î ¾ÆÅ°ÅØÃ³¶õ ¹«¾ùÀÎÁöºÎÅÍ »ìÆìº¸ÀÚ.

¾ÆÅ°ÅØÃ³ÀÇ ¿µ¹® ¾î¿øÀº Architecture = archi(first, chief, govern) + tect(build)ÀÌ´Ù. ÇØ¼®Çغ¸¸é °Ç¹°À» ±¸Ãà(build)ÇÒ ¶§ ÀüüÀûÀÎ ±¸Á¶¸¦ °ü¸®(govern)ÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¶óƾ¾îÀÇ ¾î¿øÀ» ã¾Æº¸¸é Architectura = Arch(Å«, ¿ìµÎ¸Ó¸®) + Tectura(±â¼ú), Áï Å« ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¶§ ±¸Á¶¸¦ °ü¸®Çϱâ À§ÇÑ ±â¼úÀ» ÀǹÌÇÑ´Ù. ±×·¸´Ù¸é ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³¶õ ¹«¾ùÀ» ÀǹÌÇϴ°¡?

‘¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀ» ±¸¼ºÇÏ´Â ¼­ºê½Ã½ºÅÛ°ú ÄÄÆ÷³ÍÆ®, ±×¸®°í ±×°ÍµéÀÇ °ü°è¸¦ ³ªÅ¸³»´Â ¿ë¾îÀÌ´Ù.’
- Pattern-Oriented Software Architecture, Volume 1: A System of Patterns

‘¾ÆÅ°ÅØÃ³´Â ÄÄÆ÷³ÍÆ®·Î ±¸Ã¼È­µÈ ½Ã½ºÅÛÀÇ ±âº»ÀûÀÎ Á¶Á÷À̸ç ȯ°æ¿¡ ´ëÇÑ °ü°èÀÌ°í µðÀÚÀΰú ÁøÈ­¸¦ À̲ô´Â ¿ø¸®ÀÌ´Ù.’
- IEEE1471

‘¼ÒÇÁÆ®¿þ¾î ±¸¼º¿ä¼Ò¿Í ±×µéÀÌ Áö´Ï°í Àִ Ư¼º Áß¿¡ ¿ÜºÎ¿¡ µå·¯³ª´Â ¿ä¼ÒÀÇ Æ¯¼º, ±×¸®°í ±¸¼º¿ä¼Òµé °£ÀÇ °ü°è¸¦ Ç¥ÇöÇÏ´Â ½Ã½ºÅÛÀÇ ±¸Á¶³ª ±¸Á¶Ã¼¸¦ ¸»ÇÑ´Ù’
- Software Architecture in Practice

¸î¸î Ã¥¿¡¼­ ³ª¿Â ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³¿¡ ´ëÇÑ Á¤ÀÇÀÌ´Ù. Á¤Àǰ¡ Á¶±Ý¾¿ ´Ù¸£Áö¸¸ °øÅëÀûÀ¸·Î ¾ð±ÞÇϰí ÀÖ´Â °ÍÀº ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³¶õ ½Ã½ºÅÛÀ» ±¸¼ºÇÏ´Â ±¸¼º¿ä¼Ò(¼­ºê½Ã½ºÅÛ, ÄÄÆ÷³ÍÆ®)¿Í ±×µé(±¸¼º¿ä¼Ò) °£ÀÇ °ü°è¸¦ ³ªÅ¸³½´Ù´Â Á¡ÀÌ´Ù.

Á» ¾î·Æ´Ù¸é ´õ ½±°Ô ¿¹·Î <±×¸² 2>¸¦ µé¾îº¸ÀÚ. ÁÂÃø ±×¸²Àº ÇÐâ½ÃÀý ÁÁ¾ÆÇß´ø ÇÁ¶ó¸ðµ¨ÀÇ Á¶¸³¼³¸í¼­À̰í, ¿ìÃøÀº ½ºÆ®·µÃ÷ÀÇ ¾ÆÅ°ÅØÃ³¸¦ Ç¥ÇöÇÑ ±×¸²ÀÌ´Ù. ÁÂÃø Á¶¸³¼³¸í¼­¿¡´Â Á¶¸³ºÎǰ¿¡ ´ëÇÑ Á¤º¸(ºÎǰ¹øÈ£)¿Í ¼­·Î ¿¬°áµÇ´Â Á¤º¸(È­»ìÇ¥)¸¦ Ç¥±âÇϰí ÀÖ´Ù. ¿ìÃø¿¡ Àͼ÷ÇÑ ½ºÆ®·µÃ÷ ¾ÆÅ°ÅØÃ³µµ ¿ª½Ã ´Ù¸¦ ¹Ù°¡ ¾ø´Ù. ±¸¼º¿ä¼Ò¿¡ ´ëÇÑ Á¤º¸(¸íĪ)¿Í ¿¬°üµÈ ±¸¼º¿ä¼Ò³¢¸®ÀÇ °ü°è¸¦ Ç¥½ÃÇϰí ÀÖ´Ù. ÀÌÁ¦ ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³°¡ ¾î¶² °ÍÀÎÁö °¨ÀÌ ¿ÔÀ» °ÍÀÌ´Ù. ±×·¸´Ù°í ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³°¡ ±×¸²À̶ó°í »ý°¢ÇÏ¸é ¾È µÈ´Ù. ±¸¼º¿ä¼Ò¿Í °ü°è¸¦ ¼³¸íÇϱâ À§ÇÑ ÅØ½ºÆ®, Ç¥ µî ¾î¶°ÇÑ ÇüÅÂ·Îµç °¡´ÉÇÏ¸ç °ÅÀÇ ¸ðµç °æ¿ì È¥ÇÕµÇ¾î »ç¿ëµÈ´Ù.

¿Ö ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³¸¦ ¾Ë¾Æ¾ß Çϴ°¡?

µå¶ó¸¶³ª ¿µÈ­¿¡¼­ ¿¬ÀεéÀÌ <±×¸² 3>°ú °°Àº ÆÛÁñÀ» »ç¼­ ÇÔ²² ¸Ó¸®¸¦ ¸Â´ë°í ¸ÂÃß´Â ¸ð½ÀÀ» º» ÀûÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à ÁÂÃøÀÇ 16Á¶°¢ ÆÛÁñÀ̶ó¸é ¿Ï¼ºµÈ(±¸¼º¿ä¼Ò¿Í ¿¬°ü °ü°è¸¦ Ç¥½ÃÇÑ) ±×¸² ¾øÀÌ ½±°Ô ÇØ³¾ ¼ö ÀÖ´Ù. ³Ê¹« »¡¸® ³¡³ª ´Ù¸¥ ³îÀ̵µ ÁغñÇØµÎÁö ¾ÊÀ¸¸é, ÀÚÄ© ¿¬ÀÎÀÌ Áö·çÇØ ÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ¿ìÃø°°ÀÌ 5,000Á¶°¢ÀÇ ÆÛÁñÀ̶ó¸é »çÁ¤Àº ´Þ¶óÁø´Ù. ¿Ï¼ºµÈ(±¸¼º¿ä¼Ò¿Í ¿¬°ü°ü°è¸¦ Ç¥½ÃÇÑ) ±×¸²Àº ÇʼöÀÎ °ÍÀÌ´Ù. À߸øÇÏ¸é ¼­·Î¿¡°Ô ‘ÆÛÁñÇϳª ¸ø ¸ÂÃß³ª’¶ó´Â ½ÄÀÇ ½Ç¸Á°¨À» ¾È°ÜÁÙ ¼öµµ ÀÖÀ¸´Ï Á¶½ÉÇØ¾ß ÇÑ´Ù. ¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÃ³ ¿ª½Ã ±Ô¸ð°¡ ÀÛÀº ÇÁ·Î±×·¥¿¡¼­´Â ÇÊ¿äÇÏÁö ¾Ê´Ù. ±×·¯³ª º¹ÀâÇÑ ½Ã½ºÅÛÀ̶ó¸é ¼º°øÀûÀÎ ±¸Ãà°ú À¯Áöº¸¼ö¸¦ À§ÇØ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.

¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ̶õ?

¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ̶õ µðÀÚÀÎ ÆÐÅϰú ¸¶Âù°¡Áö·Î ƯÁ¤ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ¹Ýº¹µÇ¾î »ç¿ëµÇ´Â ¼Ö·ç¼ÇÀ» ¹®¼­È­ÇÑ °ÍÀÌ´Ù. ´ÜÁö ¹®Á¦ÀÇ ¿µ¿ªÀÌ ¼³°è(µðÀÚÀÎ)°¡ ¾Æ´Ñ ¾ÆÅ°ÅØÃ³¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. ³ª¹«¸¦ º¸´À³Ä, ½£À» º¸´À³ÄÀÇ Â÷ÀÌÀÎ ¼ÀÀÌ´Ù.

¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀÇ ±¸Á¶¸¦ ü°èÀûÀ¸·Î ±¸¼ºÇϱâ À§ÇÑ ±âº»ÀûÀÎ ½ºÅ°¸¶¸¦ Á¦½ÃÇÑ´Ù. ¾ÆÅ°ÅØÃ³ ÆÐÅÏ¿¡´Â ¹Ì¸® Á¤ÀÇµÈ ¼­ºê½Ã½ºÅÛÀ» Á¦°øÇÏ°í °¢°¢ÀÇ ¾ÆÅ°ÅØÃ³ ÆÐÅϰ£ÀÇ Ã¥ÀÓÀ» ¸í½ÃÇÏ¸ç ÆÐÅÏµé »çÀÌÀÇ °ü°è¸¦ Á¶Á÷È­ÇÏ´Â ±ÔÄ¢°ú °¡À̵å¶óÀÎÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.

Áï, ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀÇ Àüü ±¸Á¶¸¦ ³ªÅ¸³»´Â Á¶°¨µµÀ̸鼭 ±¸¼º¿ä¼Òµé¿¡ ´ëÇÑ ¼³¸í¼­À̱⵵ Çϸç, ±¸¼º¿ä¼Òµé »çÀÌÀÇ °ü°è¸¦ Á¶Á÷È­ÇÏ´Â ±ÔÁ¤ÁýÀ̱⵵ ÇÏ´Ù. ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº ¾ÆÅ°ÅØÃ³´Â ¾Æ´Ï³ª ½Ã½ºÅÛÀÇ À¯¿ëÇÑ À̹ÌÁö¸¦ Àü´ÞÇØÁØ´Ù. ÆÐÅÏÀÇ ¶Ç ´Ù¸¥ À¯¿ëÇÑ Ãø¸éÀº ǰÁú ¼Ó¼ºÀ» ¸íÈ®È÷ º¸¿©ÁØ´Ù.

¿Ö ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ» ¾Ë¾Æ¾ß Çϴ°¡?

¾ÆÅ°ÅØÆ®(¾ÆÅ°ÅØÃ³¸¦ ÃÑÃ¥ÀÓÁö´Â »ç¶÷)´Â °ð Àß ¿ÀÄɽºÆ®¶óÀÇ ÁöÈÖÀÚ¿Í ºñ±³µÈ´Ù. <±×¸² 5>´Â À¯¸íÇÑ ÁöÈÖÀÚ Ä«¶ó¾áÀÇ ÁöÈÖ ¸ð½ÀÀ» º¸¿©ÁØ´Ù. Ä«¶ó¾áÀº ¿ø·¡ ÇǾƴϽºÆ®·Î¼­ÀÇ ±æÀ» °¡·Á Çß´Ù. ±×·¯³ª ±×´Â ±× ºÐ¾ß¿¡¼­ ¼º°øÇÒ °¡´É¼ºÀÌ Èñ¹ÚÇÏ´Ù´Â °ÍÀ» ´À³¢°í ÀÖ´ø Â÷¿¡ Àº»ç¿´´ø ÆÄ¿ò°¡¸£Æ®(BernhardPaum gartner)ÀÇ Á¶¾ðÀ¸·Î ÁöÈÖÀÚÀÇ ±æÀ» ÅÃÇÑ´Ù.

Ä«¶ó¾áÀÌ ÁöÈÖ¸¦ °øºÎÇϸ鼭 ±×ÀÇ Àλý¿£ ¸¹Àº Çà¿îÀÌ ÀÕµû¸£´Âµ¥ ´Ù¸§ ¾Æ´Ï¶ó ´ç½Ã ºó ±¹¸³°¡±ØÀåÀÇ °Ç¹° °ü¸®ÀÚ °â °¨µ¶°üÀ̾ú´ø »ç¶÷ÀÌ ¹Ù·Î Ä«¶ó¾áÀÇ ¼÷ºÎ¿´´Ù. ¼÷ºÎ´Â Á¶Ä«¿¡°Ô À¯¸íÇÑ ÁöÈÖÀÚÀÇ ¿¬ÁÖȸ³ª ºñ°ø°³ ¿¬½ÀÀ» µéÀ» ¼ö ÀÖµµ·Ï ÇØÁÖ¾ú´Ù. °ÅÀåµéÀÇ ¸ð½ÀÀ» °¡±îÀÌ º¸¸é¼­ ±×´Â ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖ¾ú´Ù.

¿©·¯ºÐµéÀÌ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ» ¾Ë°í »ç¿ëÇÑ´Ù´Â °ÍÀº Ä«¶ó¾áÀÇ °æ¿ìó·³ ÁÁÀº ¼÷ºÎ°¡ ¾øÀ̵µ ÈǸ¢ÇÑ ¾ÆÅ°ÅØÆ®ÀÇ ³ëÇϿ츦 ¹è¿ï ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ´Ù½Ã ¸»ÇÏ¸é °ÅÀåµéÀÌ ÀÌ¹Ì »ç¿ëÇØ ±¸ÃàÇÑ ½Ã½ºÅÛÀÌ Á¸ÀçÇÏ´Â °ËÁõµÈ ¾ÆÅ°ÅØÃ³¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. °³¹ß¿¡¼­ ¼³°è¸¦ ÇÏ°Ô µÇ°í ±×·¯¸é¼­ µðÀÚÀÎ ÆÐÅÏÀ» °øºÎÇßµíÀÌ, ÀüüÀûÀÎ ¼ÒÇÁÆ®¿þ¾îÀÇ ½Ã½ºÅÛÀ» ´Ù·ç°íÀÚ ÇÒ ¶§ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

À½¾Ç°è¿¡ Àç¹ÌÀÖ´Â ¿¡ÇǼҵ尡 Çϳª ÀÖ´Ù. ¶Ç ´Ù¸¥ À¯¸íÇÑ ÁöÈÖÀÚ¾È ÇÁ¶õÃ÷ ¼£Å©(F. Schalk 1863-1931)°¡ ¿ÀÄɽºÆ®¶ó¸¦ °´¼®¿¡¼­ °¨»óÇÒ ¶§ÀÇ ÀÏÀ̾ú´Ù. ¿¬ÁÖ°¡ ¹«¸£À;ÀÚ ¹«ÀǽÄÀûÀ¸·Î ´«À» °¨¾Ò´Ù. ±×·¨´õ´Ï ¿·¿¡ ¾É¾ÆÀÖ´ø ÇÑ ³²ÀÚ°¡ °¡¸¸È÷ ¼Ó»è¿´´Ù. "±×°ÍÀº Çö´ë ȸȭ¸¦ º¼ ¶§¸¸ ±×·¸°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù. ¿©±â¼­´Â ±Í¸¦ ¸·¾Æ¾ß ÇØ¿ä."

¸ðµÎ°¡ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ» »ó¼¼È÷ ¾Ë¾Æ¾ß ÇÒ ÇÊ¿ä´Â ¾øÁö¸¸, ÃÖ¼ÒÇÑ ´Ù¸¥ »ç¶÷°úÀÇ ´ëÈ­³ª Àüü ½Ã½ºÅÛ¿¡¼­ ÀÚ½ÅÀÌ ¸ÃÀº ¹Ù¸¦ ÀÌÇØÇÒ ¼ö ÀÖ´Â Á¤µµ´Â ¾Ë°í ÀÖ¾î¾ß, ±Í¸¦ ¸·°Å³ª ´«À» °¨´Â »ç¶÷ÀÌ µÇÁö ¾Ê´Â´Ù.

[¾ÆÅ°ÅØÃ³ ÆÐÅÏÀÇ ÀåÁ¡]
- °ËÁõµÈ ¾ÆÅ°ÅØÃ³ÀÌ´Ù.
- ±¸Ãà Àü¿¡ ½Ã½ºÅÛÀÇ Æ¯¼º¿¡ ´ëÇØ ½Ã¹Ä·¹À̼ÇÇÒ ¼ö ÀÖ´Ù.
- ±âÁ¸ ½Ã½ºÅÛÀ» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Ù.   

¾ÆÅ°ÅØÃ³ ÆÐÅϰú µðÀÚÀÎ ÆÐÅÏ
¾Õ¿¡¼­ºÎÅÍ µðÀÚÀÎ ÆÐÅϰú ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ» °è¼Ó ¹­¾î¼­ À̾߱âÇØ¿Ô´Ù. ÀÌÂë¿¡¼­ ¸íÈ®È÷ ¼­·Î°£ÀÇ °ü°è¸¦ Á¤¸®Çϵµ·Ï ÇÏÀÚ. µÎ °¡Áö ¸ðµÎ´Â ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ À־ ¹Ýº¹µÇ´Â ¹®Á¦µé¿¡ ´ëÇÑ ÇØ¹ýÀ̶ó´Â Á¡¿¡¼­ µ¿ÀÏÇÏ´Ù.

ÇÏÁö¸¸, µðÀÚÀÎ ÆÐÅÏÀÌ ÇÁ·Î±×·¥ÀÇ ¼³°è¿¡¼­ ³ªÅ¸³ª´Â ¹Ýº¹ÀûÀÎ ¹®Á¦¸¦ ´Ù·ç´Â ¹Ý¸é ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛ ÀüüÀûÀ¸·Î ¿µÇâÀ» ¹ÌÄ¡´Â »ç¾Èµé¿¡ ´ëÇÑ ÇØ°á ¹æ¹ýÀÌ´Ù. <Ç¥ 1>·Î °£´ÜÈ÷ µÑÀÇ Â÷ÀÌÁ¡À» Á¤¸®Çغ¸¾Ò´Ù.

¿¹¸¦ µé¸é ‘ÆÄÀÌÇÁ&ÇÊÅÍ’¶ó´Â ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀÌ ÀÖ´Ù. ÀÌ ÆÐÅÏÀÇ ÀåÁ¡ Áß Çϳª´Â µ¿½Ã °³¹ßÀÌ °¡´ÉÇÏ´Ù´Â Á¡ÀÌ´Ù. ÇÊÅÍ ¶Ç´Â ÆÄÀÌÇÁ ´ÜÀ§·Î ³ª´©¾î °³¹ß °¡´ÉÇϱ⠶§¹®¿¡ º´·ÄÀû °³¹ßÀÌ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ µðÀÚÀÎ ÆÐÅÏ Áß¿¡´Â ÀÌ·± ÀåÁ¡À» °¡Áø ÆÐÅÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù.

ÀÌ´Â µðÀÚÀÎ ÆÐÅÏÀº ¼³°è ¹®Á¦¿¡ À־ÀÇ ÇØ°áÃ¥À̱⠶§¹®À̰í, ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛ Àü¹Ý¿¡ °üÇÑ ¹®Á¦ ÇØ°áÀ̱⠶§¹®ÀÌ´Ù. µû¶ó¼­ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº µðÀÚÀÎ ÆÐÅϰú ´Þ¸® Á¶Á÷ÀÇ ±¸Á¶³ª °³¹ß ÇÁ·Î¼¼½ºÀÇ È¿À²¼º±îÁöµµ Æ÷ÇÔÇÑ´Ù.

µÑÀº ÀÌ·¸°Ô ´Ù·ç´Â ¹®Á¦ÀÇ ¿µ¿ªÀÌ ´Ù¸£Áö¸¸, °ð Àß ¾î¿ï·Á ´Ù´Ñ´Ù. ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀÇ ±¸¼ºÀº µðÀÚÀÎ ÆÐÅϵé·Î ÀÌ·ïÁö´Â °æ¿ì°¡ ¸¹´Ù. ±×·¡¼­ µÑ »çÀÌÀÇ °ü°è¸¦ Composit PatternÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀÇ ±¸¼º¿ä¼Ò¿Í ±¸¼º¿ä¼Ò »çÀÌÀÇ °ü°è¸¦ ¹Ýµå½Ã µðÀÚÀÎ ÆÐÅÏÀ¸·Î ÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ÇÏÁö¸¸ ¾ÕÀ¸·Î ³ª¿Ã ¿¹Á¦¿¡¼­µµ º¼ ¼ö ÀÖµíÀÌ µÑÀº ÇÔ²² »ç¿ëµÇ´Â °æ¿ì°¡ ¸¹´Ù.

¾ÆÅ°ÅØÃ³ ÆÐÅϰú µðÀÚÀÎ ÆÐÅϰ£ÀÇ °ü°è ¿¹Á¦
¡ºHead First Design Patterns¡»¿¡ ³ª¿À´Â ¿¹Á¦·Î ¾ÆÅ°ÅØÃ³ ÆÐÅϰú ´ÙÁöÀÎ ÆÐÅÏ °£ÀÇ °ü°è¸¦ ¼³¸íÇϰíÀÚ ÇÑ´Ù. ¿¹¸¦ µé¾î º¸ÀÚ. ÇÑ °³¹ßȸ»ç¿¡¼­ ¹¦ÇÏ°Ô DJ¿Àµð¿À ½Ã½ºÅÛ°ú ½ÉÀå ¹Úµ¿±âÀÇ °øÅëÁ¡ÀÌ ¸¹À½À» ¹ß°ßÇϰí MVC ÆÐÅÏÀ» ÀÌ¿ëÇØ µÎ °¡Áö¸¦ µ¿½Ã¿¡ °³¹ßÇϱâ·Î Çß´Ù.

DJ¿Àµð¿À ½Ã½ºÅÛ¿¡¼­´Â ¾ÆÀÌÆÌÀÌ ¸ðµ¨ ¿ªÇÒÀ», ½ºÅ©·¡Ä¡°¡ ÄÁÆ®·Ñ·¯ ¿ªÇÒÀ» ¸Ã°í ºä ÄÄÆ÷³ÍÆ®ÀÇ ¿ªÇÒÀº ½ºÇÇÄ¿ÀÌ´Ù. ½ÉÀå ¹Úµ¿±â¿¡¼­´Â ¸ðµ¨Àº ³»ºÎÀûÀ¸·Î ¾Æ³¯·Î±×(¹Úµ¿)¸¦ µðÁöÅÐ(È­¸é¿¡ º¸ÀÌ´Â ¼öÄ¡, ±×·¡ÇÁ)·Î ¹Ù²Ù¾îÁÖ´Â ºÎºÐÀ̰í, ÄÁÆ®·Ñ·¯´Â ÃøÁ¤ ´ë»ó°ú ¿¬°áµÇ´Â ÀԷ´ÜÀÚ°¡ µÉ °ÍÀÌ´Ù.


ÀÌÁ¦ µÎ °¡Áö ½Ã½ºÅÛÀ» ÀüüÀûÀÎ UML ±×¸²À¸·Î º¸ÀÚ.

MVC Áß VIEW¿Í Model °ü°è´Â ¸ðµ¨ÀÇ º¯°æ¿¡ µû¶ó ÀÚµ¿À¸·Î È­¸éÀ» ¹Ù²ãÁÖ±â À§ÇØ Observer PatternÀ¸·Î ÀÌ·ïÁ® ÀÖ´Ù. Ç÷¹À̾î´Â ÀÛµ¿Çϴµ¥ À½¾ÇÀÌ ¾È ³ª¿À´Â DJ¿Àµð¿À ½Ã½ºÅÛÀ̳ª ½ÉÀå ¹Úµ¿¼ö°¡ Ç¥½ÃµÇÁö ¾Ê´Â ½ÉÀå ¹Úµ¿±â¸¦ ´©°¡ »ç°Ú´Â°¡?

°°Àº ½Ã½ºÅÛÀÌ ¼³Á¤¿¡ µû¶ó¼­ DJ¿Àµð¿À ½Ã½ºÅÛÀÏ ¼öµµ ÀÖ°í, ½ÉÀå ¹Úµ¿±â°¡ µÉ ¼öµµ ÀÖ´Ù. ±× ¶§¸¶´Ù ¿øÇÏ´Â ±â±â·Î »ç¿ëÇϱâ À§ÇØ ¸ðµ¨ ÄÄÆ÷³ÍÆ®¸¦ ±³Ã¼ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡¼­ ¸ðµ¨¿¡´Â Strategy PatternÀÌ Àû¿ëµÇ¾î ÀÖ´Ù.

ºä ÄÄÆ÷³ÍÆ®´Â º¹ÇÕÀûÀÎ È­¸éÀ» ½±°Ô ±¸¼ºÇϱâ À§ÇØ Composite PatternÀ» »ç¿ëÇØ ±¸ÇöµÇ¾î ÀÖ´Ù.

ÇϳªÀÇ MVC ÆÐÅÏÀÇ ±¸¼º¿ä¼ÒÀÎ ¸ðµ¨°ú ºä´Â °¢°¢ Strategy Pattern°ú Composite PatternÀ» ÀÌ¿ëÇß°í ºä¿Í ¸ðµ¨ÀÇ ¿¬°á¿¡´Â Observer PatternÀ» »ç¿ëÇß´Ù. ÀÌ·¸µí ¾ÆÅ°ÅØÃ³ ÆÐÅÏ¿¡¼­ À̾߱âÇÏ´Â ±¸¼º¿ä¼Ò³ª ±¸¼º¿ä¼Ò °£ÀÇ °ü°è¿¡ ´ëÇÑ ±ÔÄ¢À» ¸¸Á·½Ã۱â À§ÇØ µðÀÚÀÎ ÆÐÅÏÀ» ÀÌ¿ëÇÏ´Â °æ¿ì°¡ ¸¹´Ù.

ÀÌÁ¦±îÁö ¾ÆÅ°ÅØÃ³ ÆÐÅÏ¿¡ ´ëÇØ ¼³¸íÇß´Ù. ¿Ö ¿ì¸®°¡ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ» ¾Ë¾Æ¾ß ÇÏ´ÂÁö¸¦ µûÁ®º¸°í µðÀÚÀÎ ÆÐÅϰúÀÇ °øÅëÁ¡°ú Â÷ÀÌÁ¡¿¡ ´ëÇØ »ìÆìºÃ´Ù. Å« °Ç¹°À» ÁöÀ» ¶§Ã³·³ Å« ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¶§´Â ¾ÆÅ°ÅØÃ³°¡ ÇÊ¿äÇÏ´Ù. ½Ã½ºÅÛÀÇ ¿ä±¸»çÇ׿¡ ¸Â´Â ¾ÆÅ°ÅØÃ³¸¦ ã±â À§ÇØ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀ» »ç¿ëÇÑ´Ù. ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀº ½ÇÁ¦ ±¸ÇöÀ» ¿Ï·áÇÏÁö ¾Ê°íµµ ½Ã½ºÅÛÀÇ Æ¯¼ºÀ» ¿¹Ãø °¡´ÉÇÏ°Ô ÇØÁÖ´Â À¯¿ëÇÑ Áö½ÄÀÌ´Ù. ¾ÆÅ°ÅØÃ³ÀÇ ¼¼ºÎ ¼³°è´Â µðÀÚÀÎ ÆÐÅÏÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ°í, ¸¹ÀÌ ±×·¸°Ô »ç¿ëÇÑ´Ù. µðÀÚÀÎ ÆÐÅÏÀÌ ¿©·¯ºÐÀÇ ¸¹Àº °í¹ÎÀ» ÇØ°áÇØÁÖ¾úµíÀÌ, ¾ÆÅ°ÅØÃ³ ÆÐÅϵµ ±×·² ¼ö Àֱ⸦ ±â¿øÇÑ´Ù.

MVC ÆÐÅÏÀ̶õ?
´ëÇ¥ÀûÀÎ ¾ÆÅ°ÅØÃ³ ÆÐÅÏÀÇ Çϳª·Î ½Ã½ºÅÛ Àüü¸¦ Model°ú View, Controller ¼¼ °³ÀÇ ÄÄÆ÷³ÍÆ®·Î ³ª´©¾î¼­ °¢ ºÎºÐÀÇ º¯°æ ¿µÇâµµ¸¦ ÃÖ¼ÒÈ­Çϱâ À§ÇÑ ÆÐÅÏÀÌ´Ù. Model ÄÄÆ÷³ÍÆ®´Â ÇÙ½É µ¥ÀÌÅÍ¿Í ±â´ÉÀ» ĸ½¶È­ÇÑ´Ù. ¸ðµ¨Àº ƯÁ¤ Ãâ·Â Ç¥Çö ¹æ½ÄÀ̳ª ƯÁ¤ ÀÔ·Â µ¿ÀÛ¿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù.

ºä ÄÄÆ÷³ÍÆ®´Â »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ µð½ºÇ÷¹ÀÌÇÑ´Ù. ºä´Â ¸ðµ¨·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¾ò´Â´Ù. ¸ðµ¨·ÎºÎÅÍ Á¦°øµÈ µ¥ÀÌÅÍ´Â ´Ù¾çÇÑ ºä¸¦ ÅëÇØ Ç¥½ÃµÉ ¼ö ÀÖÀ¸¸ç, °¢ ºä¸¶´Ù ÄÁÆ®·Ñ·¯ ÄÄÆ÷³ÍÆ® Çϳª¾¿ ¿¬°áµÈ´Ù. ÄÁÆ®·Ñ·¯ ÄÄÆ÷³ÍÆ®´Â »ç¿ëÀÚÀÇ ÀÔ·Â, ƯÁ¤ À̺¥Æ® µîÀ» ¼­ºñ½º ¿äûÀ¸·Î º¯È¯ÇÑ´Ù. »ç¿ëÀÚ´Â ¿ÀÁ÷ ÄÁÆ®·Ñ·¯¸¦ ÅëÇØ¼­¸¸ ½Ã½ºÅÛ°ú »óÈ£ÀÛ¿ëÇÑ´Ù.

 

 

DJ¿Àµð¿À ½Ã½ºÅÛ°ú ½ÉÀå ¹Úµ¿±â¿¡ Àû¿ëµÈ µðÀÚÀÎ ÆÐÅÏ
º»¹® ¿¹Á¦¿¡ µîÀåÇÏ´Â µðÀÚÀÎ ÆÐÅÏ¿¡ ´ëÇØ °£´ÜÇÏ°Ô ¼³¸íÇϰíÀÚ ÇÑ´Ù. °¢ ÆÐÅÏ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Âü°íÀÚ·á¿¡ ³ª¿À´Â ¡¸Design Patterns: Elements of Reusable Object-Oriented Software¡¹ ¶Ç´Â ¡¸Head First Design Patterns¡¹À» Âü°íÇÏ¸é µÈ´Ù.

Observer Pattern
µÎ °´Ã¼ »çÀÌÀÇ ÀÇÁ¸¼º ¶§¹®¿¡ ÇÑ °´Ã¼ÀÇ »óŰ¡ º¯°æµÇ¸é ÀÚµ¿ÀûÀ¸·Î °ü·ÃµÈ °´Ã¼µé¿¡°Ô ¾Ë·ÁÁÖ±â À§ÇÑ ¼³°èÀÌ´Ù. ¿ì¸®°¡ ´Ù¸¥ »ç¶÷ÀÇ ºí·Î±×¸¦ ¸ÅÀÏ °°ÀÌ µé¾î°¡¼­ »õ·Î¿î ¾ÆÆ¼Å¬ÀÌ µî·ÏµÇ¾ú´ÂÁö »ìÆìº¼ ÇÊ¿ä ¾øÀÌ RSS¸¦ µî·ÏÇÏ¸é »õ ±ÛÀÌ ¿Ã¶ó¿ÔÀ» ¶§, ÀÚµ¿À¸·Î ¾Ë·ÁÁÖ´Â °Í°ú °°´Ù. ¿©±â¼­´Â ¾ÆÀÌÆÌ¿¡ ÀÇÇØ ´ÙÀ½ À½ÀÌ ÇØ¼®µÇ¸é ½ºÇÇÄ¿¿¡°Ô ÀÚµ¿À¸·Î ¾Ë·ÁÁÖ´Â ¿ëµµ·Î »ç¿ëÇϰí ÀÖ´Ù.

Strategy Pattern 

°°Àº ¾Ë°í¸®ÁòµéÀ» °¢°¢ ĸ½¶È­ÇØ ¼­·Î ȣȯ °¡´ÉÇÏ°Ô ¸¸µå´Â ¼³°èÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡ µû¶ó¼­ µ¶¸³ÀûÀ¸·Î ¿øÇÏ´Â ¾Ë°í¸®ÁòÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀüÅõ±â °ÔÀÓ¿¡¼­ ÆÄ¿ö¸¦ ¸ÔÀ» ¶§¸¶´Ù ÇÑ ¹ø¿¡ ¹ß»çµÇ´Â ¹Ì»çÀÏÀÇ °³¼ö¿Í ¸ð¾çÀÌ ´Þ¶óÁø´Ù. ÀÌ·¸°Ô µ¿ÀÏÇÑ ÇàÀ§(¹Ì»çÀÏ ¹ß»ç)¸¦ ´Ù¸¥ ¹æ¹ý(°³¼ö¿Í ¸ð¾ç)À¸·Î ¼±Åà °¡´ÉÇÏ°Ô ÇØÁÖ´Â ¼³°èÀÌ´Ù. ¿©±â¼­´Â À½ÀÇ ÇØ¼®À» À½¾ÇÀ¸·Î º¼ °ÍÀÎÁö, ½ÉÀå ¹Úµ¿À¸·Î º¼ °ÍÀÎÁö ¼±Åà °¡´ÉÇϵµ·Ï Çϱâ À§ÇØ »ç¿ëµÇ°í ÀÖ´Ù.

Composite Pattern
ºÎºÐ°ú Àüü ±¸Á¶°¡ Æ®¸® Çü½ÄÀ¸·Î Ç¥ÇöµÇ´Â Á¶¸³ °´Ã¼¸¦ Composite Object¶ó°í ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ Á¶¸³ °´Ã¼³ª °³º° °´Ã¼³ª ¸ðµÎ µ¿ÀÏÇÏ°Ô Ãë±ÞÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¹®¼­¸¦ ÀÛ¼ºÇÏ°Ô µÇ¸é ±Û»óÀÚ¸¦ ÀÌ¿ëÇϱ⵵ ÇÑ´Ù. ±Û»óÀÚ´Â ¹®¼­¿Í µ¿ÀÏÇÏ°Ô ¾È¿¡ ÅØ½ºÆ®³ª ±×¸²À» ³ÖÀ» ¼ö ÀÖ´Ù.

ÀÌ·¸°Ô ¿öµåÇÁ·Î¼¼¼­¸¦ »ç¿ëÀÚ ÀÔÀå¿¡¼­´Â ±Û»óÀÚ°¡ ¹®¼­ÀÇ ºÎºÐÀÌÁö¸¸ ¹®¼­¿Í µ¿ÀÏÇÏ°Ô Ãë±ÞÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù(±Û »óÀÚ ¾È¿¡ ÅØ½ºÆ®¸¦ ÀÔ·ÂÇϰųª ±×¸²À» »ðÀÔÇÏ´Â ¹æ¹ýÀÌ ´Ù¸£´Ù¸é ¾ó¸¶³ª ºÒÆíÇϰڴ°¡). ¿©±â¼­´Â »ç¿ëÀÚ UI¸¦ ±¸¼ºÇÔ¿¡ ÀÖ¾î ¸ðµç UI ÆÄÆ®¸¦ Graphics¶ó´Â À¯ÇüÀ¸·Î ´ÜÀÏ Ãë±ÞÇÒ ¼ö ÀÖ°Ô »ç¿ëÇϰí ÀÖ´Ù.


Âü°íÀÚ·á
1. Pattern-Oriented Software Architecture, Volume 1: A System of Patterns, Frank Buschmann, WILEY, 1996. 8
2. Software Architecture in Practice (2/E), Paul Clements, Addison-Wesley Professional, 2003. 4
3. IEEE 1471 ±¹Á¦Ç¥ÁØ(IEEE Recommended Practice for Architectural Description of Software-Intensive Systems)
4. Head First Design Patterns, Kathy Sierra, 2004. 10 
5. Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems, Sherif M. Yacoub
6. Design Patterns: Elements of Reusable Object-Oriented Software, JOHN VLISSIDES, 1995. 8
7. [GoF] ÆÐÅÏ À̾߱â - GoF Pattern Overview (¼Õ¿µ¼ö) -
http://www.devpia.com/NET2/EvaCast/Lecture/?cu=view&r=122

 


aboutmenu