µðÀÚÀÎ ÆÐÅÏ(3) - °´Ã¼ »ý¼ºÀÇ ¶Ç ´Ù¸¥ ¹æ¹ý


À̽ÂÀÏ
E-mail:gaialee@icu.ac.kr
Çѱ¹Á¤º¸Åë½Å´ëÇпø´ëÇб³
Homepage:http://www.icu.ac.kr/


°´Ã¼ÁöÇâ ´º½º·¹ÅÍ 2È£¿¡¼­ºÎÅÍ º»°ÝÀûÀÎ ÆÐÅÏ¿¡ ´ëÇÑ À̾߱⸦ Çß´Ù. ȤÀÚ´Â µµ¿òÀº µÇ¾ú´Âµ¥ ¸¹Àº ³»¿ëÀÌ ¾ø¾î¼­ Á» ½Ç¸ÁÇß´Ù´Â ¸ÞÀÏÀ» ÇÊÀÚ¿¡°Ô º¸³»Áֱ⵵ Çß´Ù. »ç½Ç ÆÐÅÏ¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ³»¿ë¸¸À¸·Î´Â º° ³»¿ëÀÌ ¾ø´Â °ÍÀÌ »ç½ÇÀ̾ú´Ù. ±¸Áö º¯¸íÀ» ÇÏÀÚ¸é ±× ÀÌÀ¯´Â ÀÌ·¸´Ù. Áö³­ È£¿¡ Àß ¾Ë·ÁÁø ÆÐÅÏÇϳª¸¸À» °¡Áö°í À̾߱⸦ ÇÑ °ÍÀº ÇÊÀÚÀÇ °ÔÀ¸¸§µµ ÀÖ¾úÁö¸¸, ¾î´Â Á¤µµ ÀǵµÀûÀ̾ú´Ù. ÇÑ ¹ø¿¡ ¿©·¯ °¡Áö ÆÐÅÏÀ» ÀÌ·¯Äô Àú·¯Äô À̾߱⸦ Çϸé ÆÐÅÏÀÌ ¹«¾ùÀ̳Ŀ¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ À̾߱⸦ ÇÏ°í ³Ñ¾î°¡¾ß ÇÏ´Â ½ÃÁ¡¿¡¼­ ±× ÇÙ½ÉÀÌ Èå·ÁÁú ¼ö ÀÖ´Ù´Â »ý°¢¿¡¼­¿´´Ù. º»°ÝÀûÀÎ À̾߱⸦ ½ÃÀÛÇÏ´Â °ÍÀ̹ǷΠù È£¿¡ µÕ±×·¸°Ô À̾߱âÇÑ ÆÐÅÏÀÌ ½ÇÀç·Î ÀÌ·± °ÍÀ̶ó´Â °ÍÀ» ¸ø¹Ú°í ½ÍÀº ¿å½ÉÀÌ ÀÖ¾ú±â ¶§¹®À̾ú´Ù.  ÆÐÅÏ¿¡ ´ëÇÑ À̾߱â´Â ¸¹ÀÌ µé¾ú´Âµ¥ ±¸Ã¼ÀûÀ¸·Î ±× °ÍÀÌ ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö ±Ã±ÝÇØ¿Ô´ø ºÐµé¿¡°Ô µµ¿òÀÌ µÇ¾ú´ÂÁö ¸ð¸£°Ú´Ù. 

ÀÌ ¹øÈ£ºÎÅÍ´Â ÆÐÅÏÀÌ ¹«¾ùÀ̳Ŀ¡ ´äÇϱâ À§ÇÑ °üÁ¡¿¡¼­ ±ÛÀ» ÁøÇàÇϱ⠺¸´Ù´Â ÇÊÀÚ°¡ Áö³­ È£¿¡¼­ °³ÀÎÀûÀÎ ÆÐÅÏ ¼±ÅÃÀÇ ±âÁØÀÎ ¡®°´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇÏ¿© ½Ã½ºÅÛÀ» °³¹ßÇÏ°í ÀÖ´Â ÀϹÝÀûÀÎ °³¹ßÀÚ°¡ ÀÏ»óÀûÀ¸·Î º¼ ¼ö ÀÖ´Â ¶Ç´Â ÇÊ¿ä·Î ÇÏ´Â °Íµé Áß¿¡¼­ µðÀÚÀÎ ÆÐÅÏÀ¸·Î Á¤¸®µÇ¾î ÀÖ´Â °Í¡¯¿¡ ºÎÇÕµÈ´Ù°í »ý°¢µÇ´Â °ÍµéÀ» °ñ¶ó¼­ ±× Àǹ̸¦ ÇϳªÇϳª ÆľÇÇØ °¡µµ·Ï ÇÒ ¿¹Á¤ÀÌ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ÀÌ ºÐ¾ßÀÇ °æÇèÀÌ ¸¹Àº µ¶ÀÚµéÀ̳ª ±×·¸Áö ¾ÊÀº µ¶ÀÚµéÀÌ ³ª¸§´ë·Î °´Ã¼ÁöÇâÀûÀÎ ½Ã½ºÅÛ µðÀÚÀο¡ ±íÀº ÅëÂû(?)À» ¾òÀ» ¼ö ÀÖÀ» °ÍÀ¸·Î ±â´ëÇÑ´Ù. ¿©±â¿£ ÇÊÀÚµµ Æ÷ÇԵȴÙ. ^(^ 

Áö³­ È£¿¡´Â °´Ã¼ »ý¼º¿¡ ´ëÇÑ ÆÐÅÏ Áß¿¡ ±âº»ÀÌ µÇ´Â °ÍÀ¸·Î Factory Method[1]¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸¾Ò´Ù. ÀÌ ÆÐÅÏÀ» ÀÌÇØÇÏ¸é ´Ù¸¥ °ü·Ã ÆÐÅϵ鵵 ±×¸® ¾î·ÆÁö ¾Ê°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» È®ÀÎ ÇÒ ¼ö ÀÖ¾úÀ» °ÍÀÌ´Ù(°ü·Ã ÆÐÅÏÀ¸·Î Á¦°¡ ¿­°ÅÇÑ °ÍµéÀ» ÀÐ¾î º¸¼Ì³ª¿ä? ^(^). ÀÌ ¹øÈ£¿¡´Â GoF Ã¥¿¡ ¼Ò°³µÇ¾î ÀÖ´Â °´Ã¼ »ý¼º°ú °ü·ÃµÈ ÆÐÅϵé°ú´Â Á» ´õ ´Ù¸¥ ½Ã°¢¿¡¼­ °´Ã¼¸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÆÐÅÏÀ» ¾Ë¾Æº¸°íÀÚ ÇÑ´Ù. ¾Æ¸¶ Èï¹Ì·Î¿ï °ÍÀÌ´Ù.

 

1.  ÀϹÝÀûÀÎ °´Ã¼ »ý¼º °úÁ¤ »ìÆ캸±â

°´Ã¼ÁöÇâ Æз¯´ÙÀÓÀÇ Æ¯Â¡À» Áö¿øÇÏ´Â ´ëÁßÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ °¡Áö°í °´Ã¼¸¦ »ý¼ºÇÏ´Â °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ. ÀÌ µé ¾ð¾î´Â Ŭ·¡½º ±â¹ÝÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îµé·Î¼­ ÀϹÝÀûÀ¸·Î µÎ °úÁ¤À» °ÅÃļ­ °´Ã¼°¡ »ý¼ºµÇ°Ô µÈ´Ù. ¸ÕÀú, °´Ã¼ÀÇ Å¸ÀÔ(Type)ÀÌ µÇ´Â Ŭ·¡½º(class)¸¦ Á¤ÀÇÇÑ´Ù. ±×·± ÈÄ¿¡´Â ÀÌ Å¬·¡½º¸¦ °¡Áö°í ÇØ´ç ŸÀÔÀÇ ÀνºÅϽº(instance)ÀÎ °´Ã¼(object)¸¦ »ý¼ºÇÏ´Â °úÁ¤À» °ÅÄ£´Ù. ¼Ò½º Äڵ带 º¸¸é ´ÙÀ½°ú °°Àº ¸ð½ÀÀ» º¸ÀÏ °ÍÀÌ´Ù.

class Oonews { ¡¦ }
 

public class MainClass {
     ¡¦
     public static void main(String[] args) {
          ¡¦
          Oonews oonews_ = new Oonews();
          ¡¦
     }
     ¡¦
}

¼Ò½º 1. ÀϹÝÀûÀÎ °´Ã¼ »ý¼º °úÁ¤
 

À§ÀÇ ¼Ò½º¸¦ º¸¸é Oonews¶ó´Â Ŭ·¡½º¸¦ Á¤ÀÇÇÏ°í, ÀÌ·¸°Ô Á¤ÀÇµÈ Å¬·¡½ºÀÇ Å¸ÀÔÀ» °¡Áö´Â °´Ã¼¸¦ new¶ó´Â ¿¹¾à¾î(keyword)¸¦ ÀÌ¿ëÇÏ¿© ¸í½ÃµÈ ŸÀÔÀÇ °´Ã¼¸¦ »ý¼ºÇÏ°Ô µÈ´Ù.

À§ÀÇ °úÁ¤À» Á» ´õ ±¸Ã¼ÀûÀ¸·Î »ìÆ캸ÀÚ. ÇÁ·Î±×·¡¸Ó´Â ¼Ò½º 1°ú °°ÀÌ ÇÁ·Î±×·¥À» ¸¸µç ÈÄ¿¡ ÄÄÆÄÀÏ(compile) °úÁ¤À» °ÅÄ£´Ù. ÄÄÆÄÀÏ °úÁ¤À» °ÅÄ£ ÄÚµå´Â ÀϹÝÀûÀ¸·Î ½ÇÇà ÄÚµåÀ̸ç ÀÌ Äڵ带 ½ÇÇà½ÃÅ°¸é ½ÇÇà Áß¿¡ ÇÁ·Î±×·¡¸Ó°¡ ¿øÇÏ´Â °´Ã¼°¡ »ý¼ºÀÌ µÈ´Ù. Áï, ÀϹÝÀûÀ¸·Î Ŭ·¡½º ±â¹ÝÀÇ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­´Â °´Ã¼ÀÇ Å¸ÀÔÀÌ µÇ´Â Ŭ·¡½º¸¦ ·±Å¸ÀÓ(runtime)ÀÌ ¾Æ´Ï¶ó ÄÄÆÄÀÏŸÀÓ(compile time)¿¡ °áÁ¤ÀÌ µÈ´Ù. µû¶ó¼­, ÇØ´ç °´Ã¼ÀÇ Å¸ÀÔÀ» ¹Ù²Ù¾î¾ß ÇÒ Çʿ伺ÀÌ ÀÖÀ» °æ¿ì¿¡´Â ÇØ´ç Ŭ·¡½ºÀÇ ¼Ò½º¸¦ °íÄ¡°í ÄÄÆÄÀÏ °úÁ¤À» ´Ù½Ã °ÅÄ¡°Ô µÈ´Ù. 

Ŭ·¡½º ±â¹ÝÀÇ  ÀϹÝÀûÀÎ °´Ã¼ÁöÇâ ¾ð¾î¿¡¼­´Â ŸÀÔÀ» °íÄ¡±â À§Çؼ­ ÄÄÆÄÀÏ °úÁ¤À» ´Ù½Ã °ÅÄ¡´Â °ÍÀÌ ÀϹÝÀûÀ¦ ½ÇÇà Áß¿¡ »õ·Î¿î ŸÀÔÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù¸é ¾î¶³±î? TypeObject ÆÐÅÏÀº ¹Ù·Î ±×·± Àǹ®À» Ç®¾îÁÙ ¼ö ÀÖ´Â ÆÐÅÏÀÌ´Ù[2]. ÀÌ ÆÐÅÏÀº PLoP¡¯96ÄÁÆÛ·±½º(conference)¿¡ ¹ßÇ¥µÈ °ÍÀ¸·Î GoF Ã¥ÀÇ ÀúÀÚ Áß¿¡ ÇÑ »ç¶÷ÀÎ Ralph Johnson°ú Bobby Woolf¿¡ ÀÇÇؼ­ ¾²¿©Á³´Ù(PLoP'96ÀÇ °æ¿ì¿¡´Â ÀÎÅÍ³Ý »óÀ¸·Î ProceedingÀ» °ø°³ÇÏ°í ÀÖÁö ¾Ê´Ù. TypeObject ÆÐÅÏ¿¡ ´ëÇÑ ³í¹® ¿øº»Àº Âü°í¹®Çå 2¹ø¿¡ ³ª¿Í ÀÖ´Ù). ÀÌ·± ¹æ¹ýÀº ÄÄÆÄÀÏ °úÁ¤À» °ÅÄ¡¾ß ÇÏ´Â ¹æ¹ý°ú ºñ±³Çؼ­ Àå´ÜÁ¡ÀÌ ºÐ¸íÀÌ ÀÖ´Ù. ¿ì¼± ±×·± Á¡À» ³íÇϱâ Àü¿¡ ¾î¶»°Ô ÇÏ¸é ±×·¸°Ô ÇÒ ¼ö ÀÖ´ÂÁö TypeObject ÆÐÅÏÀ» ÅëÇؼ­ ¾Ë¾Æº¸ÀÚ. Èï¹Ì·ÓÁö ¾ÊÀº°¡?
 
 

2.  ½ÇÇà Áß¿¡ ŸÀÔÀ» »ý¼ºÇÏÀÚ - TypeObject ÆÐÅÏ

ÀÏ´Ü ±Ã±ÝÇÏ´Ï±î ¿ì¼± ±× ±¸Á¶ºÎÅÍ º¸ÀÚ. TypeObject ÆÐÅÏÀº ±×¸² 1°ú °°´Ù.

±×¸² 1.  TypeObject ÆÐÅÏ

ÀÌ ÆÐÅÏ ±¸Á¶¸¦ º¸°í´Â ¿¡°Ô~~  ÇÏ´Â µ¶ÀÚµµ ÀÖÀ» °ÍÀÌ´Ù. ±¸Á¶´Â °£´ÜÇÏÁö¸¸ ÀÌ ÆÐÅÏÀº ½ÇÇà Áß¿¡ ŸÀÔÀ» »ý¼ºÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. ÀÌÁ¦ ÀÌ ¹øÈ£ÀÇ º»°ÝÀûÀÎ À̾߱⸦ ½ÃÀÛÇØ º¸°Ú´Ù. 
 

2.1 ½Ã³ª¸®¿À

TypeObject ÆÐÅÏÀÌ À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Â »óȲ¿¡´Â ¾î¶² °æ¿ì°¡ ÀÖÀ»±î? ¿©±â¼­´Â ÀÌ ÆÐÅÏÀÇ ÀúÀÚµéÀÌ ¼³¸íÇϴµ¥ ÀÌ¿ëÇß´ø ºñµð¿À °¡°ÔÀÇ °æ¿ì¸¦ ±×´ë·Î »ç¿ëÇϵµ·Ï ÇÏ°Ú´Ù.

ºñµð¿À °¡°Ô¿¡¼­ ºñµð¿À Å×ÀÌÇÁ °ü¸®¸¦ ½±°Ô °ü¸®ÇÒ ¼ö ÀÖ´Â ½Ã½ºÅÛÀ» ¸¸µé¾î ´Þ¶ó´Â ÀÇ·Ú¸¦ ¹Þ¾Ò´Ù°í °¡Á¤ÇØ º¸ÀÚ. ÀÚ.. ÀÌÁ¦ ¾î¶»°Ô ÇÏ¿©¾ß Çϴ°¡? 

ÀÌ ½Ã½ºÅÛÀ» µðÀÚÀÎ ÇÏ´Â µ¥´Â ºñµð¿À °¡°ÔÀÇ ¡®ºñµð¿À Å×ÀÌÇÁ¡¯¸¦ ³ªÅ¸³»±â À§ÇÏ¿© VideotapeÀ̶ó´Â Ŭ·¡½º¸¦ ÇÊ¿ä·Î ÇÒ °ÍÀÌ´Ù. ±×·¸´Ù¸é ºñµð¿À °¡°Ô¿¡¼­ Ãë±ÞÇÏ°í ÀÖ´Â ¸ðµç ºñµð¿À Å×ÀÌÇÁ¸¦ ³ªÅ¸³»´Â Ŭ·¡½º¸¦ ¸¸µé °ÍÀΰ¡? ÀÌ·± ½ÄÀ¸·Î´Â ¹®Á¦°¡ È¿À²ÀûÀ¸·Î ÇØ°áµÇÁö ¾Ê´Â ´Ù´Â °ÍÀ» °æÇè ÀÖ´Â µ¶ÀÚµéÀº ±Ý¹æ ¾Ë¾ÆÂ÷·ÈÀ» °ÍÀÌ´Ù. ±×·³ ÀÌ·¸°Ô ÇßÀ» °æ¿ìÀÇ ¹®Á¦Á¡ÀÌ ¹«¾úÀΰ¡? »ý°¢Çغ¸¸é ´ÙÀ½°ú °°ÀÌ µÎ °¡ÁöÀÇ Ä¿´Ù¶õ ´ÜÁ¡ÀÌ ÀÖÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ù ¹ø°·Î´Â ÇÑ ºñµð¿À °¡°Ô¿¡¼­ Ãë±ÞÇÏ´Â ºñµð¿Àµé »çÀÌ¿¡´Â °øÅëÁ¡ÀÌ ¸¹ÀÌ À־, ÄÄÇ»ÅÍ ÀÚ¿ø ³¶ºñ¸¦ ÃÊ·¡ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î °°Àº À̸§ÀÇ ¿µÈ­¸¦ ´ã°í ÀÖ´Â ºñµð¿À Å×ÀÌÇÁµéÀº ¡®¿µÈ­À̸§¡¯, ¡®¿µÈ­µî±Þ¡¯, ¡®´ë¿©·á¡¯ µî¿¡ °üÇÑ µ¥ÀÌÅÍ´Â ¶È°°°í, ÇØ´ç ºñµð¿À Å×ÀÌÇÁÀÇ ¡®´ë¿©ÀÚ¡¯, ¡®´ë¿©ÀÏÀÚ¡¯ µî¿¡¸¸ Â÷À̸¦ º¸ÀδÙ. ¶Ç ´Ù¸¥ ¹®Á¦Á¡À¸·Î´Â »õ·Î¿î ºñµð¿À Å×ÀÌÇÁ°¡ µé¾î¿ÔÀ» °æ¿ì¿¡´Â ÇØ´ç ºñµð¿À Å×ÀÌÇÁ¿¡ ´ëÇÑ Å¬·¡½º¸¦ ¸¸µé¾î¼­ ´Ù½Ã ÄÄÆÄÀÏÀ» ÇØ ÁÖ¾î¾ß ÇÏ´Â ¹®Á¦°¡ ÀÖ´Ù. 

±×·³ À§¿Í °°Àº ¹®Á¦Á¡À» ÇØ°áÇϱâ À§Çؼ­´Â ¾î¶»°Ô ÇØ¾ß ÇÒ±î? À§¿¡¼­ ¹®Á¦°¡ µÇ¾ú´ø °°Àº ¿µÈ­¸¦ ´ã°í ÀÖ´Â ºñµð¿À Å×ÀÌÇÁ »çÀÌÀÇ °øÅëÁ¡À» ÇØ°áÇϱâ À§ÇÑ ¹æ¾ÈÀ¸·Î ¡®»ó¼Ó(inheritance)¡¯À» ½±°Ô »ý°¢ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·³ °´Ã¼ÁöÇâ Æз¯´ÙÀÓÀÇ ÇÑ °¡Áö Ä¿´Ù¶õ Ư¡ÀÎ ¡®»ó¼Ó¡¯À» ÀÌ¿ëÇϱâ À§Çؼ­, ¿ì¼± ¸ðµç ºñµð¿À Å×ÀÌÇÁ°¡ °¡Áö°í ÀÖ´Â ¼Ó¼ºÀ» °¡Áö´Â VideotapeÀ̶ó´Â Ŭ·¡½º¸¦ ¸¸µé°í ÀÌ Å¬·¡½º¸¦ »ó¼ÓÇÏ´Â °¢ ¿µÈ­¿¡ ÇØ´çÇϴ Ŭ·¡½º¸¦ ¸¸µç´Ù. ¿¹¸¦ µé¾î, ¡®½¬¸®¡¯¿Í ¡®¹ÝÄ¢¿Õ¡¯¿¡ ´ëÇÑ ºñµð¿À Å×ÀÌÇÁÀÇ °æ¿ì, VideotapeÀ» »ó¼ÓÇϴ  SwiriVTape, FoulkingVTapeÀ̶ó´Â Ŭ·¡½º¸¦ ¸¸µé¾î¼­ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á óÀ½¿¡ ¹®Á¦°¡ µÇ¾ú´ø °°Àº µ¥ÀÌÅ͸¦ Áߺ¹ÇÏ¿© »ç¿ëÇÏ´Â ÄÄÇ»ÅÍ ÀÚ¿ø ³¶ºñ¸¦ ¾î´À Á¤µµ ÁÙÀÏ ¼ö ÀÖ´Ù. ±×·¯³ª, ¿©ÀüÈ÷ µÎ ¹ø° ¹®Á¦´Â ÇØ°áÇÒ ¼ö ¾ø´Â ¹æ¾ÈÀÌ´Ù. ±× ÀÌÀ¯´Â »õ·Î¿î ¿µÈ­ÀÇ ºñµð¿À Å×ÀÌÇÁ°¡ µé¾î¿À¸é ÇØ´ç ¿µÈ­¿¡ ´ëÇÑ ±âÁ¸¿¡ Ŭ·¡½º°¡ ¾ø±â ¶§¹®¿¡ »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µé¾î ÄÄÆÄÀÏÀ» ´Ù½Ã ÇØ ÁÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù.

¹®Á¦¸¦ ÇØ°áÇϱâÀ§ÇÑ ¹æ¾ÈÀ¸·Î »ý°¢Çغ» À§ÀÇ µÎ °¡Áö ¹æ¾ÈÀÌ ÀÌ °æ¿ì¿¡ È¿À²ÀûÀ¸·Î ¸ÔÇô µéÁö ¾Ê´Â ÀÌÀ¯´Â ¹«¾ùÀΰ¡? ±× °ÍÀº ÀÌ ¹®Á¦¿¡´Â ½ÇÇà Áß¿¡ µ¿ÀûÀ¸·Î º¯ÇÏ´Â ºÎºÐÀÌ Àִµ¥, À§¿¡¼­ »ý°¢ÇÑ µÎ °¡Áö ¹æ¾È¿¡´Â ÀÌ¿¡ ´ëÇÑ Ã³¸® ºÎºÐÀÌ ¾ø±â ¶§¹®ÀÌ´Ù. ´Ù½Ã ¸»Çؼ­, Çö½ÇÀûÀ¸·Î »õ·Î¿î ¿µÈ­°¡ Áö¼ÓÀûÀ¸·Î ³ª¿À°í Àִµ¥, ÄÚµå´Â ÀÌ ¹®Á¦¸¦ ÄÄÆÄÀÏ ½Ã°£¿¡ ¸ðµÎ ÇØ°áÇÏ·Á´Â ½Ã°¢À¸·Î Á¢±ÙÇÏ°í Àֱ⠶§¹®ÀÌ´Ù. (ÀÌ °ÍÀ» ¿µ¾î½Ä Ç¥ÇöÀ¸·Î´Â hardcode ÇÑ´Ù°í ±×·¯´øµ¥..) ±×·³ µ¿ÀûÀ¸·Î ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­´Â ¾î¶² ½ÄÀ¸·Î ½Ã½ºÅÒÀ» µðÀÚÀÎ ÇØ¾ß ÇÒ±î?  TypeObject ÆÐÅÏÀÌ ¹Ù·Î ÀÌ·± ¹®Á¦¿¡ ÇØ°áÃ¥À» Á¦½ÃÇÏ°í ÀÖ´Ù.
 

2.2 ÀνºÅϽº¸¦ ±×µéÀÇ Å¬·¡½º·ÎºÎÅÍ Çعæ½ÃÅ°ÀÚ !!

À§¿¡¼­ Á¦½ÃµÈ µÎ °¡Áö µðÀÚÀÎÀÇ ¹®Á¦Á¡Àº µ¿ÀûÀ¸·Î º¯Çϴ ŸÀÔ¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÒ ¼ö ¾ø´Ù´Â °ÍÀ̾ú´Ù. ÀÌ ¹®Á¦´Â ±×¸² 1ÀÇ TypeObject±¸Á¶¸¦ ÃëÇÏ¸é ½±°Ô ÇØ°áµÈ´Ù. ±×·³ ŸÀÔÀÌ ·±Å¸ÀÓ ½Ã¿¡ ¾î¶»°Ô ¹Ù²ð ¼ö ÀÖ´ÂÁö ºñµð¿À Å×ÀÌÇÁ ¹®Á¦·Î ´Ù½Ã µ¹¾Æ°¡¼­ »ý°¢ÇØ º¸ÀÚ.

À§ÀÇ ºñµð¿À Å×ÀÌÇÁ¿¡ ´ëÇÑ À̾߱⿡¼­ ¾Ë ¼ö ÀÖ¾ú°ÚÁö¸¸, °á±¹ ºñµð¿À Å×ÀÌÇÁÀÇ Å¸ÀÔ ¼Ó¼ºÀ¸·Î º¼ ¼ö ÀÖ´Â °ÍÀº ±× ºñµð¿À Å×ÀÌÇÁ°¡ ´ã°í ÀÖ´Â ¿µÈ­ÀÇ Á¦¸ñ°ú ±× ºñµð¿À Å×ÀÌÇÁÀÇ ´ë¿©·á Á¤µµ·Î º¼ ¼ö ÀÖ°í, ³ª¸ÓÁö ¼Ó¼º, Áï, ´ë¿©ÀÚ, ´ë¿© ¿©ºÎ, ´ë¿©ÀÏ µîÀº ƯÁ¤ ŸÀÔÀÇ ÀνºÅϽº·Î º¼ ¼ö ÀÖ´Ù. µû¶ó¼­, ±×¸² 2¿Í °°ÀÌ ÀÌ ½Ã½ºÅÛÀ» µðÀÚÀÎ ÇÏ¸é µ¿ÀûÀ¸·Î º¯Çϴ ŸÀÔÀÇ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. ±×¸² 2ÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥À» º¸¸é,  Movie¶ó´Â Ŭ·¡½º¿Í VideotapeÀ̶ó´Â µÎ °³ÀÇ Å¬·¡½º·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. Movie Ŭ·¡½º´Â ¿øÇÏ´Â ºñµð¿À Å×ÀÌÇÁÀÇ Å¸ÀÔÀ» ³ªÅ¸³» Ŭ·¡½º°í, VideotapeÀº Movie Ŭ·¡½º¿¡ ÀÇÇÑ Å¸ÀÔ¿¡ ´ëÇÑ ÀνºÅϽº¸¦ »ý¼ºÇϴ Ŭ·¡½º´Ù.

±×¸² 2. TypeObject ÆÐÅÏÀ» ÀÌ¿ëÇÑ ºñµð¿À Å×ÀÌÇÁ 󸮸¦ À§ÇÑ µðÀÚÀÎ

À̸¦ Á»´õ ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇÏ¿© º¸°Ú´Ù. À§¿Í °°Àº µðÀÚÀÎÀ¸·Î °´Ã¼¸¦ »ý¼ºÇÏ¸é ±×¸² 3°ú °°ÀÌ µÈ´Ù. ¸ÕÀú ¡®½¬¸®¡¯¶ó´Â »õ·Î¿î ¿µÈ­ÀÇ ºñµð¿À Å×ÀÌÇÁ°¡ °¡°Ô¿¡ µµÂøÇß´Ù°í Çϸé, ÀÌ¿¡ ´ëÇÑ Å¸ÀÔÀ» ¸¸µç´Ù. ÀÌÁ¦´Â »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µé¾î ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ±×¸² 2ÀÇ Movie Ŭ·¡½º·ÎºÎÅÍ titleÀº swiri·Î ´ë¿©·á´Â 1500¿øÀÎ ¼Ó¼ºÀ» °¡Áö´Â aMovie0001À̶ó´Â °´Ã¼¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇÑ´Ù. ±×·± ´ÙÀ½¿¡´Â °¡°Ô¿¡ µé¾î¿Â ½¬¸® ºñµð¿À Å×ÀÌÇÁÀÇ °³¼ö ¸¸Å­ÀÇ Videotape °´Ã¼¸¦ »ý¼ºÇϴµ¥, ÀÌ µé °´Ã¼´Â ¸ðµÎ ½¬¸® ŸÀÔÀÇ °´Ã¼¸¦ °¡¸®Å°´Â aMovie0001¶ó´Â type ¼Ó¼ºÀ» °¡Áø´Ù. ±×¸² 3Àº ÀÌ·¸°Ô »ý¼ºµÈ ºñµð¿À Å×ÀÌÇÁ °´Ã¼°¡ µÎ °³ ÀÖ°í, °¢°¢ ¡®À̽ÂÀÏ¡¯°ú ¡®À̹αԡ¯¿¡°Ô ´ëÃâµÇ¾î ÀÖ´Â »óŸ¦ ³ªÅ¸³»°í ÀÖ´Ù.


 
 

±×¸² 3. ±×¸² 2ÀÇ µðÀÚÀÎÀ» ÀÌ¿ëÇÑ °´Ã¼ »ý¼ºÀÇ ¿¹

Àß ÀÌÇØ°¡ µÇ¾ú´ÂÁö ¸ð¸£°ÚÁö¸¸, TypeObject ÆÐÅÏÀº ŸÀÔÀ» »ý¼ºÇϴ Ŭ·¡½º¿Í ÀνºÅϽº¸¦ »ý¼ºÇϴ Ŭ·¡½º°¡ µû·Îµû·Î ÀÖµµ·Ï µÇ¾î ÀÖ´Ù. µû¶ó¼­, ·±Å¸ÀÓ Áß¿¡ ÇÊ¿äÇÑ Å¸ÀÔÀ» »ý¼ºÇÒ ¼ö ÀÖÀ¸¸ç, »ý¼ºµÈ ŸÀÔÀÇ ÀνºÅϽº´Â ÀνºÅϽº¸¦ »ý¼ºÇϴ Ŭ·¡½º¿¡ ÀÇÇØ »ý¼ºµÇ¾î Àڽſ¡°Ô ÀûÀýÇÑ Å¸ÀÔ °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ °¡ÁüÀ¸·Î½á ÀÚ½ÅÀÇ Å¸ÀÔÀ» µ¿ÀûÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ°Ô µÈ´Ù. À§¿¡¼­ ¿¹·Î µç ºñµð¿À Å×ÀÌÇÁÀÇ °æ¿ì¿¡ »õ·Î¿î ¿µÈ­ÀÇ ºñµð¿À°¡ µé¾î¿À¸é ŸÀÔ Å¬·¡½ºÀÎ Movie Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î ŸÀÔÀÇ ¿µÈ­¸¦ »ý¼ºÇÏ°í, ÀÌ¿¡ ´ëÇÑ ºñµð¿À Å×ÀÌÇÁÀÇ °³¼ö¸¸Å­ÀÇ ÀνºÅϽº´Â ÀνºÅϽº¸¦ »ý¼ºÇϴ Ŭ·¡½ºÀÎ Videotape Ŭ·¡½º¸¦ ÅëÇÏ¿© »ý¼ºµÈ ÈÄ¿¡ ÀÚ½ÅÀÇ Å¸ÀÔ ÀνºÅϽº¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ¼Ó¼ºÀ¸·Î °®´Â´Ù. °á°úÀûÀ¸·Î TypeObject ÆÐÅÏÀ» ÀÌ¿ëÇϸé À§¿¡¼­ ¹®Á¦°¡ µÇ¾ú´ø ÄÄÇ»ÅÍ ÀÚ¿øÀÇ ³¶ºñ ¹®Á¦,  µ¿ÀûÀ¸·Î ŸÀÔÀ» »ý¼ºÇÏÁö ¸øÇß´ø ¹®Á¦¸¦ ¸ðµÎ ÇØ°áÇÒ ¼ö ÀÖ´Â µðÀÚÀÎ ÇعýÀ¸·Î º¼ ¼ö ÀÖ´Ù.

ÀÌ ±ÛÀÇ Ã³À½¿¡ Èï¹Ì·Î¿ï °ÍÀ̶ó°í ±×·¨´Âµ¥, ÀÌ ±ÛÀ» ÀÐÀº µ¶ÀÚ°¡ ¾î¶»°Ô ´À²¼´ÂÁö ±Ã±ÝÇÏ´Ù. »ç½Ç TypeObject ÆÐÅÏÀº µ¿ÀûÀ¸·Î °´Ã¼ÀÇ Å¸ÀÔÀ» °áÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÈûÀ» °¡Áö°í ÀÖÁö¸¸, ±×¸¸Å­ ±¸ÇöÇÒ °æ¿ì¿¡ ½Å°æ ½á¾ß ÇÒ °ÍÀÌ ¸¹´Ù. ¿Ö³ÄÇϸé, ÀϹÝÀûÀ¸·Î ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ ÇØ ÁÖ¾î¾ß ÇÒ Å¸ÀÔ¿¡ ´ëÇÑ °áÁ¤À» ÇÁ·Î±×·¡¸Ó°¡ Á÷Á¢ ÇØ ÁÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ÇÏÁö¸¸, ÀÌ ÆÐÅÏÀ» ÀûÀýÇÑ °÷¿¡ Àß È°¿ëÇÏ¸é ±â´ë ÀÌ»óÀÇ ÁÁÀº ½Ã½ºÅÛÀ» ¸¸µé ¼öµµ ÀÖ´Ù´Â »ý°¢À» ÇÑ´Ù.

 

2.3  µ¿Àû ŸÀÔ º¯°æ - ±× ÀÌ»ó...

»ç½Ç ÀÌ ÆÐÅÏÀº ¿ì¸®¿¡°Ô ¸¹Àº °ÍÀ» À̾߱âÇØ ÁÖ°í ÀÖ´Ù. ±×¸² 1¿¡ ³ªÅ¸³ª ÀÖ´Â °ÍÀº ±×³É µÎ °³ÀÇ Å¬·¡½º·Î º¸ÀÏ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ Áö±Ý±îÁö º¸¾ÒµíÀÌ ÀÌ ´Ü¼øÇÑ Å¬·¡½º µÎ °³¸¦ °¡Áö°í µ¿ÀûÀ¸·Î ŸÀÔÀ» º¯°æÇÒ ¼ö ÀÖ´Â ÀÏÀ» ÇØ ³½ °ÍÀÌ´Ù. Âü ³î¶øÁö ¾ÊÀº°¡? »ç½Ç ÀÌ ÆÐÅÏ¿¡ ´ëÇؼ­  ÇÒ  À̾߱Ⱑ ¸¹ÀÌ ³²¾ÒÁö¸¸, ¿©±â¼­ ÁÙÀ̱â·Î ÇÏ°í ÀÌ ÆÐÅÏÀÇ ÀúÀÚµéÀÌ ¹àÈ÷°í ÀÖ´Â ÀÌ ÆÐÅÏÀÇ Àǵµ(intent), ÇÙ½É(keys)¸¦ Á¤¸®ÇÏ´Â °ÍÀ¸·Î ¸¶¹«¸®¸¦ ÁöÀ»·Á°í ÇÑ´Ù.  °ü½ÉÀÌ ÀÖ´Â µ¶ÀÚµéÀº Âü°í¹®Çå[2]ÀÇ Ã¥À» »ç¼­ ÀÚ¼¼È÷ ÀÐ¾î º¸±â ¹Ù¶õ´Ù. ÇÊÀÚ°¡ °ÅÁþ¸»À» ÇÏ°í ÀÖÀ»Áöµµ ¸ð¸£´Ï±î.  ^(^
 

Àǵµ(intent)

A Type Object decouples instances from thier classes so that those classes can be implemented as instances of a class. Type Object allows new classes to be created dynamically at runtime, lets a system provide its own type-checking rules, and can lead to simpler and smaller systems.

TypeObject ÆÐÅÏÀº ÀνºÅϽºµé¸¦ ÇØ´ç ÀνºÅϽºµéÀÇ Å¬·¡½º·ÎºÎÅÍ ºÐ¸®½ÃÅ´À¸·Î½á ±× Ŭ·¡½ºµéÀÌ ÇϳªÀÇ ´Ù¸¥ Ŭ·¡½ºÀÇ ÀνºÅϽºµé·Î ±¸ÇöµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. TypeObject ÆÐÅÏÀº »õ·Î¿î Ŭ·¡½ºµéÀ» ·±Å¸Àӽÿ¡ »ý¼ºµÉ ¼ö ÀÖµµ·Ï ÇØ ÁÜÀ¸·Î½á ÇϳªÀÇ ½Ã½ºÅÛÀÌ ÀÚ½ÅÀÇ Å¸ÀÔ °áÁ¤ ±ÔÄ¢À» Á¦°øÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. µû¶ó¼­, ÀÌ ÆÐÅÏÀ» ÀÌ¿ëÇÏ¸é ´Ü¼øÇÏ°í ÀÛÀº ½Ã½ºÅÛÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Ù.

ÇÙ½É(Keys)

  • Two classes, a type class and an instance class.
  • The instance class has an instance variable whose type is the type class
  • The instance class delegates its type behavior to the type class via the instance variable.
  • ŸÀÔ Å¬·¡½º¿Í ÀνºÅϽº Ŭ·¡½ºÀÇ µÎ °³ÀÇ Å¬·¡½º·Î ÀÌ·ç¾îÁ® ÀÖ´Ù.
  • ÀνºÅϽº Ŭ·¡½º´Â ÀÚ½ÅÀÇ Å¸ÀÔÀ» °¡¸®Å°´Â º¯¼ö¸¦ °¡Áø´Ù.
  • ÀνºÅϽº Ŭ·¡½º´Â ÀÚ½ÅÀÇ Å¸ÀÔ¿¡ ¼ÓÇÑ ÇàÀ§¿¡ ´ëÇÑ ¸Þ¼Òµå(method)´Â ŸÀÔÀ» ³ªÅ¸³»´Â º¯¼ö¸¦ ÅëÇÏ¿© À§ÀÓ½ÃŲ´Ù.
     

2.4 °ü·Ã ÆÐÅÏ

ÀÌ ÆÐÅÏÀÇ ÀúÀÚµéÀº °ü·Ã ÆÐÅÏÀ¸·Î Strategy[1], State[1], Reflective Architecture[3], Bridge[1], Decorator[1], Flyweight[1], Prototype[1] À» ¿­°ÅÇߴµ¥,  ¿©±â¼­ °¢ ÆÐÅϵé°ú ÀÌ ¹øÈ£¿¡¼­ ¼Ò°³ÇÑ TypeObject ÆÐÅÏ°ú ¾î¶² ¸é¿¡¼­ °ü·ÃÀÌ ÀÖ´ÂÁö¸¦ À̾߱âÇÏ´Â °Í¸¸À¸·Îµµ ¿©·¯ È£¿¡ °ÉÃļ­ À̾߱⠰Ÿ®°¡ µÉ °Í °°´Ù. ±×·¡¼­, Áö±Ý »ý°¢Àº ÀÌ Áß¿¡ Àç¹ÌÀÖ´Â °ÍÀ» Çϳª °ñ¶ó¼­ ´ÙÀ½ È£¿¡ ¾ÈÁְŸ®·Î »ïÀ¸¸é ¾î¶³±î »ý°¢ÇØ º»´Ù. ÀÌ ¹øÈ£¿¡ º» TypeObject ÆÐÅÏÀÇ ´Ù¸¥ ¸éµµ º¼°âÇؼ­....

 

3. ¸ÎÀ½¸»

¿ì¸®°¡ ÁÁÀº ½Ã½ºÅÛÀ» µðÀÚÀÎ Çϱâ À§Çؼ­´Â ¾î¶»°Ô ÇØ¾ß ÇÒ±î? ±×³É À¯¸íÇÑ ÀÛ°¡°¡ ¾´ C++³ª Java ÇÁ·Î±×·¡¹Ö¾ð¾î Ã¥¸¸À» ¹«½ÄÇÏ°Ô 100µ¶ÇÏ¸é ±× ¹«¾ð°¡°¡ ±úÃÄÁú±î? ¾Æ´Ï¸é ±×³É ¾Æ¹« ÇÁ·Î±×·¥À̳ª ¸· ¸¸µé¾î º¸´Â °ÍÀϱî? ±×·¯´Ù º¸¸é ²Ç¼ö°¡ ´Ã¾î¼­ ÈḢÇÑ ½Ã½ºÅÛÀ» µðÀÚÀÎÇÏ°í ±¸ÇöÇÒ ¼ö ÀÖÀ»±î?  ¾Æ´Ï¸é ÈǸ¢ÇÑ °³¹ßµµ±¸¸¦ ¸¶·ÃÇؼ­ »ç¿ë¹ý¿¡ ¾ÆÁÖ Àͼ÷ÇØÁ® ¹ö¸®´Â °ÍÀϱî?  ¹°·Ð ¾î´À Á¤µµ´Â °¡´ÉÇÒ °ÍÀÌ´Ù. ±×·¯³ª, ÀÌ·± ¹æ¹ýÀ¸·Î´Â ÇÁ·Î±×·¡¹ÖÀûÀÎ ´É·ÂÀº Çâ»ó½Ãų ¼ö ÀÖÀ»Áö ¸ô¶óµµ ½Ã½ºÅÛ µðÀÚÀÎ ´É·Â¿¡´Â ¸¹Àº ÇÑ°è°¡ ÀÖÀ» °ÍÀÌ´Ù. 

°³ÀÎÀûÀ¸·Î´Â ½Ã½ºÅÛ µðÀÚÀο¡´Â ÇÁ·Î±×·¡¹Ö ´É·Â ±× ÀÌ»óÀÌ ÇÊ¿äÇÏ´Ù°í »ý°¢ÇÏ°í ÀÖ´Ù. ÇÊÀÚ°¡ °³ÀÎÀûÀ¸·Î ÆÐÅÏÀ» º¸°í ³î¶ú´ø °ÍÀº ¿©±â¼­ ¼³¸íµÈ ÀÌ·± Á¾·ùÀÇ °£´ÜÇÑ Å¬·¡½º µÎ °³°¡ ¼ÒÇÁÆ®¿þ¾îÀûÀÎ ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ ¼º´É¿¡ Ä¿´Ù¶õ ¿µÇ×À» Å°Ä¥ ¼ö ÀÖ´Ù´Â °ÍÀ» ´À²¼±â ¶§¹®À̾ú´Ù. ÀÌ ±ÛÀ» Àд µ¶ÀÚ´Â ¾î¶»°Ô »ý°¢ Çϴ°¡? 

 

Âü°í ¹®Çå

[1] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 
      Design Patterns, Elements of Resuable Object-Oriented 
      Software,  Addison-Wesley, 1995 

[2] Pattern languages of Program Design 3, edited by Robert Martin, 
      Dirk Riehle, Frank Bschmann, Addison-Wesley, 1998 

[3] F.Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, 
      Pattern-Oriented Software Architecture - A Study of Patterns
      New York, Wiley and Sons Ltd., 1996
 
 

(±Û Èıâ )

ÇÊÀÚÀÇ ½Ç¼ö 

»ç½Ç ÀÌ ±ÛÀ» ¾²°í ÀÖ´Â ÀÌÀ¯´Â ÇÊÀÚ°¡ ÀϹæÀûÀ¸·Î ¸¹Àº »ç¶÷À» ´ë»óÀ¸·Î ÆÐÅÏ¿¡ ´ëÇÑ ±³¸®(?)¸¦ ÀüÆÄÇÏ¿© ¾î¶² ¹«¾ùÀ» ¾òÀ¸·Á´Â °ÍÀÌ ¾Æ´Ï¶ó, °°Àº °ü½É»ç¸¦ °¡Áö´Â »ç¶÷µé »çÀÌ¿¡¼­ ¼­·ÎÀÇ »ý°¢À» ³ª´©°í ÀÚ½ÅÀÇ »ý°¢À» ´ÙµëÀ¸·Á´Â Àǵµ°¡ Å®´Ï´Ù. ÀÌ·± °üÁ¡¿¡¼­ ÇÊÀÚ°¡ Áö³­ ´Þ¿¡´Â Ä¿´Ù¶õ ½Ç¼ö Çϳª¸¦ Çß½À´Ï´Ù. Áö³­ È£ÀÇ ÇÊÀÚÀÇ ±ÛÀ» Àаí ÀÌ¿¡ ´ëÇÑ Åä·ÐÀ» À¯¹ßÇÏ´Â ±ÛÀ» ¹é¿µ¿ì¾¾°¡ ¡®¹¯°í ´äÇϱ⡯¶õ¿¡ ¿Ã·Á Á̴ּµ¥ ÇÊÀÚ´Â ÀÌ¿¡ ´ëÇØ ¹«½¼ ±³ÁÖÀξç ŵµ¸¦ º¸ÀÌ´Â ´äÀ» ¾²°í ¸»¾Ò´ø °ÍÀÔ´Ï´Ù. óÀ½¿¡´Â ¾Æ¹« »ý°¢ÀÌ ¾ø¾ú´Âµ¥ ½Ã°£ÀÌ Áö³­ Áö±Ý¿¡ ¿Í¼­¾ß Âü ¹Ùº¸ °°Àº ÁþÀ» Çß´Ù´Â °ÍÀ» ±ú´Þ¾ÒÁÒ. ¹é¿µ¿ì¾¾¸¦ Æ÷ÇÔÇؼ­ ÀÌ ±ÛÀ» ÀÐÀ¸½Ã´Â ºÐµé¿¡°Ô Âü Á˼۽º·´´Ù´Â ¸»À» µå¸³´Ï´Ù. ¾ÕÀ¸·Î´Â ÀÚÀ¯·Î¿î Åä·ÐÀÌ ÀÌ·ç¾îÁú ¼ö ÀÖµµ·Ï ÁÖÀǸ¦ ±â¿ïÀÌ°Ú½À´Ï´Ù. ±×¸®°í, ÇöÀç´Â Àú È¥ÀÚ¸¸ ÆÐÅÏ¿¡ ´ëÇÑ Åä·Ð ÁÖÁ¦(ÀúÀÇ ±Û)¸¦ ¸Å´Þ ¶ç¿ì°í Àִµ¥..  Ȥ½Ã ÆÐÅÏ¿¡ ´ëÇؼ­ ±ÛÀ» ½á ÁÖ½Ç ´Ù¸¥ ºÐ ¾È °è¼¼¿ä? ±×·³ ÆÐÅÏ¿¡ ´ëÇÑ ³»¿ëµµ ´õ dz¼ºÇØÁö°í, ÀÌ¿¡ µû¶ó¼­ ÆÐÅÏ¿¡ °ü½ÉÀ» °¡Áö°í ÀÖ´Â ¿ì¸®µéÀÇ »ý°¢µµ ´õ ´Ùµë¾îÁú ¼ö ÀÖÀ» °Å¶õ »ý°¢ÀÌ µå´Âµ¥..  ^(^
 

UML¿¡ ´ëÇÑ Á¤¸®¸¦ ÷ºÎÇÏÁö ¾ÊÀº ÀÌÀ¯..

ÇöÀç °´Ã¼ÁöÇâ ´º½º·¹ÅÍ¿¡´Â Çöó½ºÆ½ ¼ÒÇÁÆ®¿þ¾îÀÇ ½É¿øµµ¾¾°¡ UML¿¡ ´ëÇؼ­ ±ÛÀ» ½áÁÖ½Ã°í °è½Ê´Ï´Ù. °³ÀÎÀûÀ¸·Î ÆÐÅÏ¿¡ »ç¿ëµÇ´Â ¼öÁØÀÇ UMLÀ» Á¤¸®ÇÏ°í ÀÖ¾ú´Âµ¥, ½É¿øµµ¾¾ÀÇ ±Û°ú Áߺ¹µÈ´Ù´Â »ý°¢¿¡ Á¦°¡ Á¤¸®ÇÑ °ÍÀº ¿©±â¿¡ Æ÷ÇÔ½ÃÅ°Áö  ¾Ê±â·Î °áÁ¤À» ³»·È½À´Ï´Ù. UML¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ³»¿ëÀº ½É¿øµµ¾¾ÀÇ ±Û°ú http://www.uml.co.kr/ »çÀÌÆ®¸¦ Âü°íÇϽøé ÃæºÐÇϸ®¶ó »ý°¢ÇÏ°í ÀÖ½À´Ï´Ù.
 

¼Ò½º ÄÚµå »ç¿ë ±ÔÄ¢

Á¦°¡ ¾²°í ÀÖ´Â ±Û¿¡¼­ »ç¿ëÇÏ´Â Java ¾ð¾î¿¡ ´ëÇÑ ¼Ò½º ÄÚµå »ç¿ë ±ÔÄ¢¿¡ ´ëÇÑ ¹®¼­¸¦ °´Ã¼ÁöÇâ ´º½º·¹ÅÍÀÇ 1È£ ±Û ÈĹݺο¡ ÷°¡ ½ÃÄÑ ³õ¾Ò½À´Ï´Ù.


 oonewsletter - 2000/3/31