ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô Push
Members Down ¸®ÆÑÅ丵 ±â´É¿¡ ´ëÇØ Æ÷°ýÀûÀÎ overview¿Í how ÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.
Push Members Down ¸®ÆÑÅ丵 ±â´ÉÀº ¼ºê Ŭ·¡½º ¶Ç´Â ¼ºê ÀÎÅÍÆäÀ̽º¿¡ Ŭ·¡½º ¸â¹ö¸¦ À̵¿ÇÏ¿© »ç¿ëÀÚ¿¡°Ô ±×µéÀÇ Å¬·¡½º °èÃþÀ» ±ú²ýÇÏ°Ô Çϵµ·Ï Çã¶ôÇØÁÝ´Ï´Ù. ¸â¹ö´Â ±× ´ÙÀ½ Á÷Á¢ÀûÀÎ ¼ºê Ŭ·¡½º/ÀÎÅÍÆäÀ̽º·Î¸¸ Àç¹èÄ¡µË´Ï´Ù.
¿¹¸¦ µé¸é, ´ç½ÅÀº ´ÙÀ½ Äڵ带 °¡Áý´Ï´Ù:
public class ClassParent {
void method1(){
//some code here
}
void method2() {
//some code here
}
}
public class ClassChild extends ClassParent {
//some code here
}
±×¸®°í ´ç½ÅÀº ¼ºê Ŭ·¡½º·Î method2 ¸¦ ¹Ð¾î ³»¸± Çʿ䰡 ÀÖ½À´Ï´Ù. ´ç½ÅÀÇ ÄÚµå´Â ¸®ÆÑÅ丵 ÀÌÈÄ ´ÙÀ½Ã³·³ º¸ÀÏ °ÍÀÔ´Ï´Ù:
public class ClassParent {
void method1(){
//some code here
}
}
public class ClassChild extends ClassParent {
void method2() {
//some code here
}
//some code here
}
Ŭ·¡½º ¸â¹ö¸¦ ¹Ð¾î ³»¸®±â À§ÇÏ¿©:
1. ¿¡µðÅÍ ¶Ç´Â Project View / Commander ¿¡¼ ´ç½ÅÀÌ ¹Ð¾î ³»¸± Çʿ䰡 ÀÖ´Â ¸â¹ö°¡ ¹Ð¾î ³»¸®´Â Ŭ·¡½º À§ÀÇ Ä³·µÀ» ¼³Á¤ÇÏ°í ¸ÞÀÎ ¸Þ´º ¶Ç´Â ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼ Refactor | Push
Members Down... ¸¦ Ŭ¸¯ÇϽʽÿÀ.
2. ´ç½ÅÀº Push Members Down ´ÙÀ̾ó·Î±×¸¦ º¸°Ô µÉ °Í ÀÔ´Ï´Ù.

¹Ð¾î ³»¸®°Ô µÇ´Â ¸â¹ö
|
ÀÌ ÆÐ³ÎÀº ¹Ð¾î ³»·ÁÁö´Â ¸ðµç Ŭ·¡½º ¸â¹öÀÇ ¸ñ·ÏÀ» º¸¿©ÁÝ´Ï´Ù.
±×µéÀº Ŭ·¡½º, ÀÎÅÍÆäÀ̽º, Çʵå¿Í ¸Þ¼Òµå°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. Ŭ·¡½º ¸â¹ö¸¦ ¹Ð¾î ³»¸®±â À§ÇØ, ´ç½ÅÀº ±× ¿ÞÂÊ¿¡¼ üũ ¹Ú½º¸¦ ¼±ÅÃÇØ¾ß¸¸ ÇÕ´Ï´Ù.
¸¸ÀÏ ´ç½ÅÀÌ ¸Þ¼ÒµåÀÇ ¿À¸¥ÂÊ¿¡ »óÀÀÇϴ üũ ¹Ú½º¸¦ Ç¥½ÃÇÑ´Ù¸é, Ǫ½ÃµÈ ¸Þ¼Òµå´Â ¼Ò½º Ŭ·¡½º/ÀÎÅÍÆäÀ̽º¿¡¼ Ãß»óÀ¸·Î¼ ¼±¾ðµÉ ¼ö ÀÖ½À´Ï´Ù.
¸¸ÀÏ ¸â¹ö Àü¼ÛÀÌ ¹®Á¦¸¦ ¾Æ¸¶µµ ÃÊ·¡ÇÒÁöµµ ¸ð¸¥´Ù¸é, ´ç½ÅÀº »¡°£ °Á¶ Ç¥½Ã¿Í ÇÔ²² ÅëÁöµÉ °ÍÀÔ´Ï´Ù.
ÀÌ °Á¶ Ç¥½Ã´Â ¸¸ÀÏ »óȲÀÌ ¹æÄ¡µÇ¸é, ¸®ÆÑÅ丵ÀÌ Àû¿ëµÇ°í ³ ÈÄ¿¡ ¿¡·¯¸¦ Ç¥½ÃÇÒ °Í ÀÔ´Ï´Ù.
¸¸ÀÏ ´ç½ÅÀÌ ¸®ÆÑÅ丵 ÇÁ·Î¼¼½º¸¦ °è¼ÓÇϱâ·Î ¼±ÅÃÇÏ¸é ´ç½Å¿¡°Ô Problems
Detected ´ÙÀ̾ó·Î±×°¡ ÇÁ·ÒÇÁÆ® µÉ °ÍÀÔ´Ï´Ù.

¸®ÆÑÅ丵(±×·¯³ª °á°ú ÄÚµå´Â ÄÄÆÄÀÏ µÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù)À» Àû¿ëÇϱâ À§ÇØ Continue ¸¦ ´©¸¨´Ï´Ù.
¶Ç´Â ÇÊ¿äÇÑ Á¤Á¤À» Çϱâ À§Çؼ Push
Members Down ´ÙÀ̾ó·Î±×·Î µ¹¾Æ°¡±â À§Çؼ Cancel À» ´©¸¨´Ï´Ù
°Á¶µÈ ¸â¹ö À§¿¡¼ ÀáÀçÀûÀÎ ¹®Á¦ÀÇ ¿øÀÎÀ» º¸±â À§ÇØ, ±×°Í À§¿¡¼ ¸¶¿ì½º Æ÷ÀÎÅ͸¦ Áö¿¬½ÃŰ½Ê½Ã¿À.
¹®Á¦ ¼³¸íÀÌ ÀÖ´Â ÆË¾÷ ¸Þ½ÃÁö°¡ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù.

|
Javadoc for abstracts
|
´ç½ÅÀÌ »óÀÀÇÏ´Â Javadoc ÄÚ¸àÆ®¸¦ °¡Áö´Â Ãß»ó ¸Þ¼Òµå¸¦ ²ø¾î¿Ã¸± ¶§ ´ç½ÅÀº ¾Æ¸¶µµ ±×°ÍµéÀ» ´Ù·ç±â¸¦ ¿øÇÏ´Â ±× ¹æ¹ýÀ» ¼±ÅÃÇÒ °Í ÀÔ´Ï´Ù.
´ç½ÅÀº As
is¸¦ ¼±ÅÃÇÏ´Â ¿øÇüÀÇ Å¬·¡½º¿¡¼ ±×°ÍµéÀ» ³öµÑ ¼ö ÀÖ½À´Ï´Ù, ¶Ç´Â ±×°ÍµéÀ» Copy¸¦ ¼±ÅÃÇÏ´Â »óÀ§ Ŭ·¡½º/ÀÎÅÍÆäÀ̽º·Î ±×°ÍµéÀ» º¹»çÇϰųª ¶Ç´Â Move À» ¼±ÅÃÇÑ °Å±â¿¡¼ ±×°ÍµéÀ» À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
º¯°æµÈ ¹Ì¸® º¸±â »ç¿ë
|
ÀÌ Ã¼Å© ¹Ú½º¸¦ ¼±ÅÃÇÏ¸é ´ç½ÅÀº ¾î¶² »ç¿ëÀÌ ¹ß°ßµÇ¾ú´ÂÁö ÃßÀûÇϰí, ±×µéÀÇ ±³Ã¼¸¦ ½ÂÀÎÇϵµ·Ï Çã¶ôÇÕ´Ï´Ù.
ÀÌ Ã¼Å© ¹Ú½º°¡ ¼±ÅõÇÁö ¾ÊÀ» ¶§, IDEA´Â ±³Ã¼ ±â´É¸¦ ÀÚµ¿ÀûÀ¸·Î ¼öÇàÇÕ´Ï´Ù.

|
½ÉÁö¾î üũ ¹Ú½º°¡ ¼±ÅõÇÁö ¾Ê¾ÒÀ» ¶§µµ, ¸¸ÀÏ ¹ß°ßµÈ »ç¿ëÀÌ ¾î¶² Àбâ Àü¿ë ÆÄÀÏ¿¡¼ Á¸ÀçÇÏ¸é ±³Ã¼ »ç¿ëÀ» È®ÀÎÇÏ´Â ÇÁ·ÒÇÁÆ®°¡ ´ç½Å¿¡ ´ë±âµÉ °Í ÀÔ´Ï´Ù.
|
Refactoring
Preview ´ÙÀ̾ó·Î±×¿¡¼ (¸¸ÀÏ ±×°ÍÀÌ ³ªÅ¸³ª¸é) ´ç½ÅÀº ¼öÇàµÈ º¯°æÀ» ºÐ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÆÑÅ丵°ú ÇÔ²² ÁøÇàÇϱâ À§Çؼ, Do Refactor¸¦ Ŭ¸¯ÇÕ´Ï´Ù, ±×·¸Áö ¾Ê´Ù¸é Cancel À» Ŭ¸¯ÇÕ´Ï´Ù. »ó¼¼ÇÑ °ÍÀ» º¸·Á¸é Refactoring
Preview¸¦ º¸½Ê½Ã¿À.
|
|
´ç½ÅÀÌ ¹Ð¾î ³»·ÁÁö´Â ¸ðµç ¸â¹ö¸¦ ¼±ÅÃÇÑ ÈÄ¿¡, ±×¸®°í ¾î¶² ¹®Á¦µµ ¹ß°ßÇÏÁö ¾Ê¾Ò½À´Ï´Ù, ¸®ÆÑÅ丵À» ½ÃÀÛÇϱâ À§ÇØ OK ¸¦ Ŭ¸¯ÇϽʽÿÀ.
|