1.¿ÜºÎ±â´Éº¸Á¸,³»ºÎ±¸Á¶È­°³¼±±â¹ý ¸®ÆåÅ丵 °¡.°³³ä - Ä¿´×ÇÜ, ÄËÆ®¹é Á¦¾È, ³¿»õ·Ð(Code Smell), ±â´ÉÀ¯Áö, ³»ºÎ±¸Á¶ °³¼±->°¡µ¶¼ºÇâ»ó, À¯Áöº¸¼ö¼º Çâ»ó, SW±¸Á¶ Çâ»ó, ¼º´ÉÇâ»ó ³ª.Good SW Á¶°Ç - ´Ü¼ø¼º(Simplicity) / ¸íÈ®¼º(Clarity) / ÀϹݼº(Generality) / ÀÚµ¿È­(Automation) ´Ù.¸®ÆÑÅ丵ÀÇ À§Ä¡ 2.¸®ÆåÅ丵 ±â¹ý°ú »ç·Ê ( ¸Þ°´µ¥´ÜÀÏ) °¡.±â¹ý-¸Þ¼ÒµåÁ¤¸®(Extract Method, Replace Temp with Query), °´Ã¼°£±â´ÉÀ̵¿(Move Method, Extract Class), µ¥ÀÌÅÍÀº´Ð(Encapsulation), ´Ü¼øÈ­(Á¶°Ç¹®´Ü¼øÈ­, ¸Þ¼ÒµåÈ£Ã⠴ܼøÈ­, rename method, remove parameter), ÀϹÝÈ­´Ù·ç±â(Full up Field/Method) ³ª.»ç·Ê ´Ù.ÃßÁø¹æ¾È: ´ë»ó(Á¦¾î¹®/¹Ýº¹¹®/Áߺ¹ÄÚµå/±äÆĶó¸ÞÅÍ..) ±¸Çö»ç·Ê(´ÙÇü¼ºÀ¸·Î Á¶°Ç¹®´Ü¼øÈ­,»ó¼ÓÀ¸·Î ±¸Á¶È­) ½Ã±â(°ü¸®ÀÚ¿Í ÇùÀÇ,¿î¿µ,ÀνºÆå¼Ç½Ã..) ¹æ¹ý(Æä¾îÇÁ·Î±×·¥,µ¿¿ä°ËÅä,°³¹æÅø..) 3. °¡.¸®ÆåÅ丵¼öÇà½Ã À¯ÀÇ»çÇ× - ¾ÆÅ°ÅØó/¸ðµ¨¸µ°üÁ¡ µðÀÚÀÎÆÐÅÏ Á᫐ Á¢±Ù, ´Ü°èÀû¼öÇà, ±¸Á¶Àûº¯°æÈÄ È¸±ÍÅ×½ºÆ®·Î È®ÀÎ, ¸®ÆåÅ丵Áö¿øµµ±¸/¹é¾÷µµ±¸ È°¿ë ³ª.XP°³¹ßÇÁ·ºÆ½½ºÀÇ ½ÇÀüÁöħ.., ÀÀÁýµµ/°áÇÕµµ ³Ö±â ´Ù.Àç°øÇÐ vs Àç»ç¿ë vs ¸®ÆåÅ丵 * ÁÖ¿ä±â¹ý °áÇÕµµÃø¸é(¹«ºê-¸Þ¼Òµå/¾îÆ®¸®ºäÆ®/Extract class) ŸŬ·¡½º¿Í °áÇÕµµ ³ôÀº ¸Þ¼ÒµåÀÌÀü ÀÀÁýµµÃø¸é(Ǫ½¬-¸Þ¼Òµå/¾îÆ®¸®ºäÆ®/Inline class) ¼­ºêŬ·¡½º¸¸ »ç¿ëÇϴ¸޼ҵå ÀÌÀü ÀϹÝÈ­Ãø¸é(Ç®¾÷-¸Þ¼Òµå/¾îÆ®¸®ºäÆ®) ±âŸ(ÁÖ¼®/º¯¼ö)