[Áöµð³ÝÄÚ¸®¾Æ]¿¡¸¯ ¿¡¹Ý½ºÀÇ DDD(Domain-Driven Design)¿¡¼ °¡Àå ±â¾ïÇÏ°í ½ÍÀº ³»¿ëÀº ¡®ÇϳªÀÇ ÆÀ¿¡¼ ÇϳªÀÇ ¾ð¾î·Î¡¯¶ó´Â ºÎºÐÀÌ´Ù. ÇÊÀÚ´Â °æÇèÀ» ÅëÇØ °³¹ß(Development)À» ²ø°í °¡´Â Á߽ɿ¡´Â ÇØ´ç ¾÷¹« Áï, µµ¸ÞÀÎ ÇÁ·Î±×·¥ °³¹ßÀÇ ´ë»óÀÌ µÇ´Â ¾÷¹« ¿µ¿ªÀÌ ÀÖ´Ù´Â °ÍÀ» ¾Ë°Ô µÇ¾ú´Ù. °á±¹, ÀÌ ¹¬Á÷ÇÏ°Ô ÀÚ¸®ÇÏ´Â °ÍÀÌ ½Ã½ºÅÛ °³¹ßÀÇ ¼ºÆÐ¸¦ Á¿ìÇÏ°Ô µÈ´Ù´Â Á¡ ¹è¿ì°Ô µÇ¾ú´Ù. ÀÌ ±Û¿¡¼´Â ÀÌ·± ¹®Á¦¿¡ ´ëÇÑ ¿Ïº®ÇÑ ÇØ´äÀ» Á¦½ÃÇϱ⠺¸´Ù´Â Çö½ÇÀûÀÎ ÇØ°áÃ¥¿¡ ´ëÇÏ¿© À̾߱âÇϰíÀÚ ÇÑ´Ù.
¡®È¼º¿¡¼ ¿Â ³²ÀÚ ±Ý¼º¿¡¼ ¿Â ¿©ÀÚ¡¯¶ó´Â À¯¸íÇÑ Ã¥ÀÌ ÀÖ´Ù. ÀÌ Ã¥¿¡¼´Â ³²ÀÚ¿Í ¿©ÀÚ°¡ º»·¡´Â ¼·Î ´Ù¸¥ º°ÀΠȼº°ú ±Ý¼º¿¡¼ »ì¾Ò±â ¶§¹®¿¡ ¾ÖÃÊ¿¡ ¼·Î ´Ù¸¥ Á¸ÀçÀ̸ç, ¼·Î ´Ù¸¥ °¡Ä¡°ü°ú »ý°¢À» °¡Áö°í ÀÖ¾ú´Ù°í À̾߱âÇÑ´Ù. ±×·±µ¥, À̵éÀÌ Áö±¸·Î ¿Å°Ü¿À¸é¼ ÀڽŵéÀÌ ¼·Î ´Ù¸¥ Á¸Àç¿´´Ù´Â »ç½ÇÀ» ÀØ°Ô µÇ¸é¼ °¥µîÀÌ »ý°Ü³ª±â ½ÃÀÛÇß´Ù´Â ³»¿ëÀ» ´ã°í ÀÖ´Ù.
±×·±µ¥ ÀÌ·± °¥µîÀº ºñ´Ü ³²³à »çÀÌ¿¡¸¸ Á¸ÀçÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. ÇÁ·ÎÁ§Æ®¿¡¼µµ ¸¶Ä¡ ¡®È¼º¿¡¼ ¿Â °³¹ßÀÚ ±Ý¼º¿¡¼ ¿Â °í°´¡¯À̶ó´Â ¸»·Î ºñÀ¯ÇÒ ¸¸ÇÑ »óȲÀÌ ¹ú¾îÁø´Ù. XP(Extreme Programming)¿¡¼ °í°´ÀÌ °³¹ßÆÀÀÇ ÀÏ¿øÀÌ µÇ¾î¾ß ÇÑ´Ù°í ÇÏ´Â ¸»Àº ¸Å¿ì °ø°¨ÇÒ¸¸ÇÑ À̾߱â´Ù. ¹äµµ °°ÀÌ ¸Ô°í Áö¼ÓÀûÀ¸·Î ÇÔ²² ÀÏÇÏ´Ù º¸¸é ȼºÀΰú ±Ý¼ºÀÎÀÇ °ÝÂ÷°¡ ÁÙ¾îµéÁöµµ ¸ð¸£´Â Å¿ÀÌ´Ù.
 | ȼº¿¡¼ ¿Â °³¹ßÀÚ ±Ý¼º¿¡¼ ¿Â °í°´ |  |
ÇÏÁö¸¸, °æÇè ¸¹Àº °³¹ßÀÚ(¾÷¹« ºÐ¼®°¡¸¦ Æ÷ÇÔÇÏ¿© ½Ã½ºÅÛ °³¹ß¿¡ Á¾»çÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸¦ ÅëĪÇÏ´Â ¸»)µéÀº ´Ü¹ø¿¡ ºñÇö½ÇÀûÀ̶ó°í ¸»ÇÒ °ÍÀÌ´Ù. ¾÷¹«ºÐ¼®°¡ ¿ªÇÒÀ» ÇØº» °³¹ßÀÚ¶ó¸é ÃÖÁ¾ »ç¿ëÀÚ°¡ µÉ Çù¾÷ ´ã´çÀÚ¿Í ¸¸³ª´Â ±âȸ°¡ ÃæºÐÇÏÁö ¾Ê´Ù´Â »ç½ÇÀ» Àß ¾Ë°í ÀÖ´Ù.
±×·¡¼ º¹ÀâÇÑ ¾÷¹«ÀÇ °æ¿ì¿¡´Â °í°´ÀÌ ¾Æ´Ñ ÇØ´ç ¾÷¹«ºÐ¾ßÀÇ Àü¹®°¡¸¦ Æ÷ÇÔ½ÃŰ´Â °æ¿ì°¡ ÀϹÝÀûÀÌ´Ù. ±º ÇÁ·ÎÁ§Æ®¿¡ °¡¸é Á¾Á¾ Àü¿ªÇÑ Àå±³µéÀ» º¼ ¼ö°¡ ÀÖ°í, ±ÝÀ¶ ÇÁ·ÎÁ§Æ®¿¡¼´Â ÇØ´ç ¾÷¹«¿¡ Á¤ÅëÇÑ »ç¶÷µéÀÌ ¾÷¹« ºÐ¼®°¡·Î Ȱµ¿ÇÑ´Ù.
¾î´À Á¤µµ °í°´À» ´ë½ÅÇÒ ¼ö ÀÖ´Â ¾÷¹« Àü¹®°¡°¡ ÀÖ´Ù°í ¹®Á¦°¡ ½Ã¿øÇÏ°Ô ÇØ°áµÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¿ÜÁÖ °³¹ßÀÌ º¸ÆíÈµÈ Çö½ÇÀ» °¨¾ÈÇϸé, ¼·Î ´Ù¸¥ Ç༺(µµ¸ÞÀÎ)¿¡ »ì´Ù°¡ ¸¸³ª°Ô µÇ´Â ȼºÀÎ(°³¹ßÀÚ)°ú ±Ý¼ºÀÎ(°í°´)Àº ±Ùº»ÀûÀ¸·Î Â÷À̰¡ ÀÖ´Ù.
¸ÅÀÏ ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» °í¹ÎÇϰí, »õ·Î¿î ±â¼ú ½ÀµæÀ¸·Î ÀÏ»óÀ» º¸³»´ø °³¹ßÀÚ°¡ ¼ö½Ê ³â°£ ¹ßÀüÇØ¿Â »ê¾÷À» ´Ü±â°£¿¡ ÀÌÇØÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù. ¹Ý´ë·Î °í°´ÀÇ °æ¿ì¿¡´Â ¸ðµç ÀÏÀ» ±â¼úÀûÀ¸·Î ÇØ¼®ÇÏ°í »ç°íÇÏ´Â °³¹ßÀÚ¸¦ ÀÌÇØÇϱ⠾î·Á¿ï °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ »óȲÀ» ´õ¿í ¾ÇȽÃŰ´Â °ÍÀº ¼·Î°¡ ´Ù¸¥ ¾ð¾î¸¦ ¾´´Ù´Â »ç½ÇÀÌ´Ù. ÀÇ»ç¼ÒÅëÀ» ÅëÇØ ¼·Î¸¦ ÀÌÇØÇϱâ À§Çؼ´Â µ¿ÀÏÇÑ ¾ð¾î¸¦ »ç¿ëÇÏ´Â °ÍÀº ÇʼöÀûÀÎ »çÇ×Àε¥ ¸»ÀÌ´Ù.
¼·Î ´Ù¸¥ ¸»À» »ç¿ëÇÏ´Â °í°´°ú °³¹ßÀÚ
°³¹ßÀÚ°¡ »õ·Î¿î ºÐ¾ßÀÇ ÇÁ·ÎÁ§Æ®¸¦ ¸¸³ª¸é µµ¹«Áö ¾Ë ¼ö ¾ø´Â ¿ë¾îµéÀ» Á¢ÇÏ°Ô µÈ´Ù. Ư¼ö¼ºÀÌ ½ÉÇÑ ¾÷¹«´Â °í°´ÀÇ ¾÷¹« ±ÔÁ¤À̳ª º¸°í¼¸¦ ¾Æ¹«¸® Àо ÇØµ¶ÀÌ ºÒ°¡´ÉÇÑ °æ¿ìµµ ÀÖ´Ù. ÇÑ ÆäÀÌÁöÀÇ Àý¹Ý°¡·®À» Â÷ÁöÇÏ´Â ´Ü¾î°¡ óÀ½ º¸´Â ¿µ¹® ¾à¾î·Î ±â¼úµÇ¾î ÀÖ´Â ¹®¼¸¦ »ó»óÇØº¸¶ó.
±×·³ °í°´ÀÇ ÀÔÀå¿¡¼ »ý°¢ÇØ º¸¸é ¾î¶³±î. ¹Ù»Û ½Ã°£¿¡ ºÒ·¯³»¼ Ãʺ¸ÀûÀÎ Áú¹®¿¡ ´äº¯À» ÇØÁÖ°í ÀÖ¾ú´Ù. ±×·¯´Ù°¡ ¾ÕÀ¸·Î ¸¸µé¾îÁú ÇÁ·Î±×·¥¿¡ ±Ã±ÝÇÑ ¸¶À½ÀÌ »ý°Ü, °³¹ßÀÚ¿¡°Ô ¹°¾îº¸¾Ò´õ´Ï µµ¹«Áö ¾Ë¾ÆµéÀ» ¼ö ¾ø´Â ¸»¸¸ ÇÑ´Ù.
ÀÌ·¯ÇÑ ¾î·Á¿ò¿¡µµ ºÒ±¸ÇÏ°í °í°´°ú °³¹ßÀÚ°¡ Àß ¼ÒÅëÇØ¾ß¸¸ ¿øÇÏ´Â °á°ú¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¹Ý´ë·Î À̵éÀÌ ¼·Î ¼ÒÅë¿¡ ½ÇÆÐÇÑ´Ù¸é, ¿øÇÏ´Â °á°ú´Â ³ª¿ÀÁö ¾Ê°í ¼·Î À߸øµÈ Àϸ¸ ¹Ý¸ñÇÏ°Ô µÉ °ÍÀÌ´Ù. °í°´°ú °³¹ßÀÚ°¡ ¼·Î¸¦ ¸Í·ÄÇÏ°Ô ºñ³ÇÏ´Â ÇöÀå¿¡ ÇÊÀÚ ½º½º·Îµµ Âü¿©Çß´ø ¾ÆÇ °æÇèÀÌ ÀÖ´Ù.
°³¹ßÀÚ »çÀÌ¿¡¼µµ °¢ÀÚÀÇ ¾ð¾î°¡ ÀÖ´Ù
°í°´°ú °³¹ßÀÚ »çÀÌ¿¡¼¸¸ ÀÇ»ç¼ÒÅëÀÇ ¹®Á¦°¡ ¹ß»ýÇÒ±î? <±×¸² 1>¿¡ Ç¥ÇöÇÑ °Íó·³ µµ¸ÞÀÎÀ» ±¸¼ºÇÏ´Â ÇϳªÀÇ ¾îÈÖ³ª °³³äÀÌ¶óµµ °³¹ßÀÚ À¯Çü¿¡ µû¶ó »óÀÌÇÏ°Ô ¹Þ¾Æµé¿©Áø´Ù.
ÀÌ·¯ÇÑ Çö»óÀº ¼·Î ´Ù¸¥ À¯ÇüÀÇ °³¹ßÀÚ¸¦ ÇÑ °÷¿¡ ¸ð¾Æ µ¿ÀÏÇÑ µµ¸ÞÀÎ ¿ë¾î¸¦ °¡Áö°í ³íÀǸ¦ ÇØº¸¸é ½±°Ô °üÂûÇÒ ¼ö ÀÖ´Ù. °í°´À» Ç¥ÇöÇÏ´Â µ¿ÀÏÇÑ ¼³°è ¸ðµ¨ÀÌ ¾ø´Ù¸é ÀÌµé »çÀÌÀÇ È¥¼±Àº ½±°Ô ¿¹»óÇÒ ¼ö ÀÖ´Ù.
 |
| <±×¸² 1> °³¹ßÀÚ À¯Çü¿¡ µû¶ó ´Þ¶óÁö´Â µµ¸ÞÀÎ °³³äÀÇ Ç¥Çö ¹æ¹ý |
UML ¸ðµ¨°ú ÇÁ·Î±×·¥ÀÇ Äڵ尡 ¿Ïº®ÇÏ°Ô ÀÏÄ¡ÇÏÁö´Â ¾Ê´Â´Ù. ¸¶Âù°¡Áö·Î DBÀÇ Å×À̺í À̸§À̳ª Ä®·³ À̸§ÀÌ Å¬·¡½º À̸§À̳ª ¼Ó¼º À̸§°ú ´ëÀÀµÈ´Ù ÇÏ´õ¶óµµ µ¿ÀÏÇÏÁö´Â ¾Ê´Ù. ÇÁ·Î±×·¡¸Ó¿Í DB °³¹ßÀÚ Ä¿¹Â´ÏƼ »çÀÌ¿¡¼´Â ¿À·£ µ¿¾È ¸Å¿ì ´Ù¸¥ ÀÛ¸í °üÇàÀ» À¯ÁöÇØ¿À°í Àֱ⵵ ÇÏ´Ù.
È¸é °³¹ßÀÚÀÇ °æ¿ìµµ Å©°Ô ´Ù¸£Áö ¾Ê´Ù. °á±¹Àº ÀÌµé »çÀÌÀÇ ±¸Ã¼ÀûÀÎ Â÷ÀÌÁ¡À» ¹èÁ¦ÇÑ Ãß»óÈµÈ Ç¥Çö¹ýÀ» °øÅëÀÇ ¾ð¾î·Î Ȱ¿ëÇÒ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ¼³°è ¸ðµ¨ÀÌ ±×·¯ÇÑ ¿ªÇÒÀ» ÇØ¾ß ÇÑ´Ù.
ÇϳªÀÇ ÆÀ, ÇϳªÀÇ ¾ð¾î
¿¡¸¯ ¿¡¹Ý½º´Â ÇÁ·ÎÁ§Æ® ÆÀÀÌ ÁöÇâÇÒ ¸ñÇ¥ÁöÁ¡À» ºÐ¸íÇÏ°Ô µµ½ÄÈÇß´Ù. <±×¸² 2>´Â DDD 34ÂÊÀÇ ±×¸²À» °£·«ÇÏ°Ô ¿ä¾àÇÑ °ÍÀÌ´Ù. Ubiquitous Language(ÀÌÇÏ UL)´Â °í°´°ú °³¹ßÀÚ ¾çÂÊ¿¡¼ Åë¿ëµÇ´Â ¾îÈÖ¸¦ ÀǹÌÇÑ´Ù. óÀ½¿¡´Â ±³ÁýÇÕÀÌ ¾øÀÌ ³ª´©¾îÁ® ÀÖ´Ù°í ÇÏ´õ¶óµµ, ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ¸é¼ ±³ÁýÇÕÀ» ÃæºÐÈ÷ ´Ã·Á°¡¾ß ÇÑ´Ù.
ÇÑÆí, ¾î¶² ¾îÈÖÀÇ °æ¿ì´Â °øÅëÀÇ ¾îÈÖ ±¸½ÇÀ» ÇÏÁö ¸øÇÒ ¼öµµ ÀÖ´Ù. ÇÁ·Î±×·¥¿¡ Æ÷ÇÔ½Ãų ¼ö ¾ø´Â ¾÷¹«ÀÇ ¾îÈÖ³ª ±â¼ú ÀÚü¿¡ ´ëÇÑ °áÁ¤»çÇ×Àº ±»ÀÌ ¼·Î ³íÀÇÇÏ¿© È¥¶õÀ» ¾ß±âÇÒ ÇÊ¿ä´Â ¾ø´Ù.
 |
| <±×¸² 2> Ubiquitous Language |
°³¹ßÀÚ »çÀÌ¿¡¼´Â ¹°·ÐÀ̰í, °í°´°ú °³¹ßÀÚ°¡ ¼·Î °°Àº ¾ð¾î¸¦ ¾²±â À§ÇÑ ¼ÒÇÁÆ®¿þ¾î Ä¿¹Â´ÏƼÀÇ ³ë·ÂÀÌ ¾ø¾ú´ø °ÍÀº ¾Æ´Ï´Ù. ´Ù¾çÇÑ Ç¥±â¹ýÀÇ ¸ðµ¨ÀÌ °ú°ÅºÎÅÍ Á¸ÀçÇØ¿Ô´Ù. ±×¸®°í À̸§¿¡¼µµ µå·¯³ªµíÀÌ UML(Unified Modeling Language)Àº ¸ðµ¨¸µ ¾ð¾î¸¦ Ç¥ÁØÈÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ³ªÅ¸³ °ÍÀÌ´Ù.
´Ù¸¸, UML·Î ÀÛ¼ºÇÑ ¸ðµ¨ÀÌ ¸ðµÎ¿¡°Ô Åë¿ëµÇ°í ÀÖÁö´Â ¸øÇϴٴٴ Á¡ÀÌ ¹®Á¦´Ù.
 | ¸ðµ¨ ÁÖµµÀÇ ¼³°è(Model Driven Design) |  |
ÇÊÀÚ°¡ º¸´Ù È¿°úÀûÀÎ ¸ðµ¨¸µ ¹æ¾ÈÀ» °í¹ÎÇÏ´ø ½ÃÁ¡¿¡ ¸¶Ä§ ÇÑ ±ÇÀÇ ´«¿¡ ¶ç´Â Ã¥À» ¸¸³µ´Ù. ¹Ù·Î ¿¡¸¯ ¿¡¹Ý½º(Eric Evans)°¡ ¾´ Domain-Driven Design(ÀÌÇÏ DDD)ÀÌ´Ù. ÀÌ Ã¥Àº ¸ðµ¨¸µ¿¡ ´ëÇÑ Ç³ºÎÇÑ °æÇèÀÌ ¾ø´Â °³¹ßÀÚ¿¡°Ô´Â ±×´ÙÁö À¯¿ëÇÑ Ã¥ÀÌ µÇÁö ¾ÊÀ» ¼ö ÀÖ´Ù. InfoQ »çÀÌÆ®¿¡¼ ¿ä¾àµÈ À̺ÏÀ» ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù(
http://www.infoq.com/minibooks/domain-driven-design-quickly).
 |
| <ȸé 1> Domain-Driven DesignÀÇ Ç¥Áö |
¹æ´ëÇÑ ºÐ·®ÀÇ Ã¥ ³»¿ëÀ» Áý¾àÇØ¼ Àü´ÞÇϱâ À§ÇØ °÷°÷¿¡¼ ¿¡¸¯Àº DDDÀÇ °ñ°ÝÀ» ÀÌ·ç´Â ¾îÈÖµé·Î ÀÏÁ¾ÀÇ À̵¿ °æ·Î¸¦ ±×·Á³õ¾Ò´Ù. ±× Á߽ɿ¡ ÀÖ´Â µÎ °³ÀÇ ¾îÈÖ°¡ Àִµ¥ Çϳª´Â ¾Õ¼ ¾ð±ÞÇÑ ULÀÌ´Ù. ÀÌ´Â (°í°´°ú °³¹ßÀÚ) ¸ðµÎ¿¡°Ô Åë¿ëµÇ´Â ¾ð¾î¸¦ ÀǹÌÇÑ´Ù. ´Ù¸¥ Çϳª´Â ¸ðµ¨ÀÌ ÁÖµµÇÏ´Â ¼³°è(Model-Driven Design ÀÌÇÏ MDD)ÀÌ´Ù.
<±×¸² 3>´Â °³¹ßÀÇ Á߽ɿ¡¼ ¼·Î ´Ù¸¥ ³ë·ÂÀ» ÀÀÁý½ÃŰ´Â ±¸½ÉÁ¡ ¿ªÇÒÀ» ÇÏ´Â ¸ðµ¨À» µµ½ÄÈ ÇØº» °ÍÀÌ´Ù. Á߽ɿ¡¼ ¹ß»êÇØ³ª°¡´Â °ÍÀº ´Ù¾çÇÑ À¯ÇüÀÇ °³¹ß °á°ú¹° ȤÀº °í°´ÀÇ ½Ã½ºÅÛ¿¡ ´ëÇÑ ÀÌÇØ³ª ±â´ë¶ó°í °¡Á¤Çغ¸ÀÚ. °í°´°ú °³¹ßÀÚ, À¯ÇüÀÌ ´Ù¸¥ °³¹ßÀÚ »çÀÌ¿¡¼¶ó¸é ¸ðµÎ Á¶±Ý¾¿ ´Ù¸¥ ¹æÇâÀ¸·Î ¹ßÀüÇÏ°Ô ¸¶·ÃÀÌ´Ù.
ÀÌ ¶§ ±¸½ÉÁ¡ÀÌ µÇ¾î À̵éÀ» ¿¬°áÇØÁÖ´Â ¸ðµ¨ÀÌ ¾ø´Ù¸é °¢°¢ÀÌ ¹ß»êÇØ ³ª°¡¸é¼ ±«¸®°¡ Ä¿Áú °ÍÀÌ´Ù.
 |
| <±×¸² 3> °³¹ßÀÇ Á߽ɿ¡ ÀÚ¸®ÇÑ ¸ðµ¨ |
¹Ý¸é, ¸ðµ¨À» Áß½ÉÀ¸·Î °ÇÑ ÀÀÁý·ÂÀÌ °®°Ô µÈ´Ù¸é ¸ðµ¨Àº ¹Ù·Î ÈǸ¢ÇÑ ULÀÇ ¿ªÇÒÀ» ÇÏ´Â °ÍÀÌ´Ù.
°í°´ÀÌ ÀÌÇØÇÒ ¼ö ÀÖ´Â ¸ðµ¨
DDD¿¡´Â ´ÙÀ½°ú °°Àº ³»¿ëÀÌ ³ª¿Â´Ù.
¼÷·ÃµÈ ¾÷¹« Àü¹®°¡(sophisticated domain experts)°¡ ¸ðµ¨À» ÀÌÇØÇÏÁö ¸øÇÑ´Ù¸é, ¸ðµ¨¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀÌ´Ù.
¸¸ÀÏ ¸ðµ¨À» °í°´ÀÌ ÀÌÇØÇÒ ¼ö ¾ø´Ù¸é ¾î¶² ÀÏÀÌ ¹ú¾îÁú±î? °³¹ßÀÚ´Â °í°´°ú ÀÇ»ç¼ÒÅëÀ» Çϱâ À§ÇØ ¸ðµ¨ ÀÌ¿ÜÀÇ ´Ù¸¥ ¹«¾ð°¡¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¹°·Ð, À̰ͺ¸´Ù´Â ¸ðµ¨À» °í°´°ú ¼ÒÅëÇÒ ¼ö ÀÖ°Ô ¸¸µé¾î¾ß ÇÑ´Ù.
Á¾Á¾ ¸¹Àº »ç¶÷µéÀÌ °í°´ÀÌ UMLÀ» Á÷Á¢ Ȱ¿ëÇÏ´Â °ÍÀº ¹«¸®¶ó°í ÇÑ´Ù. ÇÏÁö¸¸, ERD¸¦ ³õ°í °í°´°ú °³¹ßÀÚ°¡ Ä¡¿ÇÏ°Ô ³íÀǸ¦ ÇÏ´Â °æ¿ì¸¦ º¸´Â ÀÏÀº ¾î·ÆÁö ¾Ê´Ù. UMLÀº °áÄÚ ERDº¸´Ù º¹ÀâÇÏÁö ¾Ê´Ù.
¸¸ÀÏ UML·Î ÀÛ¼ºµÈ ¸ðµ¨ÀÌ ½ÇÈ¿¼ºÀ» ¹ßÈÖÇϰí ÀÖÁö ¸øÇÏ´Ù¸é, º»ÁúÀûÀÎ Á¤º¸¸¦ Ç¥ÇöÇϴµ¥ ÃÊÁ¡À» ¸ÂÃ߱⠺¸´Ù´Â »êÃâ¹°ÀÇ Çü½ÄÀ̳ª ¸ðµ¨¸µ ¹æ½Ä¿¡ ¾ô¸ÅÀÌ´Â ¼öÁØ¿¡ ¸Ó¹°·¯ Àֱ⠶§¹®ÀÌ ¾Æ´Ñ°¡ »ý°¢ÇغÁ¾ß ÇÑ´Ù.
¸¸ÀÏ °í°´ÀÌ ÀÌÇØÇÒ ¼ö Àִ ǥÇö¹ýÀÌ Å¬·¡½º´ÙÀ̾î±×·¥ Çϳª¶ó¸é À̸¦ Ȱ¿ëÇÏ¿© ÀÇ»ç¼ÒÅëÀ» Ç϶ó. ¸¹Àº ¾îÈÖ¿Í ¼ö»ç¸¦ Ȱ¿ëÇÑ´Ù°í ÀÇ»ç¼ÒÅëÀÌ Àß µÇ´Â °ÍÀº ¾Æ´Ï´Ù.
¸ðµ¨ »çÀÌÀÇ ±«¸®¸¦ ÁÙ¿©¶ó
CBD µµÀÔ ÃÊâ±â EJB°¡ À¯ÇàÇÒ ¶§ ¸ðµ¨¸µ µµ±¸¸¦ ÀÌ¿ëÇÏ¿© EJB¸¦ ±¸¼ºÇÏ´Â ¿ä¼ÒµéÀ» ¸ðµÎ ¼³°è ¸ðµ¨¿¡ Ç¥ÇöÇÏ´ø ¶§°¡ ÀÖ¾ú´Ù. <±×¸² 4>´Â ºÐ¼® ¸ðµ¨¿¡¼ °íÀÛ ³× °³ÀÇ Å¬·¡½º ȤÀº ÀÎÅÍÆäÀ̽º¸¦ EJB·Î º¯È¯ÇÑ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ¸ðµ¨Àº EJBÀÇ ±¸¼º¿ä¼Ò¸¦ ÀÌÇØÇÏ´Â °Í À̿ܿ¡ ¾î¶² È¿¿ë¼ºÀ» Áö´ÒÁö Àǹ®ÀÌ´Ù.
<±×¸² 4>ÀÇ ´ÙÀ̾î±×·¥À» °¡Áö°í °í°´°ú ÀÇ»ç¼ÒÅë ÇÒ ¼ö Àְڴ°¡? ½ÇÁ¦ ÇöÀå¿¡¼´Â À̺¸´Ù ÈξÀ º¹ÀâÇÏ¿© ÁöÇÏö ³ë¼±µµ¿Í °°Àº ±×¸²ÀÌ µÉÁöµµ ¸ð¸¥´Ù.
 |
| <±×¸² 4> EJB ±â¹ÝÀÇ ¼³°è ¸ðµ¨ |
°í°´°ú´Â ºÐ¼® ¸ðµ¨·Î ÀÇ»ç¼ÒÅëÀ» Çϰí, ¼³°è ¸ðµ¨Àº °³¹ßÀÚ¸¦ À§ÇÑ °ÍÀ̶ó°í °¡Á¤Çغ¸ÀÚ. »ç½Ç °í°´ Áß¿¡´Â ÃÖÁ¾ »ç¿ëÀÚ¸¸ ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó, ½Ã½ºÅÛÀ» À¯Áö º¸¼öÇÏ´Â °í°´µµ ÀÖ´Ù´Â °ÍÀ» °í·ÁÇϸé ÀÌ·¯ÇÑ °¡Á¤Àº ±×´ÙÁö À¯È¿ÇÏÁö ¾Ê´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ±â¼ú°ú ¾÷¹«°¡ È¥ÀçµÇ¾î ¸¶Ä¡ ½ºÆÄ°ÔƼ¿Í °°Àº ¸ðµ¨ÀÌ °³¹ßÀÚ¿¡°Ô¶óµµ µµ¿òÀÌ µÇ´Â°¡?
ÇÊÀÚ°¡ Âü¿©Ç߰ųª ¾Ë°í ÀÖ´ø ¸ðµç ÇÁ·ÎÁ§Æ®´Â ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨À» º°µµ·Î ¸¸µç´Ù(ÇöÀçµµ ´ëºÎºÐÀÇ SI ÇÁ·ÎÁ§Æ®¿¡¼´Â ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨À» º°µµ·Î ¸¸µç´Ù). ºÐ¼®/¼³°è¸¦ ´ã´çÇÑ °³¹ßÀڵ鿡°Ô UML·Î ¸ðµ¨¸µ ÇÏ´Â °ÍÀ» ¸àÅ丵 ÇÏ´Â °ÍÀÌ Àͼ÷ÇØÁú ½ÃÁ¡¿¡¼ ÇÑ °¡Áö Àǹ®ÀÌ µé¾ú´Ù.
Ã˹ÚÇÑ ÀÏÁ¤°ú ÀÌÁ¦ ¸· UMLÀ» ¹è¿ö¼ ¸ðµ¨¸µÀ» ÇÏ´Â °³¹ßÀÚµéÀÌ ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨À» ¸ðµÎ ¸¸µé¾î³»´Â °ÍÀÌ °ú¿¬ ¿ÇÀº°¡ ÇÏ´Â Á¡ÀÌ´Ù(ÇÊÀÚ°¡ ÇöÀç Âü¿©Çϰí ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡¼µµ ÀÌ·¯ÇÑ ¸ð¼øÀ» ÃÖ´ëÇÑ ÇØ°áÇÏ·Á°í ³ë·ÂÇϰí ÀÖ´Ù).
´õ±º´Ù³ª J2EE ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Âµ¥ ÀÚ¹Ù¸¦ ÇÑ ¹øµµ ½áº¸Áö ¾Ê¾Ò°í, CBD(Component-Based Development)ÀÇ ±â¹Ý±â¼ú¿¡ ´ëÇÑ ÀÌÇØ°¡ ÀüÇô ¾ø´Â »ç¶÷ÀÌ ¾÷¹« ºÐ¼® ÀÌÈÄ¿¡ ¼³°è¸¦ ´ã´çÇß´Ù.
°á·ÐÀûÀ¸·Î ÇÊÀÚ´Â ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨À» ¸ðµÎ Ç¥ÇöÇÏ´Â ¹æ½Ä¿¡ ¸Å¿ì ºñÈ¿À²ÀûÀ̶ó°í »ý°¢ÇÑ´Ù(¾Æ½±°Ôµµ ÇÊÀÚ°¡ Âü¿©Çß´ø ÇÁ·ÎÁ§Æ®¸¦ Æ÷ÇÔÇÏ¿© ´ëÇü SI¾÷ü°¡ ÁÖµµÇÏ´Â ´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ®¿¡¼´Â ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨À» ¸ðµÎ ¸¸µé¾î³½´Ù).
´ëü·Î ºÐ¼® ¸ðµ¨À» ¸¸µé ¶§´Â ¾÷¹«¿¡ ÃÊÁ¡ÀÌ ¸ÂÃçÁø´Ù. ºÐ¼® ¸ðµ¨À» Åä´ë·Î ¼³°è ¸ðµ¨À» ¸¸µé¾î³½´Ù. ¼³°è ¸ðµ¨ ÀÛ¾÷Àº ´ë°³ ÇÁ·Î±×·¡¹ÖÀ¸·Î ¸¸µé±â À§Çؼ ¿µ¹®È ÀÛ¾÷À» ÇÏ°í ³ª¼, ±â¼ú ȯ°æÀ» À§ÇÑ º¯Çü ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
ÀÌ ¶§, ºÐ¼® ³»¿ë¿¡ ´©¶ôµÈ °ÍÀ̳ª ¹ÌÁøÇÑ »çÇ×ÀÌ ÀÖ´Ù¸é ¾î¶»°Ô ÇÒ °ÍÀΰ¡? ¶ÇÇÑ, »õ·Î¿î ¿ä±¸»çÇ×ÀÌ µé¾î¿À¸é ºÐ¼®°ú ¼³°è¿¡ ¸ðµÎ Àû¿ëÇÒ °ÍÀΰ¡? ¾çÂÊ¿¡ ¸ðµÎ ¹Ý¿µÇÏ°Ô µÇ¸é ÁÖ¾îÁø ½Ã°£¿¡ ´ëÇØ ³ë·ÂÀÌ ºÐ»êµÇ°í, ÇÑÂÊ¿¡¸¸ ¹Ý¿µÇÏ¸é ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨ »çÀÌÀÇ ¿¬°è°¡ ¿Ïº®ÇÏ°Ô À¯ÁöµÇÁö ¸øÇÑ´Ù.
ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨ÀÇ ÅëÇÕ
¼º°øÀ» °ÅµÎÁö´Â ¸øÇßÁö¸¸ OMGÀÇ MDA(Model Driven Architecture)´Â °í°´°ú ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ »çÀÌ¿¡¼ ÇϳªÀÇ ¸ðµ¨(Platform Independent Model)¸¸À¸·Î ÀÇ»ç¼ÒÅë ÇÏ´Â ¹æÇâÀ» ÁöÇâÇß´Ù. À̸¦ °¡´ÉÇϵµ·Ï Çϱâ À§ÇØ MDA ±â¹Ý ½ÇÇà ȯ°æ¿¡¼ ±¸Ã¼ÀûÀÎ ±â¼úÀû °áÁ¤À» Àü´ãÇÏ°Ô Çß´Ù.
MDA¿Í´Â ¿ÏÀüÈ÷ ´Ù¸¥ Á¢±ÙÀÌÁö¸¸, ÃÖ±Ù¿¡´Â POJO(Plain Old Java Object) ±â¹ÝÀÇ °³¹ß ¹æ½ÄÀÌ ´ëµÎµÇ¸é¼ ÇϳªÀÇ ¸ðµ¨¸¸À¸·Îµµ °í°´°ú °³¹ßÀÚ°¡ ÀÇ»ç¼ÒÅë ÇÒ ¼ö Àִ ȯ°æÀÌ ºÎ»óÇß´Ù. ½ºÇÁ¸µ(Spring)À̶ó´Â °ø°³ ¼ÒÇÁÆ®¿þ¾î°¡ MDA ½ÇÇàȯ°æ°ú À¯»çÇÑ ¿ªÇÒÀ» Á¦°øÇÏ¸é¼ ½ÇÁ¦ ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå¿Í ºÐ¼® ¸ðµ¨ »çÀÌÀÇ Â÷À̰¡ ¸Å¿ì Á¼¾ÆÁ³´Ù.
 |
| <±×¸² 5> POJO ±â¹ÝÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ½Ã½ºÅÛ ±¸Çö ±â¼ú |
ÇÊÀÚ´Â ERD°¡ °í°´°ú Åë¿ëÀÌ µÇ´Â ȯ°æÀ̶ó¸é, Àû¾îµµ UML·Î ÀÛ¼ºÇÑ Å¬·¡½º´ÙÀ̾î±×·¥À¸·Î µµ¸ÞÀÎÀÇ ÇÙ½ÉÀûÀÎ ¾îÈÖ¸¦ Ç¥ÇöÇÑ´Ù¸é ÃæºÐÈ÷ °í°´°ú °³¹ßÀÚ°¡ ¾÷¹«¿¡ °üÇØ À̾߱â ÇÒ ¼ö ÀÖ´Ù°í ¹Ï´Â´Ù. ºÒÇÊ¿äÇÑ Á¤º¸³ª Ç¥±â¹ýÀ¸·Î º¹Àâµµ¸¸ °¡Áß½ÃŰÁö ¾Ê´Â´Ù¸é, °í°´ÀÌ Å¬·¡½º´ÙÀ̾î±×·¥À» °¡Áö°í À̾߱â ÇÏ´Â °Í¿¡ Èï¹Ì¸¦ ´À³¥ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
 |
| <±×¸² 6> ´ëÇп¡ Á¸ÀçÇÏ´Â »ç¶÷ÀÇ À¯ÇüÀ» Ç¥ÇöÇÑ Å¬·¡½º ´ÙÀ̾î±×·¥ |
¶ÇÇÑ, °í°´°ú °³¹ßÀÚ°¡ ¼ÒÅëÇÒ ¼ö ÀÖ´Ù¸é ±»ÀÌ UMLÀ» Ç¥±â¹ýÀ¸·Î °íÁýÇÒ ÇÊ¿ä´Â ¾ø´Ù. RUP(Rational Unified Process)³ª RUP¿¡ ±âÃÊÇÑ ¹æ¹ý·ÐÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡µµ ¸¹Àº °æ¿ì, ºñÁî´Ï½º ¸ðµ¨¸µ »êÃâ¹°¿¡´Â UMLÀ» ±»ÀÌ ¾²Áö ¾Ê´Â´Ù. ÀÌ¹Ì ¾÷¹« È帧À̳ª ÁÖ¿ä ±â´É ±¸¼ºÀ» Ç¥ÇöÇϱâ À§ÇØ °í°´µéÀÇ ´«¿¡ ÀÍÀº Ç¥±â¹ýÀÌ Àֱ⠶§¹®ÀÌ´Ù.
ÇϳªÀÇ ¸ðµ¨À» ÇâÇØ °¥ ¶§ ¸¸³ª°Ô µÇ´Â À庮
ÇÊÀÚ´Â ¸î ³â Àü ºÐ¼® ¸ðµ¨¸¸À» »ç¿ëÇÏÀÚ´Â ÀǰßÀ» Á¦½ÃÇÑ ÀÏÀÌ ÀÖ´Ù. ±×¸®°í ¿À·£ ³íÀÇ ³¡¿¡ ºÐ¼® ¸ðµ¨À» ´ÜÁö ¿µ¹®À¸·Î º¯È¯ÇÏ´Â ¼öÁØ¿¡¼ ¼³°è ¸ðµ¨À» ¸¸µå´Â ¹æ½ÄÀ¸·Î ¸ðµ¨¸µ ±â¹ýÀ» °³¼±Çسª°¬´Ù. ÀÌ·¯ÇÑ °úÁ¤ ¼Ó¿¡¼µµ ¸¹Àº À庮À» ¸¶ÁÖÄ¡°Ô µÇ¾ú´Ù. ÁÖ·Î ´ÙÀ½°ú °°Àº ¹ÝÀÀÀ̾ú´Ù.
¡Ü ¿ì¸®ÀÇ Ç¥ÁØ ¹æ¹ý·Ð¿¡ À§¹èµÈ´Ù.
¡Ü ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨ÀÌ º°·Î Â÷À̰¡ ¾ø´Â °ÍÀÌ ¸»ÀÌ µÇ´À³Ä?
¡Ü °ËÁõµÇÁö ¾ÊÀº ¹æ¹ýÀÌ´Ù.
IT¿¡µµ ÀÏ¹Ý ¾÷¹«Ã³·³ ±ÔÁ¤À» µû¸£°Ô ÇÏ´Â Á¶Á÷ÀÇ ¿î¿µ¹æ½ÄÀÌ Åõ¿µµÈ °ÍÀ¸·Î ÇØ¼®ÇÒ ¼ö ÀÖ´Ù. ȤÀº ¾ÆÁ÷ ¸ðµ¨ÀÇ ³»¿ëÀ̳ª È¿°ú¸¦ ³íÇÏ´Â ¼öÁØÀÌ µÇÁö ¸øÇÏ´Â °æ¿ì´Ù. UML ¸ðµ¨À» óÀ½ µµÀÔÇÏ´Â ½ÃÁ¡¿¡¼ Çü½ÄÀÇ Ç¥ÁØÈ·Î ÃÖ¼ÒÇÑÀÇ Ç°ÁúÀ» È®º¸ÇÏ·Á´Â ½ÃÁ¡À¸·Î º¼ ¼ö ÀÖ´Ù.
µû¶ó¼ Áö³ªÄ¡°Ô Çü½Ä¿¡ ¾ô¸ÅÀÌ´Â °æ¿ì¸¦ ¾ÆÁ÷Àº ¾î·ÆÁö ¾Ê°Ô ¸¸³ª°Ô µÈ´Ù. UMLÀÌ ³Î¸® ¾²À̰í Àֱ⠶§¹®¿¡ ¸ÓÁö¾Ê¾Æ ÀÌ·¯ÇÑ ¹®Á¦´Â °áµÉ °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ À庮 À̿ܿ¡µµ ±¹³» ¾ð¾î ȯ°æÀÇ Æ¯¼ö¼º¿¡ ±âÀÎÇÑ ¹®Á¦µµ ³Ñ¾î¾ß ÇÑ´Ù. ´ëºÎºÐÀÇ ±¹³» ÇÁ·ÎÁ§Æ®¿¡¼ ¿µ¾î·Î ÀÛ¼ºµÈ ºÐ¼® ¸ðµ¨Àº »ó»óÇϱâ´Â Èûµé´Ù. ¹Ý¸é¿¡ ¼³°è ¸ðµ¨ÀÇ °æ¿ì´Â Çѱ۷ΠÀÛ¼ºÇϸé ÄÚµå¿Í ´ëÀÀ½ÃŰ±â°¡ ¾î·Æ´Ù. ÇѱÛÀ» Áö¿øÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ÀÖ´ÙÇÏ´õ¶óµµ, ¿©ÀüÈ÷ Çѱ۷ΠÇÁ·Î±×·¡¹ÖÀ» ÀÛ¼ºÇÏ´Â °æ¿ì´Â ã¾Æº¸±â Èûµé´Ù.
 | ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î·Î¼ ÇØ°áÇØ¾ß ÇÒ µµÀü °úÁ¦ |  |
¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î´Â ¾Õ¼ ¾ð±ÞÇÑ À庮µéÀ» ÇØ°áÇÏ´Â °ÍÀ» ¾÷À¸·Î ÇÑ´Ù. ¶æÀÌ ÀÖ´Â °÷¿¡ ±æÀÌ ÀÖ´Ù°í ½Ã°£ÀÌ ¼Ò¿äµÉ »Ó Ç×»ó ÇØ°áÃ¥Àº Àֱ⠸¶·ÃÀÌ´Ù.
¸ÕÀú »õ·Î¿î ¹æ½Ä¿¡ ´ëÇÑ °ÅºÎ°¨À̳ª ÀúÇ×ÀÌ ÀÖ´Â °æ¿ì¶ó¸é Á¡ÁøÀûÀ¸·Î °³¼±ÇÏ¸é µÈ´Ù. ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨ µÎ °³¸¦ ¸ðµÎ À¯ÁöÇÏ´õ¶óµµ µµ¸ÞÀÎÀÌ Àß µå·¯³ª´Â ºÐ¼® ¸ðµ¨À» ÁßÁ¡ÀûÀ¸·Î Ȱ¿ëÇϰí, ¼³°è ¸ðµ¨À» º¸Á¶ÀûÀ¸·Î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ¶ÇÇÑ, ºÐ¼® ¸ðµ¨À» ÅëÇØ Äڵ带 µµÃâÇϰí, ¿ª°øÇÐ(reverse engineering)À» ÀÌ¿ëÇØ ¼³°è ¸ðµ¨À» ¸¸µé ¼öµµ ÀÖ´Ù.
DDD¿¡¼ ¸»ÇϵíÀÌ ÇϳªÀÇ ¾ð¾î·Î ¸ðµÎ¿¡°Ô Åë¿ëµÇ¸é ÁÁ°ÚÁö¸¸ ¸ðµç »óȲ¿¡¼ À̸¦ Àû¿ëÇÒ ¼ö´Â ¾ø´Ù. ¹Ý¸é¿¡ ¾îµð¿¡¼µç »óȲ¿¡ ¸Â°Ô Á¡ÁøÀûÀ¸·Î Àû¿ëÇÏ´Â °ÍÀº °¡´ÉÇÏ´Ù. µµ¸ÞÀÎ °³³äÀ» Ç¥ÇöÇÏ´Â ¹æ½Ä ȤÀº µµ¸ÞÀÎ °³³äÀ» ±¸Ã¼ÈÇÏ´Â °úÁ¤¿¡¼ÀÇ »êÃâ¹° Ç¥±â°¡ ¼³Ê °¡Áö ÀÌ»óÀ̶ó¸é ÇÑ °¡Áö¾¿ ÁÙ¿©³ª°¡´Â °Í¸¸ ÇØµµ ÀÇ»ç¼ÒÅëÀÇ º¹Àâµµ´Â ÁÙ¾îµå´Â °ÍÀÌ´Ù.
»õ·Î¿î ¹æ½Ä¿¡ ´ëÇÑ °í°´°ú °³¹ßÀÚÀÇ ÀûÀÀÀ» µ½±â À§Çؼ´Â Á¶½É½º·¯¿î Á¢±ÙÀÌ ÇÊ¿äÇÏ´Ù. °¡½ÃÀûÀÎ ½ÇÈ¿¼ºÀ» Á÷Á¢ ¸Àº¸°Ô ÇÔÀ¸·Î½á º¯È¸¦ Àû±ØÀûÀ¸·Î ¼ö¿ëÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù.
¿äÁò ÇÊÀÚ´Â ¼³°è ¸ðµ¨ ´ë½Å¿¡ ºÐ¼® ¸ðµ¨·Î Æ÷ÂøÇÑ ¾÷¹« ¾îÈÖ¸¦ ¿¢¼¿ ¹®¼·Î Á¤¸®Çϰí, À̸¦ ±â¹ÝÀ¸·Î Àڹ٠Ŭ·¡½º¿Í ȸ鿡 µ¥ÀÌÅ͸¦ Àü´ÞÇÒ XML ¹®¼¸¦ »ý¼ºÇÏ´Â ÀÛ¾÷À» ½ÃµµÇϰí ÀÖ´Ù.
ºÐ¼® ¸ðµ¨ÀÌ °®´Â ¾àÁ¡À» ¼³°è °áÁ¤À» ´ãÀº ¿¢¼¿ ¹®¼°¡ º¸¿ÏÇÏ´Â ¹æ½ÄÀÌ´Ù. °³¹ß °úÁ¤À̳ª ÇâÈÄ À¯Áöº¸¼ö ½ÃÁ¡¿¡¼ ¿¢¼¿ ½ÃÆ®°¡ Àͼ÷ÇÏ°Ô Åë¿ëµÉ ¼ö ÀÖ´Ù¸é ±»ÀÌ UML¸¸ Ȱ¿ëÇÒ ÇÊ¿ä´Â ¾ø´Â °Í ¾Æ´Ñ°¡?
µµ¸ÞÀÎ ¸ðµ¨ÀÇ ½ÇÈ¿¼ºÀ» ±Ø´ëÈÇϱâ À§Çؼ ¸ðµ¨°ú ½ÇÁ¦ ±¸Çö »êÃâ¹° »çÀÌÀÇ ±«¸®¸¦ ÁÙ¿©¾ß ÇÑ´Ù. ±×·¡¾ß¸¸ °³¹ßÀڵ鵵 µµ¸ÞÀÎ ¸ðµ¨¿¡ ´õ¿í ³ë·ÂÀ» ½ñÀ» ¼ö ÀÖ´Ù. ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î´Â À̸¦ À§ÇØ Áö¼ÓÀûÀ¸·Î ÇÁ·Î¼¼½º³ª °³¹ß µµ±¸¸¦ °³¼±ÇØ¾ß ÇÑ´Ù.
<±×¸² 7>¿¡ ³ªÅ¸³½ °Íó·³ µµ¸ÞÀÎ ¸ðµ¨·ÎºÎÅÍ ¸¹Àº °³¹ß »êÃâ¹°ÀÌ ÀÚµ¿À¸·Î »ý¼ºµÉ ¼ö ÀÖ´Ù¸é, ¸ðµ¨Àº ´õ¿í ³Î¸® ¾²ÀÌ°Ô µÇ¾î ±Ã±ØÀÎ ÇϳªÀÇ ¾ð¾î·Î ³ª¾Æ°¥ °ÍÀÌ´Ù.
 |
| <±×¸² 7> µµ¸ÞÀÎ ¸ðµ¨À» Ȱ¿ëÇÑ °³¹ß »êÃâ¹°ÀÇ ÀÚµ¿ »ý¼º |
ÇÑÆí, ºÐ¼® ¸ðµ¨°ú ¼³°è ¸ðµ¨ÀÇ Â÷À̰¡ Çѱ۰ú ¿µ¾î¶ó´Â Â÷ÀÌ»ÓÀ̶ó¸é ±»ÀÌ µÎ °³·Î ¸ðµ¨À» ºÐ¸®ÇÒ Çʿ䰡 ¾ø´Ù. EA(Enterprise Architect)¿Í °°Àº ¸ðµ¨¸µ µµ±¸¿¡¼´Â À̸§ ¿Ü¿¡µµ º°Äª(Alias)À» Ãß°¡·Î Áö¿øÇÑ´Ù. À̸§Àº ÇѱÛÀ» »ç¿ëÇϰí, º°ÄªÀº ¿µ¾î¸¦ ¾´´Ù°í ´ÙÀ̾î±×·¥¿¡ µû¶ó¼ Çѱ۷Πº¸ÀÌ°Ô Çϰųª, ¿µ¹®À¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
±×·± ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â ¸ðµ¨¸µ µµ±¸¸¦ ¾´´Ù°í ÇØµµ Ŭ·¡½º À̸§Àº ¿µ¹®À» ¾²°í, ½ºÅ×·¹¿À ŸÀÔ¿¡´Â ÇѱÛÀ» ³Ö´Â ¹æ¹ýÀ¸·Îµµ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
 |
| <ȸé 2> EAÀÇ ´ÙÀ̾î±×·¥ µî·ÏÁ¤º¸ ¼³Á¤ â |
»ç¿ëÇÏ´Â ¾ð¾î°¡ ´Ù¸£´Ù¸é ´ëȰ¡ ¾î·Á¿î °ÍÀº »ó½ÄÀûÀÎ ÀÏÀÌ´Ù. ¾ð¾î°¡ °°´õ¶óµµ »ç¿ëÇÏ´Â ¾îÈÖ°¡ ´Ù¸£¸é ÀÇ»ç¼ÒÅëÀÌ ¾î·Æ±â ¸¶·ÃÀÌ´Ù. °í°´ÀÌ ¿øÇÏ´Â ½Ã½ºÅÛÀ» ¸¸µé¾î³»±â À§Çؼ °í°´°ú °³¹ßÀÚ´Â ÃæºÐÇÑ ´ëÈ ÇÊ¿äÇϰí, À̸¦ ÅëÇØ °³¹ßÀÚ´Â °í°´ÀÇ ¿ä±¸¸¦ ÃæºÐÇÏ°Ô ÀÌÇØÇØ¾ß ÇÑ´Ù.
¼ÒÇÁÆ®¿þ¾î ±¸Çö ±â¼úÀº ºñ¾àÀûÀ¸·Î ¹ßÀüÇØ³ª°¡°í ÀÖÁö¸¸, °í°´ÀÇ ¿ä±¸»çÇ×µµ µû¶ó¼ º¹ÀâÇØÁ® °¡°í ÀÖ´Ù. ´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ®¿¡¼´Â ±â¼úÀûÀÎ ¹®Á¦·Î ½ÇÆÐÇϱ⠺¸´Ù´Â °í°´ÀÇ ¿ä±¸»çÇ׿¡ ´ëÇÑ ³·Àº ÀÌÇØ°¡ ½ÇÆÐÀÇ ¿øÀÎÀ¸·Î ÀÛ¿ëÇÑ´Ù.
ÇÊÀÚ´Â ÀÌ ±Û¿¡¼ °í°´ÀÇ ¾÷¹«¿¡ ÃÊÁ¡À» ¸ÂÃá µµ¸ÞÀÎ ¸ðµ¨ÀÌ °®´Â Àǹ̸¦ °Á¶ÇϰíÀÚ Çß´Ù. µµ¸ÞÀÎ ¸ðµ¨ÀÇ °í°´°ú °³¹ßÀÚÀÇ ¾ð¾î·Î¼ Åë¿ëµÇ±â À§Çؼ´Â Áö¼ÓÀûÀÎ ³ë·ÂÀÌ ÇÊ¿äÇÏ´Ù. ±×·¯ÇÑ ³ë·ÂÀº ÇÁ·ÎÁ§Æ®ÀÇ ¼º°øÀ» À§ÇÑ ¿¼è°¡ µÉ ¼ö ÀÖ´Ù.
Çö½ÇÀûÀ¸·Î °í°´°ú °³¹ßÀÚ, ±×¸®°í ¼·Î ´Ù¸¥ À¯ÇüÀÇ °³¹ßÀÚ »çÀÌ¿¡¼ ÇϳªÀÇ ¾ð¾î°¡ Åë¿ëµÇ°Ô ÇÏ·Á¸é ¸¹Àº À庮À» ³Ñ¾î¾ß ÇÑ´Ù. ÇÊÀÚ´Â ÀÌ ±Û¿¡¼ ÀÚ¼¼ÇÏ°Ô À̵é À庮À» »ìÆìº¸Áö´Â ¾Ê¾Ò´Ù. »ç½Ç ¾î¶°ÇÑ Àå¾Ö¹°ÀÌ ³ªÅ¸³ªµµ ±× »óȲ¿¡¼ ÃÖÀûÀÇ ¼±ÅÃÀ» ÇÏ¸é ±×»ÓÀÌ´Ù.
ªÀº ±Û·Î ±¸Ã¼ÀûÀÎ ½ÇÇà ¹æ¾ÈÀ» Á¦°øÇØÁÖÁö´Â ¸øÇÒ °ÍÀÌ´Ù. ±×Àú ªÀº ÇÊ·ÂÀ̳ª¸¶ µ¶Àڵ鿡°Ô °øÅëµÈ ¾ð¾î·Î½áÀÇ µµ¸ÞÀÎ ¸ðµ¨ÀÌ °¡Ä¡°¡ ÀÖ´Ù´Â »ç½Ç¸¸ ºÐ¸íÇÏ°Ô Àü´ÞÇÒ ¼ö Àֱ⸦ ¹Ù¶ö »ÓÀÌ´Ù. @
Âü°íÀÚ·á
1. Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans, 33~34ÂÊ.
2. http://www.agilemodeling.com/artifacts/classDiagram.htm
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.