1Àå. ¸®ÆÑÅ丵
ºñµð¿À °¡°Ô¿¡¼ ¿ä±Ý°ú Æ÷ÀÎÆ®¸¦ °è»êÇÏ¿© ÀμâÇÏ´Â ÇÁ·Î±×·¥À» ¿¹Á¦·Î ÇÏ¿© ¸®ÆÑÅ丵ÀÌ ¹«¾ùÀÎÁö °¨À» ÀâÀ» ¼ö ÀÖµµ·Ï ¼³¸íÇϰí ÀÖ´Ù. µðÀÚÀεµ º°·Î ÁÁÁö ¾Ê°í, °´Ã¼ÁöÇâÀûÀÌÁöµµ ¾ÊÀº Äڵ尡 Extract Method, Move Method, Replace Temp with Query µîÀÇ ¸®ÆÑÅ丵À» Çϳª¾¿ Àû¿ëÇØ°¡¸é¼ ¾î¶»°Ô ÁÁÀº µðÀÚÀÎÀ¸·Î ¹Ù²Ù´ÂÁö¸¦ º¸¿©ÁØ´Ù.
2Àå. ¸®ÆÑÅ丵ÀÇ ¿ø¸®
¸®ÆÑÅ丵ÀÇ Á¤ÀÇ¿Í ¸®ÆÑÅ丵À» ÇØ¾ß ÇÏ´Â ÀÌÀ¯, ¾ðÁ¦ ¸®ÆÑÅ丵À» ÇØ¾ß Çϰí, ¾ðÁ¦ ÇÏÁö ¸»¾Æ¾ß ÇÏ´ÂÁö µî¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. ¶ÇÇÑ ÈĹݺο¡¼´Â ¸®ÆÑÅ丵¿¡ ÀÖ¾î¼ÀÇ ¹®Á¦Á¡, ¸®ÆÑÅ丵°ú µðÀÚÀÎÀÇ °ü°è, ¸®ÆÑÅ丵°ú ÆÛÆ÷¸Õ½º Æ©´×, ¸®ÆÑÅ丵ÀÇ ±â¿ø¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
3Àå. Äڵ忡¼ÀÇ ³ª»Û ³¿»õ
¸®ÆÑÅ丵À» ¾î¶»°Ô ÇÏ´ÂÁö ¾Æ´Â °Í°ú ¸®ÆÑÅ丵À» ¾ðÁ¦ ÇØ¾ß ÇÒÁö¸¦ ¾Æ´Â °ÍÀº º°°³ÀÇ ¹®Á¦´Ù. ÀÌ Àå¿¡¼´Â ¸®ÆÑÅ丵ÀÌ ÇÊ¿äÇÑ Äڵ带 ¾ÇÃë°¡ ³ª´Â ÄÚµå·Î ºñÀ¯Çϰí, ¾î¶² °æ¿ì¿¡ Äڵ忡¼ ¾ÇÃë°¡ ³ª´ÂÁö, ¶Ç ±× ¾ÇÃ븦 Á¦°ÅÇϱâ À§Çؼ´Â ¾î¶² ¸®ÆÑÅ丵À» ½á¾ß ÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù.
4Àå. Å×½ºÆ® ¸¸µé±â
¸®ÆÑÅ丵¿¡¼ Å×½ºÆ®´Â ÇʼöÁ¶°Ç ÀÌ´Ù. ÀÌ Àå¿¡¼´Â ¸®ÆÑÅ丵¿¡¼ Å×½ºÆ®ÀÇ Á߿伺À» ¼³¸íÇϰí, ¿ÀǼҽº Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ JUnitÀ» ÀÌ¿ëÇÏ¿© ´ÜÀ§ Å×½ºÆ®¸¦ ÇÏ´Â ÀýÂ÷¸¦ ¼³¸íÇÑ´Ù.
5Àå. ¸®ÆÑÅ丵 īŻ·Î±×·Î¡¦
5ÀåºÎÅÍ 12Àå±îÁö´Â ÀÌ Ã¥ÀÇ ÇÙ½É ºÎºÐÀÎ ¸®ÆÑÅ丵 īŻ·Î±×ÀÌ´Ù. 5Àå¿¡¼´Â ¸®ÆÑÅ丵 īŻ·Î±×°¡ ¾î¶² ½ÄÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö »ìÆìº»´Ù. ¶ÇÇÑ ¸®ÆÑÅ丵À» ÇÒ ¶§ º¯°æµÈ Ŭ·¡½º³ª ¸Þ½îµå, Çʵ带 ÂüÁ¶ÇÏ´Â Äڵ带 ¾î¶»°Ô È¿°úÀûÀ¸·Î ã¾Æ ¼öÁ¤ÇÒ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇØ ¼³¸íÇϰí, ¸®ÆÑÅ丵 ±â¼úÀÌ ¾ó¸¶³ª ¼º¼÷µÇ¾ú´ÂÁö¿¡ ´ëÇØ ³íÀÇÇÑ´Ù.
6Àå. ¸Þ½îµå ±¸¼º
Áö³ªÄ¡°Ô ±ä ¸Þ½îµå´Â ¸¹Àº ¹®Á¦¸¦ À¯¹ßÇÑ´Ù. ¸Þ½îµå¸¦ ±× Àǹ̰¡ ¸íÈ®ÇÑ À̸§À» Áö¾î Àß°Ô ºÐÇØÇϸé ÄÚµå´Â ÀÌÇØÇϱⰡ ½¬¿öÁö°í Àç»ç¿ë¼ºÀÌ ´õ ³ô¾ÆÁø´Ù.ÀÌ Àå¿¡¼´Â ±ä ¸Þ½îµå¸¦ ¿©·¯ °³ÀÇ ÀÛÀº ¸Þ½îµå·Î ¸¸µé±â À§ÇØ Äڵ带 ÃßÃâÇÏ´Â ¸®ÆÑÅ丵, Äڵ带 ÃßÃâÇÒ ¶§ ¹®Á¦°¡ µÇ´Â Àӽú¯¼ö¸¦ ´Ù·ç´Â ¸®ÆÑÅ丵 µîÀÌ ¼³¸íµÇ¾î ÀÖ´Ù.
7Àå. °´Ã¼°£ÀÇ ±â´É À̵¿
°´Ã¼ÁöÇâ µðÀÚÀο¡¼ °¡Àå Áß¿äÇÑ ºÎºÐ ÁßÀÇ Çϳª°¡ °´Ã¼°£ÀÇ ¿ªÇÒ ºÐ´ãÀ» Àß ÇÏ´Â °ÍÀÌ´Ù. ÀÌ Àå¿¡¼´Â °´Ã¼°£ÀÇ ¿ªÇÒ ºÐ´ãÀ» Á¦´ë·Î Çϱâ À§ÇØ °´Ã¼°£ Çʵ峪 ¸Þ½îµå¸¦ À̵¿Çϰí, Ŭ·¡½º¸¦ ÃßÃâÇÏ´Â ¸®ÆÑÅ丵ÀÌ ¼³¸íµÇ¾î ÀÖ´Ù.
8Àå. µ¥ÀÌÅÍ ±¸¼º
°´Ã¼ÁöÇâ ¾ð¾îÀÇ ÀåÁ¡ ÁßÀÇ Çϳª°¡ ÀüÅëÀûÀÎ ÀýÂ÷Àû ¾ð¾î¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ µ¥ÀÌÅÍ Å¸ÀÔ ÀÌ»óÀÇ »õ·Î¿î ŸÀÔÀ» ¸¸µé ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀÌ Àå¿¡¼´Â °´Ã¼ÀÇ Æ¯¼ºÀ» Àß ÀÌ¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ½±°Ô ´Ù·ê ¼ö ÀÖµµ·Ï ÇÏ´Â ¸®ÆÑÅ丵¿¡ ´ëÇØ ³íÀÇÇÑ´Ù.
9Àå. Á¶°Ç¹®ÀÇ ´Ü¼øÈ
º¹ÀâÇÑ Á¶°Ç¹®Àº ÇÁ·Î±×·¥À» ÀÌÇØÇÏ±â ¾î·Æ°Ô ÇÑ´Ù....

1Àå. ¸®ÆÑÅ丵
ºñµð¿À °¡°Ô¿¡¼ ¿ä±Ý°ú Æ÷ÀÎÆ®¸¦ °è»êÇÏ¿© ÀμâÇÏ´Â ÇÁ·Î±×·¥À» ¿¹Á¦·Î ÇÏ¿© ¸®ÆÑÅ丵ÀÌ ¹«¾ùÀÎÁö °¨À» ÀâÀ» ¼ö ÀÖµµ·Ï ¼³¸íÇϰí ÀÖ´Ù. µðÀÚÀεµ º°·Î ÁÁÁö ¾Ê°í, °´Ã¼ÁöÇâÀûÀÌÁöµµ ¾ÊÀº Äڵ尡 Extract Method, Move Method, Replace Temp with Query µîÀÇ ¸®ÆÑÅ丵À» Çϳª¾¿ Àû¿ëÇØ°¡¸é¼ ¾î¶»°Ô ÁÁÀº µðÀÚÀÎÀ¸·Î ¹Ù²Ù´ÂÁö¸¦ º¸¿©ÁØ´Ù.
2Àå. ¸®ÆÑÅ丵ÀÇ ¿ø¸®
¸®ÆÑÅ丵ÀÇ Á¤ÀÇ¿Í ¸®ÆÑÅ丵À» ÇØ¾ß ÇÏ´Â ÀÌÀ¯, ¾ðÁ¦ ¸®ÆÑÅ丵À» ÇØ¾ß Çϰí, ¾ðÁ¦ ÇÏÁö ¸»¾Æ¾ß ÇÏ´ÂÁö µî¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. ¶ÇÇÑ ÈĹݺο¡¼´Â ¸®ÆÑÅ丵¿¡ ÀÖ¾î¼ÀÇ ¹®Á¦Á¡, ¸®ÆÑÅ丵°ú µðÀÚÀÎÀÇ °ü°è, ¸®ÆÑÅ丵°ú ÆÛÆ÷¸Õ½º Æ©´×, ¸®ÆÑÅ丵ÀÇ ±â¿ø¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
3Àå. Äڵ忡¼ÀÇ ³ª»Û ³¿»õ
¸®ÆÑÅ丵À» ¾î¶»°Ô ÇÏ´ÂÁö ¾Æ´Â °Í°ú ¸®ÆÑÅ丵À» ¾ðÁ¦ ÇØ¾ß ÇÒÁö¸¦ ¾Æ´Â °ÍÀº º°°³ÀÇ ¹®Á¦´Ù. ÀÌ Àå¿¡¼´Â ¸®ÆÑÅ丵ÀÌ ÇÊ¿äÇÑ Äڵ带 ¾ÇÃë°¡ ³ª´Â ÄÚµå·Î ºñÀ¯Çϰí, ¾î¶² °æ¿ì¿¡ Äڵ忡¼ ¾ÇÃë°¡ ³ª´ÂÁö, ¶Ç ±× ¾ÇÃ븦 Á¦°ÅÇϱâ À§Çؼ´Â ¾î¶² ¸®ÆÑÅ丵À» ½á¾ß ÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù.
4Àå. Å×½ºÆ® ¸¸µé±â
¸®ÆÑÅ丵¿¡¼ Å×½ºÆ®´Â ÇʼöÁ¶°Ç ÀÌ´Ù. ÀÌ Àå¿¡¼´Â ¸®ÆÑÅ丵¿¡¼ Å×½ºÆ®ÀÇ Á߿伺À» ¼³¸íÇϰí, ¿ÀǼҽº Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÎ JUnitÀ» ÀÌ¿ëÇÏ¿© ´ÜÀ§ Å×½ºÆ®¸¦ ÇÏ´Â ÀýÂ÷¸¦ ¼³¸íÇÑ´Ù.
5Àå. ¸®ÆÑÅ丵 īŻ·Î±×·Î¡¦
5ÀåºÎÅÍ 12Àå±îÁö´Â ÀÌ Ã¥ÀÇ ÇÙ½É ºÎºÐÀÎ ¸®ÆÑÅ丵 īŻ·Î±×ÀÌ´Ù. 5Àå¿¡¼´Â ¸®ÆÑÅ丵 īŻ·Î±×°¡ ¾î¶² ½ÄÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö »ìÆìº»´Ù. ¶ÇÇÑ ¸®ÆÑÅ丵À» ÇÒ ¶§ º¯°æµÈ Ŭ·¡½º³ª ¸Þ½îµå, Çʵ带 ÂüÁ¶ÇÏ´Â Äڵ带 ¾î¶»°Ô È¿°úÀûÀ¸·Î ã¾Æ ¼öÁ¤ÇÒ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇØ ¼³¸íÇϰí, ¸®ÆÑÅ丵 ±â¼úÀÌ ¾ó¸¶³ª ¼º¼÷µÇ¾ú´ÂÁö¿¡ ´ëÇØ ³íÀÇÇÑ´Ù.
6Àå. ¸Þ½îµå ±¸¼º
Áö³ªÄ¡°Ô ±ä ¸Þ½îµå´Â ¸¹Àº ¹®Á¦¸¦ À¯¹ßÇÑ´Ù. ¸Þ½îµå¸¦ ±× Àǹ̰¡ ¸íÈ®ÇÑ À̸§À» Áö¾î Àß°Ô ºÐÇØÇϸé ÄÚµå´Â ÀÌÇØÇϱⰡ ½¬¿öÁö°í Àç»ç¿ë¼ºÀÌ ´õ ³ô¾ÆÁø´Ù.ÀÌ Àå¿¡¼´Â ±ä ¸Þ½îµå¸¦ ¿©·¯ °³ÀÇ ÀÛÀº ¸Þ½îµå·Î ¸¸µé±â À§ÇØ Äڵ带 ÃßÃâÇÏ´Â ¸®ÆÑÅ丵, Äڵ带 ÃßÃâÇÒ ¶§ ¹®Á¦°¡ µÇ´Â Àӽú¯¼ö¸¦ ´Ù·ç´Â ¸®ÆÑÅ丵 µîÀÌ ¼³¸íµÇ¾î ÀÖ´Ù.
7Àå. °´Ã¼°£ÀÇ ±â´É À̵¿
°´Ã¼ÁöÇâ µðÀÚÀο¡¼ °¡Àå Áß¿äÇÑ ºÎºÐ ÁßÀÇ Çϳª°¡ °´Ã¼°£ÀÇ ¿ªÇÒ ºÐ´ãÀ» Àß ÇÏ´Â °ÍÀÌ´Ù. ÀÌ Àå¿¡¼´Â °´Ã¼°£ÀÇ ¿ªÇÒ ºÐ´ãÀ» Á¦´ë·Î Çϱâ À§ÇØ °´Ã¼°£ Çʵ峪 ¸Þ½îµå¸¦ À̵¿Çϰí, Ŭ·¡½º¸¦ ÃßÃâÇÏ´Â ¸®ÆÑÅ丵ÀÌ ¼³¸íµÇ¾î ÀÖ´Ù.
8Àå. µ¥ÀÌÅÍ ±¸¼º
°´Ã¼ÁöÇâ ¾ð¾îÀÇ ÀåÁ¡ ÁßÀÇ Çϳª°¡ ÀüÅëÀûÀÎ ÀýÂ÷Àû ¾ð¾î¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ µ¥ÀÌÅÍ Å¸ÀÔ ÀÌ»óÀÇ »õ·Î¿î ŸÀÔÀ» ¸¸µé ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀÌ Àå¿¡¼´Â °´Ã¼ÀÇ Æ¯¼ºÀ» Àß ÀÌ¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ½±°Ô ´Ù·ê ¼ö ÀÖµµ·Ï ÇÏ´Â ¸®ÆÑÅ丵¿¡ ´ëÇØ ³íÀÇÇÑ´Ù.
9Àå. Á¶°Ç¹®ÀÇ ´Ü¼øÈ
º¹ÀâÇÑ Á¶°Ç¹®Àº ÇÁ·Î±×·¥À» ÀÌÇØÇÏ±â ¾î·Æ°Ô ÇÑ´Ù. ÀÌ Àå¿¡¼´Â Á¶°Ç¹®À» ´Ü¼øÈÇÏ¿© Äڵ带 ÀÌÇØÇϱ⠽±°Ô ¹Ù²Ù´Â ¸®ÆÑÅ丵¿¡ ´ëÇØ ´Ù·é´Ù. ƯÈ÷ °´Ã¼ÁöÇâ ÇÁ·Î±×·¥¿¡¼´Â ´ÙÇü¼ºÀ» ÀÌ¿ëÇϸé Á¶°Ç¹®À» ÈξÀ °£´ÜÇϰí À¶Å뼺 ÀÖ°Ô ´Ù·ê ¼ö Àִµ¥, ÀÌ¿Í °ü·ÃµÈ ¸®ÆÑÅ丵 ¶ÇÇÑ ¼³¸íµÇ¾î ÀÖ´Ù.
10Àå. ¸Þ½îµå È£ÃâÀÇ ´Ü¼øÈ
ÀÌ ÀåÀº °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º¸¦ º¸´Ù ´Ü¼øÇÏ°Ô ¸¸µå´Â ¸®ÆÑÅ丵¿¡ ´ëÇØ ޱ¸ÇÑ´Ù. ¸Þ½îµå¸¦ Á÷°üÀûÀ¸·Î º¸ÀÌ°Ô Çϱâ À§ÇØ ¸Þ½îµåÀÇ À̸§À» ¹Ù²Ù°Å³ª, º¹ÀâÇÑ ÆÄ¶ó¹ÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý µî°ú °ü·ÃµÈ ¸®ÆÑÅ丵À» ¼Ò°³ÇÑ´Ù.
11Àå. ÀϹÝÈ ´Ù·ç±â
ÀÌ Àå¿¡¼´Â ÀϹÝÈ¿Í °ü·ÃµÈ ¸®ÆÑÅ丵À» ´Ù·ç´Âµ¥, ÀÌ·± ¸®ÆÑÅ丵Àº ÁÖ·Î »ó¼Ó°ú °ü°è°¡ ÀÖ´Ù. ¸Þ½îµå¸¦ Ŭ·¡½º »ó¼Ó ±¸Á¶ÀÇ »óÀ§ ¶Ç´Â ÇÏÀ§·Î À̵¿ÇѴٵ簡, Ŭ·¡½º »ó¼Ó±¸Á¶¿¡¼ ¼öÆÛŬ·¡½º³ª ¼ºêŬ·¡½º¸¦ ÃßÃâÇÏ´Â ¸®ÆÑÅ丵À» »ìÆìº»´Ù. ¶ÇÇÑ »ó¼ÓÀ» À§ÀÓÀ¸·Î ¹Ù²Ù°Å³ª ¹Ý´ë·Î À§ÀÓÀ» »ó¼ÓÀ¸·Î ¹Ù²Ù´Â ¸®ÆÑÅ丵¿¡ ´ëÇØ¼µµ ¼³¸íÇÑ´Ù.
12Àå. ´ë±Ô¸ð ¸®ÆÑÅ丵
ÀÌ Àå¿¡¼´Â ´ë±Ô¸ð ¸®ÆÑÅ丵ÀÇ ³× °³ÀÇ ¿¹¸¦ ¼³¸íÇÑ´Ù.
13Àå. ¸®ÆÑÅ丵 Àç»ç¿ë, ±×¸®°í Çö½Ç
¸®ÆÑÅ丵ÀÌ °¡Á®´Ù ÁÖ´Â ÀÌÁ¡À» ¾ËÁö¶óµµ ¸®ÆÑÅ丵 ÇÏ´Â °Í¿¡ ´ëÇØ¼ ¸¶À½ ³»ÄÑÇÏÁö ¾Ê´Â °³¹ßÀÚµéÀÌ ÀÖ´Ù. ÀÌ Àå¿¡¼´Â ¸®ÆÑÅ丵À» ¹Þ¾ÆµéÀ̴µ¥ ÀÖ¾î¼ ¹®Á¦°¡ µÉ ¼ö ÀÖ´Â À§¿¡¼ ¸»ÇÑ À̽´¿¡ ´ëÇØ Â÷·Ê´ë·Î ´Ù·é´Ù.
14Àå. ¸®ÆÑÅ丵 µµ±¸
¸®ÆÑÅ丵 µµ±¸¸¦ »ç¿ëÇÏ¸é ¸®ÆÑÅ丵ÀÌ ÇÊ¿äÇÑ ºÎºÐÀ» ã¾ÆÁÖ°í, ¸®ÆÑÅ丵À» Àû¿ëÇÑ ÈÄ¿¡ µ¿ÀÛÀÌ ´Þ¶óÁø °ÍÀÌ ¾ø´ÂÁö Å×½ºÆ®ÇÏ´Â °Í°ú °°Àº ½Ã°£ÀÌ °É¸®´Â ÀÛ¾÷À» ´ë½Å ÇØ Áֱ⠶§¹®¿¡ ¸®ÆÑÅ丵À» Çϴµ¥ ¸¹Àº µµ¿òÀÌ µÇ°í °á°úÀûÀ¸·Î ¸®ÆÑÅ丵 Çϴµ¥ ÀÖ¾î¼ ºÎ´ãÀÌ ÁÙ¾îµé°Ô µÈ´Ù. ÀÌ Àå¿¡¼´Â ¸®ÆÑÅ丵 µµ±¸¸¦ °¡Áö°í ½ÇÁ¦·Î ¸®ÆÑÅ丵 ÇÁ·Î¼¼½º¿¡ ¾î¶»°Ô Àû¿ëÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¾Æº¸°í ¸®ÆÑÅ丵 µµ±¸¿¡ ÇÊ¿äÇÑ ±â¼úÀûÀÎ ¿ä±¸»çÇ×°ú ½ÇÁ¦ÀûÀÎ ¿ä±¸»çÇ׿¡ ´ëÇØ¼ ¾Ë¾Æº»´Ù.
15Àå. ¸ðµÎ ÇÕÄ¡±â
¸®ÆÑÅ丵ÇÏ´Â ±â¼úÀ» ¾Æ´Â °ÍÀº ½ÃÀÛ¿¡ ºÒ°úÇÏ´Ù. ¸®ÆÑÅ丵 ±â¼úÀ» »ç¿ëÇÒ ¶§¿Í »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÒ ¶§, ¸®ÆÑÅ丵À» °è¼Ó ÁøÇàÇÒ ¶§¿Í ¸ØÃâ ¶§¿Í °°Àº ¸®ÆÑÅ丵À» ÇÏ´Â ¸®µëÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. ±×¸®°í ¸®ÆÑÅ丵¸¦ ÇÑ ÈÄ¿¡ µ¿ÀÛÀÌ ¸®ÆÑÅ丵Çϱâ Àü°ú ´Þ¶óÁ®¼´Â ¾È µÈ´Ù´Â °ÍÀ» ¸í½ÉÇØ¾ß ÇÑ´Ù. ÀÌ Àå¿¡¼´Â À§¿Í °°Àº ³»¿ë¸¦ ±â¼úÇÏ¸é¼ ¶ÇÇÑ ¸®ÆÑÅ丵À» Çϴµ¥ µµ¿òÀÌ µÇ´Â ¸î °¡Áö ¹æ¹ý(¿øÄ¢)À» Á¦½ÃÇÑ´Ù.
