·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[°´Ã¼ÁöÇâ SW ¼³°èÀÇ ¿øÄ¢] ¨è »ç·Ê¿¬±¸, ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢

ÃÖ»óÈÆ (ÇÚµð¼ÒÇÁÆ®), ¼ÛÄ¡Çü (¼­¿ï´ë)   2005/04/25
¿¬Àç¼ø¼­
1ȸ. ´Ù½Ã º¸¸é Å©°Ô º¸ÀÌ´Â °³¹æ-Æó¼â ¿øÄ¢
2È÷. Çì¾îÁ®¼­ Çàº¹ÇØÁø »ç·Ê¿¬±¸, ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢
3ȸ. ÀÎÅÍÆäÀ̽º ºÐ¸®ÀÇ ¿øÄ¢
4ȸ. ¸®½ºÄÚÇÁ ġȯ ¿øÄ¢
5ȸ. ÀÇÁ¸ °ü°è ¿ªÀüÀÇ ¿øÄ¢
6ȸ. Á¤¸®
[Áöµð³ÝÄÚ¸®¾Æ]¿À·¡ Àü Áú·¹Æ®°¡ ¿©·¯ ºÐ¾ß·Î »ç¾÷À» ´Ù°¢È­ÇÑ ÀûÀÌ ÀÖ´Ù. ÀÚ½ÅÀÇ °æÀï·Â ÀÖ´Â ºÐ¾ßÀÎ ¸éµµ³¯, ¸éµµ±â »ç¾÷À» ¹þ¾î³ª ¼¤Çª µî ÀÏ¿ëǰ »ç¾÷¿¡±îÁö ¶Ù¾îµç °ÍÀÌ´Ù. ¸éµµ¿ëǰµµ ÀÏ¿ëǰÀÌ´Ï »ç¾÷ºÐ¾ß °£ ½Ã³ÊÁö È¿°ú°¡ ÀÖÀ» °ÍÀ̶ó´Â ÆÇ´ÜÀ̾ú´ø µíÇÏ´Ù.

ÇÏÁö¸¸ ½ÇÀûÀº ³ªÁö ¾Ê¾Ò°í ÁÖ°¡´Â °ïµÎ¹ÚÁúÃÆÀ¸¸ç °á±¹Àº ¸¹Àº ¼Õ½ÇÀ» ÀÔÀº ä·Î ´Ù°¢È­ÇÑ »ç¾÷ºÐ¾ß¸¦ Á¤¸®Çؾ߸¸ Çß´Ù. ÇöÀç´Â ¸éµµ¿ëǰ »ç¾÷¿¡ ÁýÁßÇØ¼­ ¼¼°è ÃÖ°íÀÇ ¸éµµ¿ëǰ ȸ»ç¶ó´Â ¸í¼º°ú ½ÇÀûÀ» µÇã°Ô µÇ¾ú´Ù.

ÀÌó·³ ¸¹Àº ±â¾÷µéÀÌ À§ÇèÀ» ºÐ»ê½ÃŰ°í ½ÇÀûÀ» Çâ»ó½Ã۱â À§Çؼ­ ´Ù°¢È­(diversification)¸¦ ÇÑ´Ù. ÇÏÁö¸¸ ¸¹Àº °æ¿ì ´Ù°¢È­´Â ¿ÀÈ÷·Á À§ÇèÀ» Áõ°¡½ÃŰ°í ½ÇÀûÀ» ¾ÇÈ­½ÃŲ´Ù. À̸¦ µé¾î ¿ù ½ºÆ®¸®Æ®ÀÇ Àü¼³ÀûÀÎ ÅõÀÚ°¡·Î ºÒ¸®´Â ÇÇÅÍ ¸°Ä¡(Peter Lynch)´Â ¡°´Ù°¢È­´Â ´ëºÎºÐ ´Ù¾ÇÈ­(diworsfication)·Î ³¡³­´Ù¡±°í Ãæ°íÇÑ´Ù. ½ÇÁ¦ ±×´Â ÀÚ½ÅÀÇ Æ÷Æ®Æú¸®¿À¿¡ ´Ù°¢È­¸¦ ½ÃµµÇÏ´Â ±â¾÷Àº °¡´ÉÇÑ ¹èÁ¦Çϸç, °æÇè»ó ÀÌ·¯ÇÑ °áÁ¤À» ÈÄȸÇÑ ÀûÀº °ÅÀÇ ¾ø´Ù°í ÀڽŠÀÖ°Ô ¸»ÇÑ´Ù.

½ºÅÄÆ÷µåÀÇ Áü Äݸ°½º ±³¼ö´Â ÇÇÅÍ ¸°Ä¡ÀÇ °æÇèÀ» Æ®·° ¼ö½Ê ´ë¿¡ ÇØ´çÇÏ´Â ÀڷḦ ºÐ¼®ÇÑ °á°ú·Î ÁöÁöÇØ ÁØ´Ù. ±×ÀÇ ¿¬±¸¿¡ µû¸£¸é À§´ëÇÑ ±â¾÷À¸·Î µµ¾àÇÑ ±â¾÷µéÀº ¸ðµÎ°¡ ¿ìÁ÷ÇÏ°Ô ÇÑ ¿ì¹°À» ÆÍ´Ù°í ÇÑ´Ù. ´ÙÀ½Àº ±×°¡ "ÁÁÀº ±â¾÷¿¡¼­ À§´ëÇÑ ±â¾÷À¸·Î"¶õ Ã¥¿¡¼­ ¡®¿¹»óÄ¡ ¸øÇÑ ¹ß°ß¡¯À̶ó ³î¶ó¸ç ¼­¼úÇÑ ³»¿ëÀÌ´Ù.

¡°ÁÁÀº ȸ»ç¿¡¼­ À§´ëÇÑ È¸»ç·Î µµ¾àÇÑ ±â¾÷µéÀº °í½¿µµÄ¡ - ¡®ÇÑ °¡Áö¡¯¸¸ ¾Ë°í ±×°Í¿¡ ÁýÁßÇÏ´Â ´Ü¼øÇϰí Ã̽º·¯¿î µ¿¹°-¿¡ °¡±õ´Ù. ºñ±³ ±â¾÷µéÀº ¿©¿ì - ¸¹Àº °ÍÀ» ¾ËÁö¸¸ Àϰü¼ºÀÌ °á¿©µÈ ²Ò ¸¹°í ±³È°ÇÑ µ¿¹°-¿¡ °¡±õ´Ù.¡±

¾î¶² ´ÜÀÏ Á¶Á÷ÀÌ ¿©·¯ ºÐ¾ß·Î ´Ù°¢È­ÇÏ°Ô µÇ¸é Á¶Á÷ ³»¿¡¼­ ´Ù¸¥ ¸ñÇ¥¸¦ Ãß±¸ÇÏ´Â »ç¶÷µé °£ÀÇ ÀÌÁú°¨ÀÌ ¹ß»ýÇÏ°í ¶ÇÇÑ ÇÑ °¡Áö¿¡ ÁýÁßÇÏÁö ¸øÇϰí ÈûÀÌ Èð¾îÁö±â ¶§¹®¿¡ ´Ù°¢È­´Â ½±»ç¸® ´Ù¾ÇÈ­·Î º¯ÁúµÈ´Ù. ¼ÒÇÁÆ®¿þ¾î ¼¼°è¿¡¼­µµ ÀÌ¿Í ºñ½ÁÇÏ°Ô ´Ù°¢È­¸¦ °æ°èÇ϶ó´Â ¿ø¸®°¡ ÀÖ´Ù. ¹Ù·Î ÇϳªÀÇ Å¬·¡½º´Â ÇϳªÀÇ Ã¥ÀÓ¸¸À» °¡Á®¾ß ÇÑ´Ù´Â ¡®´ÜÀÏ Ã¥ÀÓ ¿øÄ¢(ÀÌÇÏ SRP)¡¯ÀÌ´Ù.

À̹ø ±Û¿¡¼­´Â ÇÁ·Î±×·¥¿¡¼­ °´Ã¼°¡ °¡Áö´Â Ã¥ÀÓÀ̶õ °ÍÀÌ ¹«¾ùÀÎÁö, ±×¸®°í ¿Ö °´Ã¼°¡ ´ÜÀÏ Ã¥ÀÓ¸¸ °¡Áö´Â °ÍÀÌ ÁÁÀºÁö¸¦ »ìÆìº¼ °ÍÀÌ´Ù. ¶ÇÇÑ ÇöÀç °´Ã¼°¡ ÀÌ¹Ì ¿©·¯ Ã¥ÀÓÀ» Áö´Ï°í ÀÖ´Â ¿©¿ì °´Ã¼ÀÎ °æ¿ì ³ªÅ¸³¯ ¼ö ÀÖ´Â ¹®Á¦Á¡(¾ÇÃë)°ú À̸¦ °í½¿µµÄ¡ °´Ã¼·Î ¹Ù²Ù´Â ¹æ¹ý¿¡ ´ëÇØ¼­µµ ³íÀÇÇØ º»´Ù.

´ÜÀÏ Ã¥ÀÓ ¿øÄ¢ÀÇ °³¿ä
´ÙÀ½Àº ±¹Á¦ °Å·¡ ÀºÇà¿¡¼­ »ç¿ëÇÏ´Â ¡®ÀÜ°í¡¯¶ó´Â Ŭ·¡½ºÀÌ´Ù. Àܰí Ŭ·¡½º´Â ´ÙÀ½°ú °°Àº ÀÎÅÍÆäÀ̽º¸¦ °®´Â´Ù. ÀÌ Å¬·¡½ºÀÇ ÀÎÅÍÆäÀ̽º´Â Á÷°üÀûÀ¸·Î ´Ü¼øÇÏ°í ±â´ÉÀûÀ¸·Î ¿Ï°áµÈ Ŭ·¡½ºÀÏ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¸¸¾à µÎ °³ÀÇ ¼­·Î ´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Àܰí Ŭ·¡½º¸¦ »ç¿ëÇÑ´Ù°í ÇßÀ» ¶§ ÀÌ µÎ »ç¿ëÀÚ Å¬·¡½º´Â ¼­·Î ´Ù¸¥ ¸Þ½îµå¸¦ ÀÌ¿ëÇÏ°Ô µÈ´Ù. ȯÀ² Á¶Á¤ ¾ÖÇø®ÄÉÀ̼ÇÀº ¡®È¯À² °è»ê¡¯ ¸Þ½îµå¸¦ ÀÌ¿ëÇÒ °ÍÀ̰í ÀÌÀ² °ü¸® ¾ÖÇø®ÄÉÀ̼ÇÀº ±Ý¾×¿¡ °üÇÑ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÒ °ÍÀÌ´Ù.

ÇÏÁö¸¸ ÀÌ °¢ ¾ÖÇø®ÄÉÀ̼ÇÀÌ °¢°¢ ¹èÆ÷µÆÀ» ¶§ Àܰí Ŭ·¡½º´Â Á¤Ã¼¼ºÀÇ È¥¶õÀÌ »ý±ä´Ù. ¿Ö³ÄÇϸé ÀÌÀ²°ü¸® ¾ÖÇø®ÄÉÀ̼ǿ¡ ¹èÆ÷µÉ ¶§´Â ¡®È¯À² °è»ê¡¯ ¸Þ½îµå°¡ ¹«¿ëÇÏ°Ô µÇ°í ȯÀ² Á¶Á¤ ¾ÖÇø®ÄÉÀ̼ǰú ¹èÆ÷µÉ ¶§´Â ±Ý¾×¿¡ °üÇÑ ÀÎÅÍÆäÀ̽º°¡ ¼Ò¿ÜµÇ±â ¶§¹®ÀÌ´Ù. ¹®Á¦´Â ¿©±â¼­ ±×Ä¡Áö ¾Ê´Â´Ù. ¸¸¾à ȯÀ² °è»ê ¸Þ½îµåÀÇ ½Ã±×´Ïó°¡ º¯°æµÉ °æ¿ì ȯÀ² °è»êÀ» ¿äûÇÏ´Â Àܰí Ŭ·¡½ºÀÇ ´Ù¸¥ ¸Þ½îµåµéÀÌ °°ÀÌ º¯°æµÇ¾î¾ß ÇÑ´Ù. °£°áÇÏ°Ô ¼³°èÇÑ Àܰí Ŭ·¡½º´Â È®½ÇÈ÷ ¹®Á¦¸¦ ³»ÀåÇϰí ÀÖ¾ú´Ù.

<±×¸² 1> Àܰí Ŭ·¡½º

¹®Á¦ÀÇ ¿øÈäÀº ¹«¾ùÀϱî? Àܰí Ŭ·¡½º´Â »ç½ÇÀº µÎ °¡Áö Ã¥ÀÓÀ» °¡Áö°í ÀÖ´Ù. ¼ö¸®Àû ÀÌÀ² ¿¬»êÀ» ´ã´çÇÏ´Â ¡®È¯À² °è»ê¡¯ÀÇ Ã¥ÀÓ°ú ±Ý¾×¿¡ °ü·ÃÇÑ Ã³¸®¸¦ ´ã´çÇÏ´Â ¸Þ½îµåµéÀÌ ¶Ç ´Ù¸¥ Ã¥ÀÓÀÌ´Ù. ¶ÇÇÑ ÇϳªÀÇ Å¬·¡½º ¾È¿¡ Çʿ信 ÀÇÇØ µÎ °¡Áö Ã¥ÀÓÀÌ °øÁ¸ÇÒ ¶§ ¼­·ÎÀÇ ÀÇÁ¸°ü°è´Â ½É°¢ÇÏ°Ô °­°áÇյDZ⠶§¹®¿¡ º¯°æ¿¡ ´ëÇÑ Ãæ°ÝÀÌ Àü´ÞµÉ ¼ö¹Û¿¡ ¾ø´Ù.

È®½ÇÈ÷ µÎ °¡Áö Ã¥ÀÓÀ» ´ã´çÇØ¾ß ÇÏ´Â ÇÑ Å¬·¡½º´Â ºÒÆíÇÑ Á¡ÀÌ ¸¹´Ù. Áö³­ ±Û¿¡ ¼Ò°³ÇÑ OCP´Â ¡®È®À塯ÀÌ ¼³°èÀû °üÀü Æ÷ÀÎÆ®¶ó¸é ´ÜÀÏ Ã¥ÀÓ ¿øÄ¢(Single Responsibility Principle : SRP)Àº ¡®º¯°æ¡¯ÀÌ °üÀü Æ÷ÀÎÆ®°¡ µÉ °ÍÀÌ´Ù. ÀÌ ¡®º¯°æ¡¯ÀÇ °ÅºÏÇÔÀ» Á¶ÀåÇÏ´Â ¿ä¼Ò´Â ¼­·Î ´Ù¸¥ ¡®Ã¥ÀÓ¡¯ÀÌ È¥ÀçÇØ Àִٴµ¥ ÀÖ´Ù.

SRPÀÇ Å°¿öµå´Â Ã¥ÀÓÀ¸·Î ¿ä¾àµÇ´Âµ¥, ±×·¸´Ù¸é Ã¥ÀÓÀ̶õ ¹«¾ùÀϱî? Ã¥ÀÓÀ̶õ ¡®º¯°æÀ» À§ÇÑ ÀÌÀ¯¡¯ÀÌ´Ù. ¸¸¾à ÇϳªÀÇ Å¬·¡½º¿¡ º¯°æÀ» À§ÇÑ µÎ °¡Áö ÀÌ»óÀÇ ÀÌÀ¯°¡ ÀÖ´Ù¸é ±× Å¬·¡½º´Â ÇÑ °¡Áö ÀÌ»óÀÇ Ã¥ÀÓÀ» °®°í ÀÖ´Â °ÍÀÌ´Ù. <±×¸² 1>ÀÇ Àܰí Ŭ·¡½º´Â º¯°æÀÇ ³»¿ëÀÌ µÎ °¡Áö·Î ¿ä¾àµÈ´Ù. ±Ý¾×°ú ȯÀ²ÀÌ´Ù. Áï, Àܰí Ŭ·¡½º´Â ±Ý¾×°ú ȯÀ²ÀÇ Ã¥ÀÓÀ» °®°í ÀÖ´Ù.

SRP´Â ÇϳªÀÇ Å¬·¡½º¿¡ ÇÑ °¡Áö Ã¥ÀÓÀ» °¡¸£Ä¡´Â ¿øÄ¢ÀÌ´Ù. ¿ì¸®´Â ¼³°è °üÁ¡¿¡¼­ ¿ì¸®°¡ ÀνÄÇÏÁö ¸øÇÏ´Â SRP À§¹ÝÀ» ÀÚÁÖ ÇÏ°Ô µÈ´Ù. ÀÌ À§¹ÝÀ» °æ°èÇϱâ À§ÇØ ±íÀº ÅëÂû·ÂÀÌ ÇÊ¿äÇÏÁöµµ ¾Ê´Ù. ´ÜÁö ¸Ó¸®¿¡ ¡®Ã¥ÀÓ¡¯À̶õ ´Ü¾î¸¦ »ó±âÇÏ´Â ½À°üÀÌ¸é µÈ´Ù.

À§¹Ý »çÇ׿¡´Â ´ë°¡°¡ µû¸¥´Ù. SRP¸¦ À§¹ÝÇÒ °æ¿ì µû¸£´Â Àç¾ÓÀº ù ¹øÂ°·Î ¡®¿Õµû¡¯°¡ ¹ß»ýÇÑ´Ù´Â °ÍÀÌ´Ù. Àܰí Ŭ·¡½º°¡ ÀÌÀ² °ü¸® ¾ÖÇø®ÄÉÀ̼ǰú ¹èÆ÷µÆÀ» ¶§ È®½ÇÈ÷ ¡®È¯À² °è»ê¡¯ ¸Þ½îµå´Â ¼Ò¿ÜµÈ´Ù. Áï ¸¸¾à A¶ó´Â Ã¥ÀÓ°ú B¶ó´Â Ã¥ÀÓÀ» °®°í Àִ Ŭ·¡½º°¡ ÀÖÀ» °æ¿ì A¸¸ ÇÊ¿ä·Î ÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº Ç×»ó B¸¦ µé°í ´Ù³à¾ß ÇÑ´Ù.

¹®Á¦´Â ¿©±â¼­ ±×Ä¡Áö ¾Ê´Â´Ù. µÎ ¹øÂ° Àç¾ÓÀº ¹«°üÇÑ ¸Þ½îµå¿¡ º¯°æÀÌ ¹ß»ýÇÒ °æ¿ì ºÒÇÊ¿äÇÑ º¯°æ ÀÓÆÑÆ®°¡ Àü´ÞµÈ´Ù. ¸¸¾à ¡®È¯À² °è»ê¡¯ ¸Þ½îµå°¡ º¯°æµÆÀ» °æ¿ì ÀÌÀ² °ü¸® ¾ÖÇø®ÄÉÀ̼ÇÀº »ç¿ëÇÏÁöµµ ¾Ê´Â ¡®È¯À² °è»ê¡¯ ¸Þ½îµå ¶§¹®¿¡ ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÏ°í ¸®Å×½ºÆ®ÇØ¾ß Çϸç Àç¹èÆ÷ÇØ¾ß ÇÑ´Ù. ÀÌÀ² °ü¸®¿Í ÀüÇô ¹«°üÇѵ¥µµ ºÒ±¸Çϰí... »ç½ÇÀº ÀÌ ÀÓÆÑÆ®ÀÇ ¿µÇâÀº ´õ ½É°¢Çѵ¥ ´ÙÀ½ÀÇ ÄÉÀ̽º ½ºÅ͵𿡼­ »ìÆìº¸°Ú´Ù.

ÀÌ¹Ì ±¸ÇöµÈ ¼ÒÇÁÆ®¿þ¾î¿¡¼­ ÀÌ Àç¾ÓµéÀº ´Ù½Ã (¡º¸®ÆÑÅ丵¡»¿¡¼­ ¼Ò°³ÇÏ´Â) ¾ÇÃë(bad smell)·Î ºÐ·ùµÉ ¼ö ÀÖ´Ù. Áï, ¹«°üÇÑ º¯°æ¿¡ ÇÇÇØ¸¦ ´çÇѴٵ簡 ºÒÇÊ¿äÇÑ ¿ä¼Ò°¡ µû¶ó´Ù´Ò °æ¿ì SRP¸¦ Àû¿ëÇØ¾ß ÇÏ´Â »¡°£ºÒ(bad smell)·Î »ý°¢Çصµ ¹«¹æÇÏ´Ù. ±×·¸´Ù¸é SRP´Â ¾î¶² ±¸Á¶¸¦ Á¦¾ÈÇϰí ÀÖÀ»±î?

¸¶Æ¾ ÆÄ¿ï·¯ÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ÆÐÅÏÀ» ÀÌ¿ëÇÑ ÄÉÀ̽º ½ºÅ͵ð
Áö±ÝÀº DB¿¡ °üÇÑ ¿©·¯ ¿ì¼öÇÑ ÅøµéÀÌ Á¦°øµÇ°í DB¿Í °ü·ÃÇÑ ÁÁÀº ¼³°è¹æ½ÄÀÌ ¸¹ÀÌ Á¦¾ÈµÇ°í ÀÖ´Ù. ±×·¡¼­ °ú°Å¿¡ º¹ÀâÇϰí ÀåȲÇß´ø DB °ü·Ã ÄÚµåµéÀÌ ÇöÀç´Â ÀÌ·± Åø°ú ±â¹ýÀ» ÅëÇØ ¸¹ÀÌ ´Ü¼øÈ­, Àº´ÐµÇ°í ÀÖÁö¸¸ ÀϹÝÀûÀ¸·Î °³¹ßÀÚ°¡ °£´ÜÇÏ°Ô DB °ü·Ã Ŭ·¡½º¸¦ ¼³°èÇÒ ¶§´Â <±×¸² 2>°ú °°Àº ¹æ½ÄÀ» »ç¿ëÇÑ´Ù.

<±×¸² 2> ¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏ

ÀÌ PersonÀ̶õ Ŭ·¡½º´Â ¼¼ °¡Áö Çʵ带 °¡Áö°í ÀÖ°í ÀÌ Å¬·¡½ºÀÇ ÇàÀ§¸¦ ó¸®ÇÏ´Â ¸Þ½îµå(ºñÁî´Ï½º ·ÎÁ÷ ¸Þ½îµå)¿Í DB¸¦ Á¢±ÙÇϱâ À§ÇÑ CRUD(Create, Read, Update, Delete) ¸Þ½îµå¸¦ °¡Áö°í ÀÖ´Ù. PersonÀ̶õ °´Ã¼°¡ ºñÁî´Ï½º ·ÎÁ÷ ¸Þ½îµå¿¡ ÀÇÇØ »óź¯È­°¡ ÀϾÀ» °æ¿ì (Çʵ尡 CRUD µÆÀ» °æ¿ì) ÀûÀýÇÑ ½ÃÁ¡¿¡¼­ DB¿¡ ±× º¯È­µÈ °ªÀ» ¹Ý¿µÇØ¾ß Çϸç À̶§ DB Á¢±Ù ¸Þ½îµå¸¦ »ç¿ëÇÏ°Ô µÈ´Ù.

ÀÌ·¸°Ô ºñÁî´Ï½º ·ÎÁ÷ ¸Þ½îµå¿Í DB ó¸® ¸Þ½îµå¸¦ ºÐ¸®ÇÏ´Â ÀÌÀ¯´Â ÇϳªÀÇ ¸Þ½îµå¿¡ ºñÁî´Ï½º ·ÎÁ÷ ·çƾ°ú DB ó¸® ·çƾÀÌ È¥ÀçÇÏ°Ô µÆÀ» ¶§ ¸Þ½îµåÀÇ Ã³¸® ·çƾÀÇ º¹Àâµµ°¡ 2¹è ÀÌ»ó ÁõÆøµÇ±â ¶§¹®ÀÌ´Ù. ¸¸¾à ºÐ¸®½ÃŰÁö ¾Ê¾Ò´Ù¸é ÀÚ¹ÙÀÇ °æ¿ì Connection, PreparedStatement, ResultSet °°Àº JDBC Ŭ·¡½ºµéÀÌ ºñÁî´Ï½º ·ÎÁ÷°ú ¹«°üÇÏ°Ô Àüü ·çƾ »çÀÌ¿¡ µîÀåÇÏ°Ô µÈ´Ù. ¶ÇÇÑ ÀÌ·± ·çƾÀº ÇÊ¿¬ÀûÀ̰Եµ ·çÇÎÀ» Çϸç ResultSet¿¡¼­ ·¹Äڵ带 ÀÐ¾î ¿Í¼­ ¾î¶² 󸮸¦ ÇѴٵ簡 º¯¼ö¿¡ ´ëÀÔÇÏ´Â ·çƾÀÌ ÀÛ¼ºµÇ°Ô µÈ´Ù.

ÇÏÁö¸¸ ÀÌ·± ¸Þ½îµå´Â DB ó¸® ·çƾÀÌ º¯ÇÒ ¶§ ºñÁî´Ï½º Äڵ带 º¯°æÇØ¾ß ÇÏ¸ç ±× ¿ªÀÇ °æ¿ìµµ ¹ß»ýÇÏ°Ô µÈ´Ù. Áï ÇϳªÀÇ Ã¥ÀÓÀÌ º¯ÇÒ ¶§ ¿ª½Ã ÇÊ¿¬ÀûÀ̰Եµ ´Ù¸¥ Ã¥ÀÓµµ °°ÀÌ º¯ÇÏ°Ô µÈ´Ù. SRP À§¹ÝÀÇ µÎ ¹øÂ° Àç¾ÓÀÇ ´ëÇ¥ÀûÀÎ »ç·Ê°¡ ÀÌ·± °æ¿ìÀÌ´Ù.

ÀÌ·± °æ¿ì¸¦ À̹ø È£ÀÇ ¾ð¾î·Î Ç®ÀÌÇÏÀÚ¸é ÇϳªÀÇ ¸Þ½îµå¿¡ µÎ °¡ÁöÀÇ Ã¥ÀÓ(¡®ºñÁî´Ï½º ·ÎÁ÷¡¯°ú ¡®DB ·ÎÁ÷¡¯)ÀÌ °°ÀÌ ÀÖ¾ú±â ¶§¹®À̸ç À̸¦ ºÐ¸®ÇÏ¿© °ü¸®ÇÏ´Â ¼³°è°¡ <±×¸² 2>ÀÇ ¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏÀÌ´Ù. ¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏÀº ÀÌ·¸°Ô DB°ü·Ã 󸮸¦ µû·Î ¸Þ½îµå·Î ĸ½¶È­ÇÏ¸ç ºñÁî´Ï½º ·ÎÁ÷°ú DB ¸Þ½îµå¸¦ ºÐ¸®½ÃÅ´À¸·Î½á ±ò²ûÇÑ ¼³°è¿Í È¿°úÀûÀÎ °ü¸®¸¦ º¸ÀåÇÏ´Â ÀåÁ¡À» °®´Â´Ù.

¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏÀº ÇϳªÀÇ ¸Þ½îµå¿¡¼­ µÎ °¡Áö Ã¥ÀÓÀ» ºÐ¸®½ÃÄ×À» »ÓÀÌÁö ÇϳªÀÇ Å¬·¡½º¿¡¼­ µÎ °¡Áö Ã¥ÀÓÀ» ºÐ¸®½ÃŰÁö ¸øÇß´Ù. Áï <±×¸² 2>ÀÇ Person Ŭ·¡½º¿¡´Â ¿©ÀüÈ÷ Person °´Ã¼¿¡ ´ëÇÑ DB¿¡ Á¢±Ù Ã¥ÀÓ°ú PersonÀÇ ºñÁî´Ï½º ·ÎÁ÷ Ã¥ÀÓÀÌ È¥ÀçµÇ¾î ÀÖ´Ù. µ¥ÀÌÅÍ ¸ÊÆÛ ÆÐÅÏÀº ÀÌ µÎ Ã¥ÀÓÀ» ºÐ¸®½ÃŰ´Â ±¸Á¶¸¦ Á¦¾ÈÇϰí ÀÖ´Ù(<±×¸² 3> ÂüÁ¶).

<±×¸² 3> µ¥ÀÌÅÍ ¸ãÆÛ ÆÐÅÏ

»ç½Ç µ¥ÀÌÅÍ ¸ÊÆÛ ÆÐÅÏÀº ¿ì¸®°¡ ÈçÈ÷ DAO(Data Access Object)·Î ¾Ë°í ÀÖ´Â ÀÎÅÍÆäÀ̽º·Î ½ÇÇöÈ­µÇ¾î ÀÍÈ÷ »ç¿ëÇϰí ÀÖ´Â ÆÐÅÏÀÌ´Ù. ÈçÈ÷ ¡ºCore J2EE Patters¡»¿¡¼­ ¼Ò°³µÈ ¡®DAO ÆÐÅÏ¡¯À¸·Î DAO¸¦ ¾Ë°Ô µÈ ÀÚ¹Ù °³¹ßÀÚ´Â DAO °³³äÀÌ J2EE¿¡¼­ Á¦¾ÈµÈ °ÍÀ¸·Î ¾Ë°í ÀÖ´Ù. ÇÏÁö¸¸ DAO´Â ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼­ 4GL ¾ð¾î ¾ÆÅ°ÅØÃ³ ÀÛ¾÷ ´ç½Ã °´Ã¼´ÜÀ§ DB Á¢±Ù ÀÎÅÍÆäÀ̽º·Î Á¦¾ÈÇÑ DB Á¢±Ù °´Ã¼ ÀÎÅÍÆäÀ̽º´Ù.

µ¥ÀÌÅÍ ¸ÊÆÛ´Â Ŭ·¡½º°¡ ºñÁî´Ï½º ·ÎÁ÷¿¡ ÁýÁßÇÒ ¼ö ÀÖµµ·Ï DB Á¢±Ù ·çƾÀ» µ¥ÀÌÅÍ ¸ÊÆÛ Ŭ·¡½º·Î ºÐ¸®½ÃÅ´À¸·Î½á ¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏ¿¡¼­ ÇÊÀÚ°¡ Á¦±âÇß´ø ¡®ÇÑ ÁöºØ µÎ Ã¥ÀÓ¡¯ÀÇ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù. µ¥ÀÌÅÍ ¸ÊÆÛ ÆÐÅÏÀ» µû¸£¸é °´Ã¼¿Í µ¥ÀÌÅͺ£À̽º, ¸ÊÆÛ °£ÀÇ µ¶¸³¼ºÀÌ À¯ÁöµÇ¸ç, °´Ã¼¿Í DB °£¿¡ µ¥ÀÌÅ͸¦ À̵¿½ÃŰ´Â ¸ÊÆÛ ·¹À̾ Á¦°ø¹Þ°Ô µÈ´Ù. µû¶ó¼­ DB Å×À̺íÀÌ º¯Çϰųª DB Á¢±Ù ·çƾÀÌ º¯ÇÑ´Ù ÇØµµ Person Ŭ·¡½º´Â º¯°æÀÇ Ãæ°Ý¿¡¼­ ¾ÈÀüÇÏ´Ù.

¶ÇÇÑ µ¥ÀÌÅÍ ¸ÊÆÛ¸¦ »ç¿ëÇϸé Person °´Ã¼ÀÇ ÀÌ¿ë¹æ½Äµµ ÀÚ¿¬½º·´°Ô DB °ü·Ã ºÎºÐ°ú Person »ç¿ëÀ¸·Î ºÐ¸®µÈ´Ù. Áï ÃÖÃÊ DB¿¡ ÀúÀåµÈ Person °´Ã¼¸¦ »ý¼ºÇÒ °æ¿ì PersonDAO¿¡°Ô load¸¦ ¿äÃ»ÇØ DB¿¡¼­ PersonÀ» ¾ò¾î¿À°í, »ç¿ëÀÚ´Â ÀÚ¿¬½º·´°Ô Person °´Ã¼ÀÇ ºñÁî´Ï½º ·ÎÁ÷ ºÎºÐ¸¸ ÁýÁßÇÏ°Ô µÈ´Ù. ÀÌ Person °´Ã¼¸¦ º¯°æÇϰųª »èÁ¦¸¦ ¿øÇÒ °æ¿ì °¢°¢ PersonMapper¸¦ ÅëÇØ insert, update¸¦ ¿äûÇÏ¿© DB ÀÛ¾÷À» À§ÀÓÇÑ´Ù.

¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏÀÇ °æ¿ì ÀÌ µÎ °¡Áö Ã¥ÀÓ¿¡ °üÇÑ »ç¿ëÀÚÀÇ ÀÛ¾÷ÀÌ ¸í¹éÈ÷ ºÐ¸®µÇÁö ¸øÇߴµ¥ µ¥ÀÌÅÍ ¸ÊÆÛ ÆÐÅÏÀ» »ç¿ëÇϹǷΠ»ç¿ëÀÚÀÇ Person °´Ã¼¿¡ °üÇÑ Ã¥ÀÓÀ» »ç¿ëÇÏ´Â ¸ñÀû°ú ¹æ¹ýÀÌ ¸íÈ®ÇØÁø´Ù(Person °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽ºÀÎÁö, DB °ü·Ã ÀÛ¾÷ÀÎÁö).

ÀÌ·Î½á ¾×Æ¼ºê ¿ÀºêÁ§Æ®¿Í µ¥ÀÌÅÍ ¸ÊÆÛ ÆÐÅÏÀ¸·Î ÃÖÃÊÀÇ Person Ŭ·¡½ºÀÇ Ã¥ÀÓÀº ¸íÈ®ÇÏ°Ô ºÐ¸®µÉ ¼ö ÀÖ¾ú´Ù. ÇÏÁö¸¸ ¸¸¾à Person °´Ã¼ÀÇ »óź¯È­°¡ ¾ÐµµÀûÀ¸·Î ¸¹¾Æ¼­ DB Á¢±ÙÀÌ ºó¹øÇÏ°Ô ÀÌ·ïÁö°í ÀÌ ºó¹øÇÑ DB Á¢±Ù ºñ¿ëÀ¸·Î ÀÎÇØ ¼º´ÉÀå¾Ö°¡ ¿Ã °æ¿ì¸¦ »ó»óÇØ º¸ÀÚ. ¿ì¸®´Â ÀÌ¿Í °°Àº °æ¿ì DB Á¢±Ù ºñ¿ëÀ» °¨¼Ò½Ã۱â À§ÇØ ÀϹÝÀûÀ¸·Î ¸ÊÆÛ ·¹ÀÌ¾î µÚ¿¡ ij½Ì ·¹À̾ µÐ´Ù. Áï Person Ŭ·¡½º¿¡°Ô ¶Ç ÇϳªÀÇ ¡®Ä³½Ì¡¯À̶ó´Â Ã¥ÀÓÀÌ ´õÇØÁø´Ù.

°¡·É ¾Õ¼­ Á¦±âÇÑ ¹®Á¦Ã³·³ ¡®boby¡¯¶ó´Â Person °´Ã¼¸¦ n¹ø loadÇÑ´Ù°í ÇßÀ» ¶§ ±âÁ¸ ¹æ½ÄÀ¸·Î´Â n¹ø DB¿¡ SELECTÇØ¾ß ÇÑ´Ù. ÇÏÁö¸¸ SELECT´Â Çѹø¸¸À¸·Îµµ Á·ÇÏ´Ù. Çѹø loadµÈ °´Ã¼¸¦ Àç»ç¿ëÇÑ´Ù¸é DB Á¢±ÙÀº n-1¹ø »ý·«ÇÒ ¼ö ÀÖ´Ù.

¹®Á¦´Â ÀÌ Ä³½Ã¶õ Ã¥ÀÓÀ» ¾îµð¿¡ µÎ´À³ÄÀÏ °ÍÀÌ´Ù. ¾×Ƽºê ¿ÀºêÁ§Æ®Ã³·³ (°°Àº Ŭ·¡½ºÀÇ) ¸Þ½îµå ´ÜÀ§·Î Ŭ·¡½º ³»¿¡ ºÐ¸®½Ãų °ÍÀΰ¡, µ¥ÀÌÅÍ ¸ÊÆÛó·³ Ŭ·¡½º ´ÜÀ§·Î ¼­·Î ºÐ¸®½Ãų °ÍÀΰ¡, ¾Æ´Ï¸é ´õ Å« ÄÄÆ÷³ÍÆ®³ª ÆÐŰÁö·Î ºÐ¸®ÇÒ °ÍÀΰ¡ÀÇ ºÐ¸® ´ÜÀ§ °áÁ¤ÀÌ °¥µî¿ä¼Ò°¡ µÈ´Ù.

¿©±â¼­ ¼³°èÀÚ´Â ºÐ¸®ÀÇ ¡®Å©±â(granularity)¡¯¸¦ °í¹ÎÇÑ´Ù. ÀÛÀº ´ÜÀ§·Î ¼¶¼¼ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¹Ì¼¼´ÜÀ§(fine-grained)·Î ±¸ºÐÇÒ °ÍÀΰ¡, ¾Æ´Ï¸é ´Ü¼øÇÏÁö¸¸ ÀÔµµ°¡ Å«(COARSE-GRAINED) ´ÜÀ§·Î ±¸ºÐÇÒ °ÍÀΰ¡¿¡ ´ëÇØ¼­ ¸»ÀÌ´Ù. ÀÌ ¹®Á¦ÀÇ °æ¿ì ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¹®Á¦ ¿µ¿ªÀÌ °¢°¢ ¼­·Î ´Ù¸¥ ÄÉÀ̽º ¹ÙÀÌ ÄÉÀ̽º·Î ÀÌ·ç¾îÁö±â ¶§¹®¿¡ ¸í¹éÈ÷ ÀϰüÀûÀ¸·Î Àû¿ëÇÒ °¡À̵å¶óÀÎÀ» Á¦°øÇϱâ Èûµé´Ù.

ÇÏÁö¸¸ ±× ±âÁØÀº ´ë»ó¿¡ ´ëÇÑ º¹Àâµµ, Å©±â, ¿ëµµ°¡ µÈ´Ù. º¹Àâµµ°¡ ³ô°í ºÎÇǰ¡ Å«µ¥ ¹ÝÇØ ±× ¿ë¹ýÀÌ ´Ü¼øÇÏ´Ù¸é COARSE-GRAINED°¡ ÀûÇÕÇÏ´Ù. ¿ªÀ¸·Î º¹Àâµµ°¡ ³·°í ºÎÇǰ¡ ÀÛÀ¸¸ç ¿ë¹ýÀÌ ´Ù¾çÇÏ´Ù¸é fine-grained°¡ ÀûÇÕÇÏ´Ù.

<±×¸² 4> ½Äº°ÀÚ ¸Ê ÆÐÅÏ

¿©ÇÏÆ° ÀÌ °æ¿ì º¸Åë ½Äº°ÀÚ ¸Ê ÆÐÅÏÀÌ »ç¿ëµÇ´Âµ¥ ½Äº°ÀÚ ¸ÊÀº DB¸¦ ÅëÇØ ¾ò¾î¿Â °´Ã¼¸¦ ij½ÃÇÏ´Â ¸ÊÀÌ´Ù(<±×¸² 4>¿¡¼­ ½Äº°ÀÚ ¸ÊÀº Ŭ·¡½º Å©±â·Î ºÐ¸®Çϰí ÀÖ´Ù). Çѹø loadµÈ °´Ã¼´Â ½Äº°ÀÚ ¸Ê¿¡ µî·ÏµÇ°í µÎ ¹øÂ° load ¿äûºÎÅÍ DB¿¡ SELECTÇÒ ÇÊ¿ä ¾øÀÌ ½Äº°ÀÚ ¸Ê¿¡¼­ °¡Á®¿À¸é µÈ´Ù.

³ôÀº ÀÀÁýµµ, ³·Àº °áÇÕµµ  
¡®³ôÀº ÀÀÁýµµ, ³·Àº °áÇÕµµ(High Cohesion, Loose Coupling)¡¯ÀÇ ¿ø¸®´Â 1970³â´ë Larry Constantine°ú Edward YourdonÀÌ Á¤ÀÇÇß´ø ¾ÆÁÖ °íÀüÀûÀÎ ¿ø¸®ÀÌ´Ù. À̰ÍÀº ÇöÀç ¸ðµç ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛ °íÀ¯ÀÇ À¯Áöº¸¼ö¼º°ú ÀûÀÀ¼ºÀ» ÃøÁ¤ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀ¸·Î »ç¿ëµÇ°í ÀÖ´Ù. ¼ÒÇÁÆ®¿þ¾î µðÀÚÀλӸ¸ ¾Æ´Ï¶ó ¾ÆÅ°ÅØÃ³ Æò°¡¿¡µµ ÀÌ ¿ø¸®°¡ ±âÁØÀÌ µÇ´Âµ¥, ±× ÀÌÀ¯´Â ÀÌ ¿ø¸®ÀÇ Àû¿ë È¿°ú°¡ ¾ÆÁÖ ¸í¹éÇϱ⠶§¹®ÀÌ´Ù.

ÀÌ ¿ø¸®ÀÇ ¿¹¿Ü´Â °ÅÀÇ Ã£¾Æº¸±â Èûµé¸¸Å­ º¸Æí¼ºÀ» °¡Áö°í À־ ¸¶Ä¡ ¹°¸®ÇÐÀÇ ¿£Æ®·ÎÇÇ ¹ýĢó·³ Àý´ëÀûÀÎ ±â¹Ý¿ø¸®¸¦ Á¦½ÃÇÑ´Ù. ³·Àº ÀÀÁýµµ¸¦ °®´Â ±¸Á¶´Â º¯°æÀ̳ª, È®Àå ´Ü°è¿¡¼­ ¸¹Àº ºñ¿ëÀ» ÁöºÒÇØ¾ß ÇÏ¸ç ³ôÀº °áÇÕµµÀÇ °æ¿ìµµ ¸¶Âù°¡ÁöÀÌ´Ù.

ÀÀÁýµµ´Â ¡®ÇϳªÀÇ Å¬·¡½º°¡ ÇϳªÀÇ ±â´É(Ã¥ÀÓ)À» ¿ÂÀüÈ÷ ¼øµµ ³ô°Ô ´ã´çÇϰí ÀÖ´Â Á¤µµ¡¯¸¦ ÀǹÌÇϸç À̵éÀº ¼­·Î Á¶È­µÉ¼ö·Ï ±× ±¸Á¶´Â ´Ü¼øÇØÁø´Ù. ÀÀÁýµµ°¡ ³ôÀº µ¿³×¿¡¼­ ³»ºÎ °³Ã¼°¡ º¯ÇßÀ» ¶§ ´Ù¸¥ °³Ã¼¿¡ Ãæ°ÝÀ» ÁÖ´Â °ÍÀº ¿ÀÈ÷·Á ´ç¿¬ÇÑ Â¡ÈÄÀÌ´Ù. À̵éÀº ÇϳªÀÇ Ã¥ÀӾƷ¡ ¼­·Î À¯±âÀûÀÎ °ü°è¸¦ °®°í Àֱ⠶§¹®¿¡ ³»ºÎ °³Ã¼°¡ º¯ÇßÀ» ¶§ ´Ù¸¥ °³Ã¼ÀÇ º¯°æ È®·üÀÌ ³ô¾ÆÁø´Ù. ¸¶Ä¡ ¿¹»Û ºÎÃ÷¸¦ »ç¸é ºÎÃ÷¿¡ ¾î¿ï¸®´Â Ä¡¸¶¸¦ ÀÔ¾î¾ß ÇϵíÀÌ¡¦ ÀÀÁýµµÀÇ Á¾·ù´Â ´Ù¾çÇѵ¥ ´ÙÀ½Àº ±ÇÀåÇÒ ¸¸ÇÑ ¼ø±â´ÉÀû ÀÀÁý °ü°èµéÀÌ´Ù.

* ±â´ÉÀû ÀÀÁý(Functional Cohesion)
ÀϰüµÈ ±â´ÉµéÀÌ ÁýÇÕµÈ °æ¿ì¸¦ ¸»Çϸç <±×¸² 3>ÀÇ µ¥ÀÌÅÍ ¸ÊÆÛ´Â DB 󸮶ó´Â ±â´É Ç׸ñÀÇ ³ôÀº ÀÀÁý¼ºÀ» °®´Â´Ù.
* ¼øÂ÷Àû ÀÀÁý(Sequential Cohesion)
ÇÑ Å¬·¡½º ³»¿¡ µîÀåÇÏ´Â ÇϳªÀÇ ¼ÒÀÛ¾÷(¸Þ½îµå)ÀÇ °á°ú°¡ ´ÙÀ½ ¼ÒÀÛ¾÷(¸Þ½îµå)ÀÇ ÀÔ·ÂÀ¸·Î »ç¿ëµÇ´Â °ü°è(ÆÄÀÌÇÁ¶óÀÎ ¹æ½ÄÀÇ Ã³¸® üÀÎ °ü°è).
* ±³È¯Àû ÀÀÁý(Communicational Cohesion)
µ¿ÀÏÇÑ ÀԷ°ú Ãâ·Â ÀڷḦ Á¦°øÇÏ´Â ¸Þ½îµåµéÀÇ ÁýÇÕÀ» ¸»Çϸç, ÆÑÅ丮 Ŭ·¡½º´Â ÀüÇüÀûÀÎ ±³È¯Àû ÀÀÁýµµ°¡ ³ôÀº ÀÎÅÍÆäÀ̽º¸¦ °®´Â´Ù.
* ÀýÂ÷Àû ÀÀÁý(Procedural Cohesion)
¼ø¼­ÀûÀ¸·Î 󸮵Ǿî¾ß ÇÏ´Â ¼ÒÀÛ¾÷(¸Þ½îµå)µéÀÌ ±× ¼ø¼­¿¡ ÀÇÇØ Á¤·ÄµÇ´Â ÀÀÁý°ü°è
* ½Ã°£Àû ÀÀÁý(Temporal Cohesion)
½Ã°£ÀÇ È帧¿¡ µû¶ó ÀÛ¾÷ ¼ø¼­°¡ Á¤·ÄµÇ´Â ÀÀÁý°ü°è
* ³í¸®Àû ÀÀÁý(Logical Cohesion)
À¯»çÇÑ ¼º°ÝÀÇ °³Ã¼µéÀÌ ¸ð¿© ÀÖÀ» °æ¿ì¸¦ ¸»Çϸç java.io Ŭ·¡½ºµéÀÇ °æ¿ì°¡ ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù.

ÀÌ¿Í ¹ÝÇØ °áÇÕµµ´Â ¡®Å¬·¡½º°£ÀÇ ¼­·Î ´Ù¸¥ Ã¥ÀÓµéÀÌ ¾ôÇô À־ »óÈ£ÀÇÁ¸µµ°¡ ³ôÀº Á¤µµ¡¯¸¦ ÀǹÌÇϸç À̵éÀÌ Á¶Çյɼö·Ï Äڵ带 º¸±â°¡ ±«·Î¿öÁø´Ù. ÀÌÀ¯´Â ¼­·Î ´Ù¸¥ Ã¥ÀÓÀÌ »ê¸¸ÇÏ°í º¹ÀâÇÏ°Ô ¾ôÇôÀֱ⠶§¹®¿¡ °¡µ¶¼ºÀÌ ¶³¾îÁö°í À¯Áöº¸¼ö°¡ °ï¶õÇØÁö±â ¶§¹®ÀÌ´Ù. ÀÌÀ¯´Â ÇÊ¿ä ¾ø´Â ÀÇÁ¸¼º¿¡ ÀÖ´Ù. ¸¶Ä¡ Űº¸µåÀÇ ÀÚÆÇ Çϳª°¡ °íÀ峪µµ Űº¸µå Àüü¸¦ ¹Ù²ã¾ß ÇÏ´Â °Íó·³. ÇϳªÀÇ º¯°æÀÌ ¾öû³­ ¹ÎÆó¸¦ ¾ß±âÇÏ´Â °ü°èÀÌ´Ù. ´ÙÀ½Àº ¼ö¿ëÇÒ ¼ö ÀÖ´Â ¼öÁØÀÇ °áÇÕ °ü°èµéÀÌ´Ù.

* ÀÚ·á °áÇÕ(Data Coupling)
µÎ °³ ÀÌ»óÀÇ Å¬·¡½º°¡ ¸Å°³º¯¼ö¿¡ ÀÇÇØ¼­ °áÇÕ °ü°è¸¦ °¡Áö¹Ç·Î ³·Àº ¼öÁØÀÇ °áÇÕµµ·Î ¿¬°üµÇ´Â °æ¿ì
* ½ºÅÆÇÁ °áÇÕ(Stamp Coupling)
ÀÚ·á °áÇÕÀÇ °æ¿ì¿¡¼­ ¸Å°³º¯¼ö ÀϺθ¸À» »ç¿ëÇÏ´Â °æ¿ì
* Á¦¾î °áÇÕ (Control Coupling)
µÎ Ŭ·¡½º°£ÀÇ Á¦¾î À̵¿ÀÌ ¸Å°³º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© »ç¿ëµÇ´Â °æ¿ì·Î Ä¿¸Çµå ÆÐÅÏÀÌ ´ëÇ¥ÀûÀÎ »ç·ÊÀÌ´Ù(Áö³­ ¿¬Àç ±â»ç OCP ÂüÁ¶).

Áï ¼ø¼­´Â ¡®1. ¿ì¼± key¿¡ ÇØ´çÇÏ´Â °´Ã¼¸¦ ½Äº°ÀÚ ¸Ê¿¡¼­ ã´Â´Ù( 1.1. ¾ø´Ù¸é DB¿¡¼­ ¾ò¾î¿Â´Ù. 1.2. ½Äº°ÀÚ ¸Ê¿¡ µî·ÏÇÑ´Ù). 2. ¸®ÅÏÇÑ´Ù¡¯'ÀÇ ÀýÂ÷¸¦ ¹â´Â´Ù. ¸¶Ä¡ ½Ì±ÛÅæ ÆÐÅÏó·³ ÇÑ ¹øÀÇ Á¢±ÙÀ» º¸ÀåÇÔÀ¸·Î½á DB Á¢±Ù ºñ¿ëÀ» °¨¼Ò½ÃŲ´Ù.

ÀÌ¿Í ´õºÒ¾î ½ÇÁ¦ ¿£ÅÍÇÁ¶óÀÌÁî ¾ÖÇø®ÄÉÀÌ¼Ç ¼³°è ½Ã µ¥ÀÌÅÍ Á¢±ÙÀÇ µ¿±âÈ­, µ¿½Ã¼º ó¸®, Ç®¸µ, O/R ¸ÊÇÎ µîÀÇ ¡®Ã¥ÀÓ¡¯µéÀÌ µîÀåÇÏ°Ô µÇ´Âµ¥ ÀÌ °¢ Ã¥ÀÓµéÀ» ´ã´çÇϴ Ŭ·¡½º¸¦ ºÐ¸®½Ã۰í ÀÌµé °£ÀÇ °ü°è¸¦ Àß Á¤ÀÇÇÒ¼ö·Ï º¹Àâµµ´Â °¨¼ÒÇÏ°í ¾ÆÅ°ÅØÃ³´Â ±ú²ýÇØÁø´Ù.

ÇöÀç Á¦°øµÇ°í ÀÖ´Â DB °ü·Ã ÇÁ·¹ÀÓ¿öÅ©´Â ÀÌ Ã¥ÀÓµéÀ» ¸Ã´Â ±â´ÉÀ» ±¸ÇöÇÑ ³à¼®µéÀÌ´Ù. SRPÀÇ È¿°ú°¡ ¹Ù·Î ¿©±â¿¡ ÀÖ´Ù. SRP¸¦ Àû¿ëÇÏ¸é ¹«¾ùº¸´Ùµµ Ã¥ÀÓ ¿µ¿ªÀÌ È®½ÇÇØÁö±â ¶§¹®¿¡ ÇÑ Ã¥ÀÓÀÇ º¯°æ¿¡¼­ ´Ù¸¥ Ã¥ÀÓÀÇ º¯°æÀ¸·ÎÀÇ ¿¬¼âÀÛ¿ë¿¡¼­ ÀÚÀ¯·Î¿ï ¼ö ÀÖ´Ù.

ÇÏÁö¸¸ ¹«Á¶°Ç Ã¥ÀÓÀ» ºÐ¸®ÇÑ´Ù°í SRP°¡ Àû¿ëµÇ´Â °Ç ¾Æ´Ï´Ù. °¡·É µ¥ÀÌÅÍ ¸ÊÆÛ Ŭ·¡½ºÀÇ ¸Þ½îµåµéÀÌ °¢°¢ÀÇ insert, delete, update, load Ŭ·¡½º·Î ºÐ¸®µÆÀ» °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ. ¸¶Ä¡ ÀýÂ÷Àû ¾ð¾î¿¡¼­¿Í °°Àº ÇÔ¼ö ´ÜÀ§ÀÇ Å¬·¡½º°¡ µÉ °ÍÀÌ´Ù. °¢ ¸Þ½îµå ¿ªÇÒ¿¡ µû¸¥ Ã¥ÀÓµéÀÌ ºÐ¸®µÇ¾úÁö¸¸ ¼³°è´Â ÀåÈ²ÇØÁö°í °ü°è´Â º¹ÀâÇØÁø´Ù. ÇÏÁö¸¸ ÀÌ ¹®ÀåÀº Ʋ¸° ¹®ÀåÀÌ´Ù. µ¿ÀÏÇÑ Ã¥ÀÓÀ» °®´Â ¿©·¯ ¸Þ½îµåµéÀÌ ºÐ¸®µÈ °ÍÀÌ´Ù. Áï ºÐ¸®ÀÇ ±âÁØÀº Ã¥ÀÓÀÌ¸ç ºÐ¸®ÀÇ ¸ñÀûÀº º¹Àâµµ °¨¼Ò¿¡ ÀÖ´Ù.

¹Ý¸é °¢°¢ ºÐ¸®µÈ insert, delete, update, load Ŭ·¡½ºµéÀÌ ÀÖ´Ù°í ÇßÀ» ¶§ À̵éÀº ÇÑ Ã¥ÀӾƷ¡ º´ÇյǾî¾ß ÇÒ °ÍÀÌ´Ù. ¿Ö³ÄÇϸé À̵éÀº º´Çյɼö·Ï °ü°è´Â ´Ü¼øÇØÁö°í ¼³°è°¡ Àϸñ¿ä¿¬ÇØÁö±â ¶§¹®ÀÌ´Ù. ±×·¸´Ù¸é ÀÌ ¼­·Î »ó¹ÝµÈ °ü°è, Áï ¾î¶² °æ¿ì´Â ºÐ¸®¸¦ ÇÒ¼ö·Ï ¼³°è°¡ ±ú²ýÇØÁö°í, ¹Ý´ë·Î ¾î¶² °æ¿ì´Â º´ÇÕÀ» ÇÒ¼ö·Ï ¼³°è°¡ ±ú²ýÇØÁö´Âµ¥ ÀÌ Â÷ÀÌ´Â ¹«¾ùÀϱî?

°¢ °³Ã¼ °£ÀÇ ÀÀÁý·ÂÀÌ ÀÖ´Ù¸é º´ÇÕÀÌ ¼øÀÛ¿ëÀÇ ¼ö´ÜÀÌ µÇ°í °áÇÕ·ÂÀÌ ÀÖ´Ù¸é ºÐ¸®°¡ ¼øÀÛ¿ëÀÇ ¼ö´ÜÀÌ µÈ´Ù. ÀÀÁý·ÂÀÌ ÀÖ´Ù´Â °ÍÀº ¿©·¯ °³Ã¼°¡ °°Àº Ã¥ÀӾƷ¡ ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÏ¸ç °áÇÕ·ÂÀÌ ÀÖ´Ù´Â °ÍÀº ÇÑ °³Ã¼°¡ ¿©·¯ Ã¥ÀÓÀ» °®°í ÀÖ´Ù´Â Àǹ̰¡ µÈ´Ù. µû¶ó¼­ ÀÀÁýµµ´Â ³ôÀ»¼ö·Ï, °áÇÕµµ´Â ³·À»¼ö·Ï ÁÁÀº ¼³°è ǰÁúÀ» º¸Àå¹Þ´Â´Ù.

SRP À§¹ÝÀÇ ¾ÇÃëµé
SRP´Â ÇϳªÀÇ °´Ã¼°¡ ÇϳªÀÇ Ã¥ÀÓ, Áï ÇϳªÀÇ ¡®º¯°æÀÇ ÀÌÀ¯¡¯¸¸ Áö´Ï°Ô ÇÔÀ¸·Î½á ¼³°è¸¦ ´Ü¼øÇÏ°Ô ÇÏ°í º¯È­¿¡ ±â¹ÎÇÏ°Ô ¸¸µé¾î ÁØ´Ù. ÇÊÀÚ´Â ¼­µÎ¿¡ SRP À§¹ÝÇßÀ» ¶§ Àç¾ÓÀ» ¾ÇÃë·Îµµ ¼Ò°³Çߴµ¥ À̹ø¿¡ ¼Ò°³ÇÒ ¾ÇÃëµéÀº ¡º¸®ÆÑÅ丵¡»¿¡¼­ ±¸Ã¼È­µÈ ¾ÇÃëµéÀÌ´Ù. SRP À§¹ÝÀÇ ¾ÇÃë´Â ¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ(divergent change)¡¯¿Í ¡®»êźÃÑ ¼ö¼ú(shotgun surgery)¡¯À» µé ¼ö ÀÖ´Ù.

¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ
¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æÀº ÇÑ Å¬·¡½º¸¦ ¿©·¯ °¡Áö ´Ù¸¥ ÀÌÀ¯·Î °íÄ¥ Çʿ䰡 ÀÖÀ» ¶§ ¹ß»ýÇÑ´Ù. Áï, ÇϳªÀÇ Å¬·¡½º¿¡ ¿©·¯ Ã¥ÀÓÀÌ È¥ÀçÇϰí À־ ÇϳªÀÇ Ã¥ÀÓÀÇ º¯È­°¡ ´Ù¸¥ Ã¥ÀÓ¿¡°Ô ¿µÇâÀ» ÁØ´Ù. ±×¸®°í ÀÌ Ã¥ÀÓÀÌ µÎ °³º¸´Ù ÈξÀ ¸¹Àº ¿©·¯ °³·Î È¥ÀçµÈ´Ù¸é ÀÌ Å¬·¡½º´Â ½É°¢ÇÑ °í¹®°üÀÌ µÈ´Ù. ´õ¿íÀÌ ÀÌ ±¸Á¶´Â ´õ ±«·Î¿î °æ¿ì·Î ½ÉÈ­µÉ ¼ö ÀÖ´Ù.

<±×¸² 1>ÀÇ ¡®Àܰí Ŭ·¡½º¡¯¿¡¼­ ¡®È¯À² °è»ê¡¯À̶õ Ã¥ÀÓÀÇ º¯È­·Î ´Ù¸¥ ±Ý¾× °ü·Ã Ã¥ÀÓµéÀÇ ÀÎÅÍÆäÀ̽º±îÁö Ä®À» ´ë¾ß ÇÒ »óȲ¿¡ À̸¥´Ù¸é ÀÛÀº ¡®È¯À² °è»ê¡¯ÀÇ º¯°æÀÌ ÀüÇô ¹«°üÇÑ ±Ý¾× °ü·Ã ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÏ´Â ¸ðµç »ç¿ëÀÚ Å¬·¡½º±îÁö º¯°æÇØÁà¾ß ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·± À§Çè »óȲÀ» ¼Ò°³ÇÑ °ÍÀÌ ¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯À̶ó´Â ³ª»Û ³¿»õÀÌ´Ù.

¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯À» ÇØ°áÇÏ´Â ¹æ¹ýÀº °æ¿ì¿¡ µû¶ó ´Ù¸£´Ù. ´ÙÀ½Àº ¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æÀ» ÇØ°áÇÏ´Â ¸®ÆÑÅ丵 ±â¹ýÀÌ´Ù.

¡ß Extract Class´Â È¥ÀçµÈ °¢ Ã¥ÀÓÀ» °¢°¢ÀÇ °³º° Ŭ·¡½º·Î ºÐÇÒÇÏ¿© Ŭ·¡½º ´ç ÇϳªÀÇ Ã¥ÀÓ¸¸À» ¸Ãµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¾×Ƽºê ¿ÀºêÁ§Æ® ÆÐÅÏ¿¡¼­ µ¥ÀÌÅÍ ¸ÊÆÛ ÆÐÅÏÀ¸·ÎÀÇ ÁøÈ­°¡ ´ëÇ¥ÀûÀÎ »ç·Ê°¡ µÈ´Ù. ¿©±â¼­ °ü°ÇÀº Ã¥ÀÓ¸¸ ºÐ¸®ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ºÐ¸®µÈ µÎ Ŭ·¡½º°£ÀÇ °ü°èÀÇ º¹Àâµµ¸¦ ÁÙÀ̵µ·Ï ¼³°èÇÏ´Â °ÍÀÌ´Ù.

¡ß ¸¸¾à Extract ClassµÈ °¢°¢ÀÇ Å¬·¡½ºµéÀÌ À¯»çÇÏ°í ºñ½ÁÇÑ Ã¥ÀÓÀ» Áߺ¹Çؼ­ °®°í ÀÖ´Ù¸é Extract Superclass¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Extract ClassµÈ °¢°¢ÀÇ Å¬·¡½ºµéÀÇ °øÀ¯µÇ´Â ¿ä¼Ò¸¦ ºÎ¸ð Ŭ·¡½º·Î Á¤ÀÇÇÏ¿© ºÎ¸ð Ŭ·¡½º¿¡ À§ÀÓÇÏ´Â ±â¹ýÀÌ´Ù. µû¶ó¼­ °¢°¢ÀÇ Extract ClassµéÀÇ À¯»çÇÑ Ã¥ÀÓµéÀº ºÎ¸ð¿¡°Ô ¸í¹éÈ÷ À§ÀÓÇÏ°í ´Ù¸¥ Ã¥ÀÓµéÀº °¢ÀÚ¿¡°Ô Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.


¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ  
À±¼ºÁØ, Á¶Àç¹Ú ´ÔÀÌ ¹ø¿ªÇÏ°í ´ëû¹Ìµð¾î¿¡¼­ Ãâ°£µÈ ¸¶Æ¾ ÆÄ¿ï·¯ÀÇ¡º¸®ÆÑÅ丵¡» Çѱ¹¾îÆÇÀ» º¸¸é ¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ(divergent change)ÀÌ ¡®È®»êÀû º¯°æ¡¯À̶ó µÇ¾î ÀÖ´Ù. ÇÏÁö¸¸ È®»êÀû º¯°æÀ̶ó ÇßÀ» ¶§´Â º¯°æÀÌ ´Ù¸¥ Ŭ·¡½º·Î È®»êµÈ´Ù´Â ´À³¦ÀÌ °­Çϰí, Ŭ·¡½º°¡ ¿©·¯ º¯°æ ¿øÀο¡ ÀÇÇØ º¯°æµÈ´Ù´Â ´À³¦ÀÌ ¾ð¶æ ¿ÀÁö ¾Ê´Â´Ù.

±×·¡¼­ À̹ø ±Û¿¡¼­´Â divergent¸¦ ¼ö·Å(convergent)¿¡ ´ëÀÀÇÏ´Â Àǹ̰¡ ¾Æ´Ñ ¡®´Ù¸¥¡¯ÀÇ ¶æÀ¸·Î ¼¼±â°í divergent change¸¦ ¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯À̶ó ÇϰڴÙ. They hold divergent opinions on controversial issues like abortion(±×µéÀº ³«ÅÂ¿Í °°Àº ³í¶õÀÌ µÇ´Â À̽´¿¡ ´ëÇØ ¼­·Î ´Ù¸¥ ÀǰßÀ» ÁÖÀåÇß´Ù)¿¡¼­ÀÇ divergent ¿ë·Ê¸¦ Âü°íÇÏ¸é µÉ µíÇÏ´Ù. ÈçÈ÷µé ¡®È®»êÀû º¯°æ¡¯°ú µÚ¿¡ ¼Ò°³ÇÒ ¡®»êźÃÑ ¼ö¼ú¡¯À» Àß ±¸ºÐÇÏÁö ¸øÇϴµ¥ ¡®È®»êÀû º¯°æ¡¯À» ¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯À¸·Î ¹Ù²Ù¾î ÀÌÇØÇϸé ÀÌ µÑÀÇ ±¸ºÐÀÌ Á¶±Ý ´õ Á÷°üÀûÀ¸·Î ´Ù°¡¿Ã °ÍÀÌ´Ù.

»êźÃÑ ¼ö¼ú
»êźÃÑÀ» ¹ß»çÇϸé ÇϳªÀÇ ÅºÈ¯ÀÌ ºÎ¼­Áö¸é¼­ ¿©·¯ °³ÀÇ ÅºÈ¯À¸·Î È®»êµÇ¾î ¹ß»çµÈ´Ù. µû¶ó¼­ (»ó»óÇϱ⵵ ½ÈÁö¸¸) »êźÃÑÀ» ¸ÂÀº ´ë»óÀÇ ÃÑ»óÀº ¿Â¸ö Àüü¿¡ ÆÛÁö°Ô µÈ´Ù. ¸¸¾à ÀÌ·± ȯÀÚ¸¦ ¼ö¼úÇÏ´Â ÀÇ»ç´Â ¸¶Ä¡ ¼ö½Ê ¹ßÀÇ ÃÑÀ» ¸ÂÀº ȯÀÚ¸¦ ¼ö¼úÇÏ´Â °Íó·³ Èûµé °ÍÀÌ´Ù.

¡®»êźÃÑ ¼ö¼ú(shotgun surgery)¡¯Àº ¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯°ú ºñ½ÁÇÑ µí Çϸ鼭µµ Á¤ ¹Ý´ëÀÇ ³»¿ëÀ» °®´Â´Ù. ¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯ÀÌ ÇϳªÀÇ Å¬·¡½º°¡ ¿©·¯ º¯°æ ¿øÀÎ(Ã¥ÀÓ)À» Áö´Ï´Â ¹Ý¸é, »êźÃÑ ¼ö¼úÀº ¾î¶² º¯°æÀÌ ÀÖÀ» ¶§ ¿©·¯ Ŭ·¡½º¸¦ ¼öÁ¤ÇØ¾ß ÇÏ´Â Áõ»óÀÌ´Ù. Áï ¾î¶² º¯°æÀÇ ´ë»óÀÌ ¿©·¯ °÷¿¡ ºÐÆ÷µÇ¾î ¸¶Ä¡ »êźÃÑ ÃÑ»ó ȯÀÚ¸¦ ¼ö¼úÇØ¾ß ÇÏ´Â °Í °°Àº ¸¹Àº ³ëµ¿ºñ¿ëÀÌ µû¸¥´Ù.

¡®»êźÃÑ ¼ö¼ú¡¯ÀÌ ±«·Î¿î ÀÌÀ¯´Â ´ÜÁö ¼ö¼ú ºÎÀ§°¡ ¸¹´Ù´Â °Í¸¸ÀÌ ¾Æ´Ï´Ù. ÀÌ ¼ö¼úÀ» ÇßÀ½¿¡µµ ºÒ±¸Çϰí Ȥ½Ã Ä¡·áÇÏÁö ¸øÇÑ »óó°¡ Á¸ÀçÇÒ ¼ö ÀÖ´Ù´Â °¡´É¼ºÀÌ ¡®»êźÃÑ ¼ö¼ú¡¯ÀÇ ´õ Å« À§Ç輺ÀÌ´Ù. °¡·É ÇϳªÀÇ Å×À̺íÀ» Á¶ÀÛÇÏ´Â DB 󸮹®ÀÌ ¾ÖÇø®ÄÉÀÌ¼Ç Àü¿ª¿¡ ÆÛÁ® ÀÖ´Â »óȲ¿¡¼­ DB Å×À̺íÀÇ ±¸Á¶°¡ ¹Ù²î°Ô µÆÀ» °æ¿ì¿¡ ¹ß»ýÇÏ´Â Àç¾Ó°ú °°´Ù. ¼ö¼úµµ °íµÇÁö¸¸ ¸ðµç ȯºÎ¸¦ ã¾Æ¾ß ÇÏ´Â ÁýÁ߷°ú ±äÀå°¨ÀÌ °³¹ßÀÚ¸¦ ´õ¿í Èûµé°Ô ÇÑ´Ù.

<±×¸² 5> »êźÃÑ ¼ö¼ú

»êźÃÑ ¼ö¼úÀ̶õ ¾ÇÃë´Â ÇϳªÀÇ Ã¥ÀÓÀÌ ¿©·¯ Ŭ·¡½º¿¡ ºÐ»êµÇ¾î Àֱ⠶§¹®¿¡ ¹ß»ýÇÑ´Ù. ÇÑ Å¬·¡½º°¡ ³Ê¹« ¸¹Àº Ã¥ÀÓÀ» ¸Ã°í À־ °ï¶õÇÏÁö¸¸, Ã¥ÀÓÀ» ½Äº°ÇÏÁö ¸øÇØ À̸¦ ´ã´çÇÒ Å¬·¡½º¸¦ ¸¸µéÁö ¾Ê°í ¿©·¯ Ŭ·¡½º¿¡ Èð»Ñ·Á ³õ´Â °Í ¶ÇÇÑ ¹®Á¦°¡ ÀÖ´Ù. ÀÌ´Â º¸Åë ÇÁ·Î±×·¥ÀÇ Àüü Ã¥ÀÓÀ» ¿Ã¹Ù·Î ºÐ´ãÇÏÁö ¸øÇؼ­ ¹ß»ýÇÏ°Ô µÈ´Ù.

ÀÌ ¾ÇÃë´Â Move Field¿Í Move Method¸¦ ÅëÇØ Ã¥ÀÓÀ» ±âÁ¸ÀÇ ¾î¶² Ŭ·¡½º·Î ¸ðÀ¸°Å³ª, ÀÌ·²¸¸ÇÑ Å¬·¡½º°¡ ¾ø´Ù¸é »õ·Î¿î Ŭ·¡½º¸¦ ¸¸µé¾î ÇØ°áÇÒ ¼ö ÀÖ´Ù. Áï »ê¹ßÀûÀ¸·Î ¿©·¯ °÷¿¡ ºÐÆ÷µÈ Ã¥ÀÓµéÀ» ÇÑ °÷¿¡ ¸ðÀ¸¸é¼­ ¼³°è¸¦ ±ú²ýÇÏ°Ô ÇÑ´Ù. Áï ÀÀÁý¼ºÀ» ³ôÀÌ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù.

»êźÃÑ ¼ö¼úÀÇ ³¿»õ´Â ƯÈ÷ ¼³Á¤ Á¤º¸(configuration information), ·Î±ë(logging), DB 󸮿¡¼­ ¹ß»ýÇϱ⠽¬¿îµ¥ À̵éÀ» ´Ù·ê ¶§´Â Ç×»ó »êźÃÑ ¼ö¼úÀÇ ¾ÇÃ븦 °æ°èÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ÇÑ °÷¿¡¼­ °ü¸®ÇÒ Çʿ䰡 ÀÖ´Â ¼³Á¤ Á¤º¸¸¦ ¿©·¯ Ŭ·¡½º¿¡¼­ ³ª´©¾î ó¸®Çϰí ÀÖ´Ù¸é ÀÌ´Â »êźÃÑ ¼ö¼úÀ» ÇÒ ¼ö ÀÖ´Â ÁÁÀº º»º¸±â°¡ µÈ´Ù.

À̸¦Å×¸é ¾²·¹µå, Ä¿³Ø¼Ç, ¿ÀºêÁ§Æ® Ç®ÀÇ Å©±â °ªÀ̳ª DB, ¼­¹öÀÇ ÁÖ¼Ò Á¤º¸µéÀ» °¢°¢ÀÇ Å¬·¡½º¿¡ ÀÚüÀûÀ¸·Î °ü¸®Çϰí ÀÖ´Ù¸é À̵éÀ» ¼³Á¤ ÆÄÀÏÀ̳ª ¼³Á¤ °ü¸®ÀÚ¿¡°Ô Move FieldÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. ´õ ³ª¾Æ°¡ Ç÷¯±×ÀÎÀ» µµÀÔÇØ ¼³Á¤ Á¤º¸¸¦ ÅëÇØ µ¿ÀûÀ¸·Î ÇàÀ§ º¯È­¸¦ ÅëÁ¦(Enable Configurable Behavior with Plugin)ÇÏ´Â °Íµµ »ý°¢ÇØ º¼¸¸ÇÏ´Ù. ¶ÇÇÑ XML 󸮳ª ÇÁ·ÎÅäÄÝ ÇØ¼®À» ´ã´çÇÏ´Â ¸Þ½îµå°¡ ¿©·¯ °÷¿¡ ºÐÆ÷µÇ¾ú´Ù¸é °¢°¢ÀÇ À¯Æ¿¼º Ŭ·¡½º·Î Move MethodÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

¡®¿©·¯ ¿øÀο¡ ÀÇÇÑ º¯°æ¡¯°ú ¡®»êźÃÑ ¼ö¼ú¡¯À̶õ ¾ÇÃ븦 SRP¸¦ ¾î±ä ½ÅÈ£·Î ¿©±â°í Á¦°ÅÇÑ´Ù¸é º¯°æÀÌ ¿©·¯ °÷À¸·Î È®»êµÇÁö ¾ÊÀ» »Ó ¾Æ´Ï¶ó Ã¥ÀÓÀ» ÀûÀýÈ÷ ºÐ¹èÇÔÀ¸·Î ÀÎÇØ ÄÚµåÀÇ °¡µ¶¼º Çâ»ó, À¯Áöº¸¼ö ¿ëÀ̶ó´Â ÀÌÁ¡±îÁö ´©¸± ¼ö ÀÖ´Ù. ¶ÇÇÑ ÀûÀýÇÑ Ã¥ÀÓ ºÐ¹è´Â °´Ã¼ÁöÇâ ¿ø¸®µéÀÇ ´ëÀüÁ¦ °ÝÀÎ OCP»Ó ¾Æ´Ï¶ó ´Ù¸¥ ¿ø¸®µéÀ» Àû¿ëÇÏ´Â ±âÃʰ¡ µÇ¾îÁØ´Ù.

ÇÙ½É ¸®ÆÑÅ丵 ±â¹ý°ú Ã¥ÀÓ ºÐ¹è  
¸®ÆÑÅ丵¿¡¼­ ¼Ò°³ÇÏ´Â ´ëºÎºÐÀÇ ³¿»õµé(ÄÚ¸àÆ®, ºñ´ëÇÑ Å¬·¡½º¿¡¼­ ½ÃÀÛÇØ »êźÃÑ ¼ö¼ú±îÁö)Àº °´Ã¼°£ÀÇ Ã¥ÀÓ ºÐ¹è¿Í Á÷°£Á¢ÀûÀ¸·Î °ü·ÃÀÌ Àִµ¥, Ç×»ó Äڵ带 ÃÖ»óÀ¸·Î À¯ÁöÇÑ´Ù´Â ¸®ÆÑÅ丵ÀÇ ±Ùº» Á¤½ÅÀº °ð Ç×»ó °´Ã¼µéÀÇ Ã¥ÀÓÀ» ÃÖ»óÀÇ »óÅ·ΠºÐ¹èÇÑ´Ù´Â °ÍÀ̱⠶§¹®ÀÌ´Ù. ±×¸®°í ´ÙÀ½ÀÇ ¸®ÆÑÅ丵 ±â¹ýµéÀº ¡®°´Ã¼µéÀÇ Ã¥ÀÓÀ» ÃÖ»óÀÇ »óÅ·ΠºÐ¹è¡¯ÇÏ´Â °¡Àå ±âº»ÀÌ µÈ´Ù.

Extract Class(6)

Move Method(6)

Extract Method(4)

Move Field(4)

À̵éÀº °¡Àå ¸¹Àº ³¿»õ¸¦ ÇØ°áÇÏ´Â ¸®ÆÑÅ丵 ±â¹ýµéÀ» Á¤¸®ÇÑ °ÍÀ¸·Î °ýÈ£ ¾ÈÀÇ ¼ýÀÚ´Â ³¿»õ¸¦ ÇØ°áÇÏ´Â µ¥ »ç¿ëµÈ ºóµµ¼öÀÌ´Ù. °í±Þ½º·´°í ¿ì¾ÆÇÑ °í±Þ ¸®ÆÑÅ丵 ±â¹ýÀ̳ª ºò ¸®ÆÑÅ丵 ±â¹ýÀº ¶§¶§·Î À¯¿ëÇÏÁö¸¸, À̵éÀº Ç×»ó À¯¿ëÇÏ´Ù.

ÇÊÀÚ´Â ¾ÕÀÇ 4°³ÀÇ ¸®½ºÆ®¿¡ ¡®Rename *¡¯¸¦ Ãß°¡ÇÏ¿© 5°³ÀÇ ¸®ÆÑÅ丵 ±â¹ýÀ» °¡Àå ´Ü¼øÇϸ鼭µµ Áß¿äÇÑ ÇÙ½É ¸®ÆÑÅ丵 ±â¹ýÀ¸·Î ¿©±ä´Ù. ÆÄ¿ï·¯ÀÇ Ã¥¿¡´Â Rename Method¸¸ÀÌ ¼ö·ÏµÇ¾î ÀÖÁö¸¸, Rename Class, Rename Field, Rename Parameter ¿ª½Ã ±²ÀåÈ÷ ÀÚÁÖ ¾²ÀÌ¸ç ½ÇÁ¦ ÀÌŬ¸³½ºÀÇ ¸®ÆÑÅ丵 ±â´ÉÀ» º¸¸é ÀÌ ¸ðµÎ°¡ Çϳª·Î RenameÀ̶ó µÇ¾î ÀÖ´Ù. ±×¸®°í °æÇè¿¡ ºñÃß¾î º¸¸é ¾î´À ¸®ÆÑÅ丵 ±â´Éº¸´Ùµµ RenameÀ» ÀÚÁÖ »ç¿ëÇÏ°Ô µÈ´Ù. ¿Ã¹Ù¸¥ Ŭ·¡½º À̸§Àº ÇØ´ç Ŭ·¡½ºÀÇ Ã¥ÀÓÀ» ³ªÅ¸³¾ ¼ö ÀÖ´Â °¡Àå ÁÁÀº ¹æ¹ýÀÌ´Ù.

ÄÚµùÀ» Çϸ鼭 Űº¸µå ¾Õ¿¡ A4 ¿ëÁö¸¦ ³õ°í ¼ö½Ã·Î CRC Ä«µå, Ŭ·¡½º ´ÙÀ̾î±×·¥, ½ÃÄö½º ´ÙÀ̾î±×·¥À» °£·«È÷ ±×·Áº¸¸ç °´Ã¼µé °£ÀÇ Ã¥ÀÓÀ» Á¡°ËÇØ º¸°í, ¸®ÆÑÅ丵À» ¼öÇàÇÏ´Â °ÍÀº ºÐ¸í ÁÁÀº SRP¸¦ ¾î±â´Â Äڵ带 »çÀü¿¡ ¾î´À Á¤µµ ¹æÁöÇÒ ¼ö ÀÖ´Â ÁÁÀº ´ëºñÃ¥ÀÌ µÇ¾îÁÙ °ÍÀÌ´Ù. ÇÒ ¼ö¸¸ ÀÖ´Ù¸é, ¡®»çÈÄ ´ë󡯺¸´Ù´Â ¡®»çÀü ¿¹¹æ¡¯ÀÌ ´õ ÁÁÀº ÇØ°áÃ¥ÀÌÁö ¾ÊÀº°¡?

À§´ëÇÔº¸´Ù ´Ü¼øÇÔÀº ¾ø´Ù
´«µ¿ÀÚÀÇ ÃÊÁ¡ÀÌ ºÐ»êµÇ¸é ³­½Ã°¡ µÇ°í ¸¶À½À̳ª Á¤½ÅÀÇ ÃÊÁ¡ÀÌ Á¤»óÀ» »ó½ÇÇÏ°í ºÐ»êÇÏ´Â »óŰ¡ Áö¼ÓµÇ¸é Á¤½ÅÂø¶õ ȤÀº Á¤½Å ºÐ¿­ÀÌ ¿Â´Ù. ¸¶Âù°¡Áö·Î Ŭ·¡½º°¡ ÇϳªÀÇ Ã¥ÀÓ¿¡ ÁýÁßÇÏÁö ¸øÇÑ Ã¤ À̰ÍÀú°Í µÎ¸®¹ø°Å¸®´Â ¿©¿ì¿Í °°°í, ÀÌ·¯ÇÑ Å¬·¡½ºµéÀÌ ´©ÀûµÈ´Ù¸é ÇÁ·Î±×·¥Àº Á¡Á¡ À¯Áöº¸¼ö, º¯°æ¿¡ ´ëÀÀÇϱ⠾î·Á¿öÁø´Ù. ¾î¼¸é ¡®Åö¡¯Çϰí À߸ø °Çµå¸®¸é Á¤½ÅÂø¶õÀÌ ¿ÃÁöµµ ¸ð¸¦ ÀÏÀÌ´Ù.

¼ÒÇÁÆ®¿þ¾î´Â Ç×»ó º¯°æÀ» ÀüÁ¦ÇÑ´Ù. µû¶ó¼­ º¯°æ¿¡ ¹Î°¨ÇÏ°Ô ¹ÝÀÀÇÏÁö ¸øÇÏ´Â ¼³°è´Â ÇÁ·ÎÁ§Æ®¸¦ Èûµé°Ô ÇÑ´Ù. ¡°¼ÒÇÁÆ®¿þ¾î ¼³°è¿¡´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ÇÑ °¡Áö´Â ºÐ¸íÈ÷ °áÇÔÀÌ ¾øµµ·Ï ´Ü¼øÇÏ°Ô ¼³°èÇÏ´Â °ÍÀÌ°í ´Ù¸¥ ÇÑ °¡Áö´Â ºÐ¸íÇÑ °áÇÔÀÌ ¾øµµ·Ï °¡´ÉÇÏ¸é º¹ÀâÇÏ°Ô ¼³°èÇÏ´Â °ÍÀÌ´Ù"¶ó´Â ¸í¾ðÀÌ ÀÖ´Ù.

SRP¸¦ Àû¿ëÇϸé Ŭ·¡½ºÀÇ ¼ýÀÚ°¡ ´Ã ¼ö´Â ÀÖ´Ù. ÇÏÁö¸¸ Ŭ·¡½º ¼ýÀÚÀÇ Áõ°¡°¡ ÇÁ·Î±×·¥ÀÇ º¹Àâµµ Áõ°¡¿Í ºñ·ÊÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¿ÀÈ÷·Á SRP¸¦ Àß µû¸£´Â ÇÁ·Î±×·¥Àº ÀûÀýÇÑ Ã¥ÀÓ ºÐ¹è·Î ÀÎÇØ Ŭ·¡½º ¼ýÀÚ¿Í ÇÁ·Î±×·¥ÀÇ º¹Àâµµ°¡ ¹Ýºñ·ÊÇÏ´Â °æÇâÀÌ ÀÖ´Ù°íµµ ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

À§´ëÇÔº¸´Ù ´Ü¼øÇÔÀº ¾ø´Ù. ½ÇÁ¦·Î ´Ü¼øÇÑ °ÍÀÌ À§´ëÇÑ °ÍÀÌ´Ù. ±×¸®°í ÀÌ ´Ü¼øÇÔÀÇ Á߽ɿ¡´Â ´ÜÀÏ Ã¥ÀÓÀÇ ¿øÄ¢ÀÌ ÀÖ´Ù.@

* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
°ü·Ã±â»ç
[UML Á¦´ë·Î ¾Ë±â] ¨ç °¡´É¼º¡¤È®À强 ǰ°í µîÀåÇÑ UML 2.0
³»°Ô µü ¸Â´Â SW °³¹ß ÇÁ·¹ÀÓ¿öÅ©, ¾îµð¿¡ ÀÖÀ»±î?
ÁÖ¸ñ¹Þ´Â SW °³¹ß¹æ¹ý·Ð¡¸ºñ±³ ºÐ¼®¡¹
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
µ¶ÀÚÀǰß(Talkback)
¾Õ¼± Àǰ߿¡ ´ëÇØ..
ȫȯ¹Î[ 2006/02/19 ]  
"´ÜÀÏÃ¥ÀÓÀÇ À§Ç輺¿¡ ´ëÇØ."¶ó´Â µ¶ÀÚÀǰ߿¡ ´ëÇÑ ÀúÀÇ »ý°¢ÀÔ´Ï´Ù.
ÀÏ´Ü ±Û¾´ÀÌÀÇ Àǰ߿¡ °ø°¨ÇÏ´Â ºÎºÐµµ ¸¹´Ù´Â Á¡À» ¸»¾¸µå¸®°Ú½À´Ï´Ù.
ÇÏÁö¸¸, ±Û¾´À̰¡ ¿ì·ÁÇÑ ¹Ù·Î ±× ºÎºÐ ¶§¹®¿¡ ÀÌ·¯ÇÑ ¼³°è ¿øÄ¢µéÀÌ ÀÖ´Ù°í »ý°¢ÇÕ´Ï´Ù.
¿ì¸®³ª¶óó·³ °í°´ÀÇ ¿ä±¸»çÇ×ÀÇ º¯È­°¡ Àæ°í, Á¦Ç° ¿Ï¼º µÚ¿¡ Ä¿½ºÅ͸¶ÀÌ¡ ¿ä±¸°¡ ¸¹Àº Çö½Ç¿¡¼­´Â ¿Ü±¹ÀÇ °æ¿ìó·³ Á¦´ë·Î µÈ ¼³°è°¡ ºÒ°¡´ÉÇÒ Áöµµ ¸ð¸¨´Ï´Ù.
ÇÏÁö¸¸, ¾î¶°ÇÑ º¯È­ ¿äû¿¡ ´ëÇØ ±â¹ÎÇϰí Á»´õ ½ºÆ®·¹½º ´ú ¹Þ°í ´ëÀÀÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÌ ±Û°ú ÀÌ "°´Ã¼ÁöÇ× SW ¼³°èÀÇ ¿øÄ¢" ½Ã¸®Áî¿¡¼­ ¸»ÇÏ´Â ¼³°è ¿øÄ¢µéÀ» µû¸£´Â °ÍÀÏ °Ì´Ï´Ù. ÀÌ ½Ã¸®Á ÁÁ¾ÆÇÏ´Â ÀÌÀ¯´Â ÀÛ¼ºÀÚ ºÐµéÀÌ ¸»¾¸Çϼ̵íÀÌ µðÀÚÀÎÆÐÅϺ¸´Ù ÈξÀ ÀÛÀº ºÎºÐµé¿¡¼­±îÁö Àû¿ëµÉ ¼ö ÀÖ´Â ÇÙ½É ¿ø¸®µéÀ̱⠶§¹®¿¡, ¾î·Á¿î ¹«½¼¹«½¼ ÆÐƾÀ» ³íÇÏ´Â °Íº¸´Ù ½ÇÁúÀûÀÎ µµ¿òÀÌ µÉ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ, µðÀÚÀÎ ÆÐÅÏ ¿ª½Ã ÀÌ·¯ÇÑ ¿ø¸®¸¦ ±â¹ÝÇÑ °ÍÀ̰í¿ä.
¹°·Ð, ºüµíÇÑ °³¹ß ±â°£°ú ÁÖ¸Ô±¸±¸½Ä IT Çö½Ç¿¡¼­ ÀÌ·¯ÇÑ ¿øÄ¢µéÀ» öÀúÈ÷ Áö۱â´Â Èûµé °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ °¡´ÉÇÑ ºÎºÐµé¿¡ ´ëÇØ¼­´Â ÃÖ´ëÇÑ Àû¿ëÇØ º¸¸é, ½ÇÁúÀûÀ¸·Î ³ªÁß¿¡ µµ¿òÀÌ µÇ´Â °ÍÀ» ´À³§´Ï´Ù.
±×¸®°í ¸¶Áö¸·À¸·Î, ÀÌ·¯ÇÑ Çö½ÇÀû ÇÑ°è ¼Ó¿¡¼­, ¿©·¯ Ã¥ÀÓÀÌ ÇϳªÀÇ °´Ã¼¿¡ ÁýÁߵǴ °æ¿ì°¡ ¹ß»ýÇϰí, ±× º¯È­¿¡ ÀÇÇØ ´Ù¸¥ ¿¬°üµÈ Ŭ·¡½ºµéÀÇ º¯È­¿¡ Å« ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù¸é ±×·¸°Ô ÀÛ¼ºÇÏ´Â °æ¿ìµµ Á¾Á¾ ÀÖ´Ù´Â °ÍÀ» ¸»¾¸µå¸³´Ï´Ù. ÀÌ ¿øÄ¢À» ÃæºÐÈ÷ ÀÎÁöÇϰí ÀÖ´Â »óÅ¿¡¼­ ½Ç¹«¿¡¼­ÀÇ °¢ °æ¿ì¿¡ µû¶ó °³¹ßÀÚÀÇ ¼ø¹ß·ÂÀ¸·Î °¡Àå ÀûÀýÇÑ ÆÇ´ÜÀ» ÇÏ´Â °Í (¹°·Ð ±×°ÍÀÌ ¿øÄ¢°ú´Â ´Ù¼Ò ¾î±ß³¯Áö¶óµµ Çö½ÇÀû »óȲÀ» °í·ÁÇϰí..)ÀÌ °¡Àå Çö¸íÇÑ ÆÇ´ÜÀÌ ¾Æ´Ò±î »ý°¢Çغ¾´Ï´Ù.
´ÜÀÏÃ¥ÀÓÀÇ À§Ç輺¿¡ ´ëÇØ.
[ 2005/04/25 ]  
ÁÁÀº ±Û Àß Àоú½À´Ï´Ù.

°´Ã¼ÁöÇâ¿¡ ´ëÇØ¼­´Â »óÀÌÇÑ ½Ã°¢Â÷À̰¡ ÀÖÀ» ¼ö ÀÖÀ¸³ª,
´ëºÎºÐÀº ¹Ì±¹ÀÇ ¿¬±¸»ç·Ê,Àû¿ë»ç·ÊÀÇ ÀÌ·ÐÀ» ¼Ò°³ÇÏ´Â °ÍÀ̶ó
ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù.

´ÜÀÏÃ¥ÀÓÀÇ ³í¸®´Â °³ÀÎÀûÀÎ °ßÇØÀ̱ä ÇÕ´Ï´Ù¸¸,
¼ÒÇÁÆ®¿þ¾îÀÇ »ý¸íÁֱ⸦ ¹«½ÃÇÏ´Â ÇϳªÀÇ ÁÖÀåÀ̶ó°í
»ý°¢ÇÕ´Ï´Ù.ƯÈ÷ Çѱ¹Àû ITÅä¾ç¿¡¼­´Â Àß ¸ø ÀÌÇØµÇ¾î
³²¹ßµÉ °¡´É¼ºÀ» ½ÉÈ÷ ¿ì·ÁÇÕ´Ï´Ù.

¿ÏÀüÇÏ°í ¿Ïº®ÇÑ ¼ÒÇÁÆ®¿þ¾îÀÇ Ãß±¸´Â ÀÌ»óÀ̸ç,
°´Ã¼ÁöÇâ¼³°èÀÇ »ç»óÀº ±×·¯ÇÑ ¿Ïº®ÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦
Ãß±¸ÇѴٱ⠺¸´Ù´Â Á¡Â÷ º¹ÀâÇØÁö´Â ºñÁö´Ï½ºÀÇ ¿µ¿ªÀ»
Á¢±ÙÇϴµ¥ À¯¸®Çϰí À¯¿ëÇÑ ¹æ¹ýÀ» Á¦°øÇѴٴµ¥ ÀÖ´Ù°í
»ý°¢ÇÕ´Ï´Ù.

¼³°è·Î ž ¼ÒÇÁÆ®¿þ¾î´Â °³³äÀÇ ÁýÇÕüÀ̹ǷÎ
½Ã°£ÀÌ Áö³ª¸é¼­ ¼­¼­È÷ À¯Áöº¸¼öÀÇ ÇѰ迡 µµ´ÞÇÏ°í Æó±âµÇ¾î¾ß
ÇÑ´Ù°í »ý°¢ÇÕ´Ï´Ù.À¯Áöº¸¼öÇѹø ¾ÈÇØº» ¼³°èÀÚ°¡ À¯Áöº¸¼öÀÇ
ÆíÀǼºÀ» À̾߱âÇϴ°ÍÀº ¾îºÒ¼º¼³À̶ó°í »ý°¢ÇÕ´Ï´Ù.

±â°£°ú ÀηÂÅõÀÔ°ø¼ö·Î ´ëº¯µÇ´Â °³¹ßºñ¿ë»êÁ¤ ¹æ½ÄÀÌ ÇöÀçÀÇ
Çѱ¹SIÀÇ Çö½ÇÀ̸ç, ¾ÕÀ¸·Îµµ Á¸¼ÓÇÒ °ÍÀ¸·Î ¿¹»óµÇ´Â ¹Ù
Çö½ÇÀ» ¿Ü¸éÇÑ ¼³°è¿øÄ¢·ÐÀ̳ª , °ËÁõµÇÁö ¾Ê´Â ¹æ¹ý·ÐÀÇ Á¦½Ã´Â
¸ÕÀú Çѱ¹ÀÇ ¼³°è,°³¹ß½ÇÁ¤¿¡ ¸Â´ÂÁö °ËÅäÇÏ°í ¹®Á¦Á¡À̳ª
°³¼±Á¡À» °íÂûÇØ¾ß µÇ´Â °ÍÀÌ ¾Æ´ÑÁö »ý°¢µË´Ï´Ù.

¿ì¸®´Â ½ÇÇè¿ëÁã°¡ ¾Æ´Õ´Ï´Ù.

µÎ¼­¾ø´Â ±Û ÀоîÁּż­ °¨»çÇÕ´Ï´Ù.
 
 
[DDD ¨é] ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ©¿Í...
[DDD ¨è] UI ÇÁ·ÎÅäŸÀÌÇÎ
[DDD ¨ç] µµ¸ÞÀÎ ÁÖµµ °³¹ß
°¡»óÈ­¿¡ ½ÇÆÐÇÏ´Â 10°¡Áö ÀÌÀ¯
[±â°í]±×¸° ½ºÅ丮Áö·Î °¡´Â±æ
[Ã¥¼Ò°³]ÇÁ¸®Á¨Å×ÀÌ¼Ç Á¨: »ý°¢À»...
[Ã¥¼Ò°³] CentOS ¸®´ª½º ±¸...
´ÑÅÙµµ À§(Wii) ãæÀçȰġ·á¹ý¡¦100¿©¸í ȯÀÚ "È¿°úºÃ´Ù" [00:02:34]
Áöµð³ÝÄÚ¸®¾Æ ÆíÁý±¹
[Å×Å©º¸µå ½ÃÁð3]MS, ´ÑÅÙµµ À§(Wii)¿¡ 'ÃÊ´ëÇü ¾÷µ¥ÀÌÆ®'·Î ¸ÂºÒÀü [00:08:26]
±âȹ ·ùÁØ¿µ ±âÀÚ, ÁøÇà ¹ÚÀ±¹Ì, Á¦ÀÛ À¯È¸Çö PD
Á¶Áßµ¿, ´ÙÀ½¿¡ ´º½º°ø±Þ Áß´Ü¡¦"...
º¸¾È°­È­ ±¸±Û ¡°À©µµ ¹ö¸®°í À¥À¸...
¡®³ªÈ¦·Î ¾×ƼºêX¡¯¡¦¼¼°è ÀÎÅͳݰú...
¡®À©µµXP¡¯½Ã´ë Æó¸·, »ç¿ëÀÚ¿¡°Ô...
ÀÎÅÍ³Ý ¹ðÅ· ºê¶ó¿ìÀú´Â µû·Î ÀÖ´Ù...
´ÙÀ½ vs Á¶Áßµ¿, Á¤¸éÃæµ¹·Î Ä¡...
11¹ø°¡, µ¶µµ»ç¶û Ƽ¼ÅÃ÷ ÁõÁ¤ ...
KT, ¿µµîÆ÷Áö»ç¼­ ¾î¸°ÀÌ ¹®È­ ...
»ï¼ºÀüÀÚ, Áß±¹ ¿Ã¸²ÇÈ ´ëÇ¥´Ü¿¡ ...
LGÀüÀÚ, ¿ÜÀåÇü HDD 'XD1...
LG CNS, º¹ÇÕ ±ÝÀ¶»óǰ ¼³°è...
 
 
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.