¸®ÆåÅ丵 ÄÚµå

 


IntelliJ IDEA ´Â ¿©·¯ °¡Áö ÀÚ¹Ù ÄÚµå ¸®ÆåÅ丵À» Á¦°øÇÕ´Ï´Ù.

NOTE: 

¸®ÆåÅ丵ÀÇ ¸¶Æ¾ ÆÄ¿ï·¯ ¿¡ µû¸£¸é:  Improving the Design of Existing Code  (Addison-Wesley, 2000), refactoringÀº "±×°ÍÀÌ ÄÚµåÀÇ ¿ÜºÎ µ¿ÀÛÀ» ¹Ù²ÙÁö ¾ÊÁö¸¸ ±× ³»ºÎ ±¸Á¶¸¦ °³¼±ÇÏ´Â ±×·± ¹æ¹ýÀ¸·Î ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀ» º¯°æÇÏ´Â ÇÁ·Î¼¼½ºÀÔ´Ï´Ù.  ±×°ÍÀº ¹ö±×¸¦ Æ÷ÇÔÇÒ ±âȸ¸¦ ÃÖ¼ÒÈ­ÇÏ´Â Äڵ带 ±ú²ýÇϱâ À§ÇÑ ÈÆ·Ã ¹æ¹ýÀÔ´Ï´Ù".  »ó¼¼ÇÑ °ÍÀºhttp://www.refactoring.com/¸¦ ÂüÁ¶ÇϽʽÿÀ



 ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÄÚµå ¸®ÆåÅ丵:

 Rename Refactorings

 Rename Package
 Rename Class
 Rename Method
 Rename Field
 Rename Local Variable
 Rename Method Parameter 

 ¸Þ¼Òµå ½Ã±×³ÊÃÄ º¯°æ
 Å¬·¡½º ½Ã±×³ÊÃÄ º¯°æ
 ¸Þ¼Òµå Á¤ÀûÀ¸·Î ¸¸µé±â  

 ÀνºÅϽº ¸Þ¼Òµå·Î º¯È¯
 
Move Refactorings

 Move Package
 Move Class
 Move Members
 Move Inner to Upper Level

 Ä«ÇÇ/Ŭ·Ð Ŭ·¡½º
 ¾ÈÀüÇÑ »èÁ¦  

 ÃßÃ⠸޼ҵ堠

 ¸Þ¼Òµå ÄÚµå Áߺ¹ÀÇ ±³Ã¼  

 Introduce Variable
 Introduce Field
 Introduce Constant
 Introduce Parameter

 Extract Interface
 Extract Superclass

 °¡´ÉÇÑ °÷¿¡¼­ ÀÎÅÍÆäÀ̽º »ç¿ë
 ¸â¹ö ²ø¾î ¿Ã¸®±â
 ¸â¹ö ¹Ð¾î ³»¸®±â
 
Replace Inheritance With Delegation
 Inline Refactoring

 Inline Variable
 Inline Method

 À͸íÀ» ³»ºÎ·Î º¯È¯
 ÇʵåÀÇ ÀÎĸ½¶È­
 Replace Temp with Query
 Replace Constructor With Factory Method
 Generify Refactoring

 

Package and Class Migration  

   
¸¶À̱׷¹ÀÌ¼Ç Æ¯Â¡Àº »ç¿ëÀÚ¿¡ ÆÐŰÁö¿Í Ŭ·¡½ºÀÇ ÁÖ¾îÁø ¼³Á¤¿¡ ÂüÁ¶ÀÇ À̸§À» ¹Ù²Ù´Â °ÍÀ» Çã¶ôÇÕ´Ï´Ù.  

´ç½ÅÀº ¿¬¼ÓÀûÀ¸·Î Àû¿ëµÉ °ÍÀÎ ÇÑ ¼¼Æ®ÀÇ º¯°æÀ» ÁöÁ¤Çؾ߸¸ ÇÕ´Ï´Ù.  

IDEA´Â ÀüüÀÇ ÇÁ·ÎÁ§Æ®¿¡¼­ ÆÐŰÁö¿Í Ŭ·¡½º¿¡ Á¤ÀÇ ¼ø¼­¿Í º¯°æ ÂüÁ¶¿¡¼­ ÁÖ¾îÁø ¼³Á¤À» ó¸®ÇÒ °ÍÀÔ´Ï´Ù.  

±×°ÍÀº ¿ä¼Ò ±×µé ÀÚ½ÅÀÌ ¾Æ´Ï°í ±×µéÀÇ »ç¿ë¸¸À» º¯°æÇÕ´Ï´Ù.  

À̰ÍÀº ¸ÊÀ¸·ÎºÎÅÍÀÇ ¿ä¼Ò°¡ ½ÉÁö¾î ÇÁ·ÎÁ§Æ®¿¡¼­ ÀÌ¿ëµÇÁö ¾ÊÀ» Áöµµ ¸ð¸£´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
´ç½ÅÀÌ ¾î¶² Á¦ 3ÀÚ ÄÚµå(¿¹¸¦ µé¸é ÀϺΠŬ·¡½º ¶óÀ̺귯¸®)°¡ º¯°æÇÏ´Â °Í¿¡ µû¶ó ´ç½ÅÀÇ ¼Ò½º Äڵ带 ¾÷µ¥ÀÌÆ®ÇÒ Çʿ䰡 ÀÖÀ» ¶§ ÀÌ Æ¯Â¡Àº ´ëºÎºÐÀº À¯¿ëÇÕ´Ï´Ù.
¿¹¸¦ µé¸é, ´ç½ÅÀÌ ½ºÀ® 1.1°ú ÇÔ²² ÀÛ¾÷¿¡ ½ºÀ® 1.0.3À» »ç¿ëÇϰí ÀÖ´Â ´ç½ÅÀÇ ¼Ò½º Äڵ带 ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ» Çϱâ À§Çؼ­, ¸ðµç ¼­ºê ÆÐŰÁö¿Í ÇÔ²²com.sun.java.swing.* ÆÐŰÁö¿¡ ¸ðµç ÂüÁ¶´Â javax.swing.*·Î Àç ¸í¸íµÇ¾î¾ß¸¸ ÇÕ´Ï´Ù.

µ¿½Ã¿¡ com.sun.java.swing.plaf .windows ¿Í com.sun.java.swing.plaf.otif ÆÐŰÁöÀÇ ¸ðµç »ç¿ëÀº º¯°æµÇ¾î¼­´Â ¾ÈµË´Ï´Ù.

 

¸¶À̱׷¹ÀÌÆ® ¹æ¹ý

 1.   ÁÖ ¸Þ´º Tools Migrate...  Ç׸ñÀ» ¼±ÅÃÇÕ´Ï´Ù

 2.    ´ÙÀ̾ó·Î±×¿¡¼­ ÁøÇàÇϱâ À§ÇÑ ¸¶À̱׷¹ÀÌ¼Ç ¸ÊÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.  Å¬·¡½º¿Í ÆÐŰÁö À̸§ÀÌ Á¤ÀÇµÈ ¼±ÅÃµÈ ¸¶À̱׷¹ÀÌ¼Ç ¸ÊÀº º¯°æµË´Ï´Ù.

 ¼±ÅÃµÈ ¸¶À̱׷¹À̼ÇÀ» º¸°Å³ª, ±×°ÍÀ» º¯°æÇϱâ À§ÇØ, Edit... ¹öưÀ» ´©¸£½Ê½Ã¿À.
 
»õ·Î¿î ¸¶À̱׷¹ÀÌ¼Ç ¼³Á¤À» »ý¼ºÇϱâ À§ÇØ, "New..." ¹öưÀ» ´©¸£½Ê½Ã¿À.
 3.   °è¼ÓÇϱâ À§ÇØ, "Find usages"  ¹öưÀ» ´©¸£½Ê½Ã¿À 4.   ¸ðµç ¹ß°ßµÈ »ç¿ëÀº °Ë»ö °á°ú À©µµ¿ì¿¡¼­ ¸ÞÀÎ À©µµÀÇ ¹Ù´Ú ºÎºÐ¿¡¼­ º¸¿©Áú °ÍÀÔ´Ï´Ù.
 5.   ´ç½ÅÀº °á°ú¸¦ ºê¶ó¿ìÁî ÇÒ ¼ö ÀÖ°í, ¸¶À̱׷¹ÀÌ¼Ç ÇÁ·Î¼¼½º µ¿¾È º¯°æµÉ ´ç½ÅÀÇ Äڵ忡¼­ ±× À§Ä¡¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
 6.   ½ÇÁ¦ ¸¶À̱׷¹À̼ÇÀ» ¼öÇàÇϱâ À§Çؼ­, ÆÐ³ÎÀÇ ¹Ù´Ú¿¡ ÀÖ´ÂDo Migrate  ¹öưÀ» ´©¸£½Ê½Ã¿À (¶Ç´Â Alt + D¸¦ ´©¸£½Ê½Ã¿À ). ´ç½ÅÀº ¶ÇÇÑ Cancel ¹öư ¶Ç´ÂAlt + C¸¦ ´­·¯¼­ Á¶ÀÛÀ» Ãë¼ÒÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

 

¸¶À̱׷¹ÀÌ¼Ç ¼³Á¤ÀÌ ÀúÀåµÇ´Â °÷


¸ðµç ¸¶À̱׷¹ÀÌ¼Ç ¼³Á¤Àº ÇÁ·Î±×·¥ ¼³Ä¡ µð·ºÅ͸®ÀÇ config\migration ¼­ºê µð·ºÅ͸®¿¡ ÀúÀåµË´Ï´Ù. °¢°¢ÀÇ ¼³Á¤Àº ºÐ¸®µÈ *.xml ÆÄÀÏ¿¡ ÀúÀåµË´Ï´Ù. ¸¶À̱׷¹ÀÌ¼Ç ¼³Á¤ÀÇ À̸§Àº ÆÄÀÏÀÇ À̸§À» Á¤ÀÇ ÇÕ´Ï´Ù.