Replace Temp with Query Refactoring  

 

ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô Replace Temp with Query ¸®ÆÑÅ丵¿¡ ´ëÇØ Æ÷°ýÀûÀΠ overview¿Í  howÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼­ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.

°³¿ä


ÀÌ ¸®ÆÑÅ丵Àº ´ç½Å¿¡°Ô ¸Þ¼Òµå·Î º¯¼öÀÇ À̴ϼȶóÀÌÀú Ç¥Çö½ÄÀ» ÃßÃâÇϰí, ÃßÃâµÈ ¸Þ¼Òµå¿¡ Äݰú ÇÔ²² º¯¼ö¿¡ ¸ðµç ÂüÁ¶¸¦ ±³Ã¼ÇÏ´Â °ÍÀ» Çã¶ôÇÕ´Ï´Ù.  º¯¼öÀÇ ¼±¾ðÀº Á¦°ÅµÉ °ÍÀÔ´Ï´Ù. ±×¸®°í ÁúÀÇ ¸Þ¼Òµå´Â ´Ù¸¥ ¸Þ¼Òµå·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
int ´ë½Å¿¡ size = getActualSize()¿Í  Äڵ带 ÅëÇØ »çÀÌÁ »ç¿ëÇϸé, ¿ì¸®´Â getActualSize() ¸Þ¼Òµå¸¦ ¿î¿ëÇÕ´Ï´Ù.
ÃÖÁ¾ÀûÀÎ Äڵ尡 ´õ ¸¹Àº Àκ¸ÄÉÀ̼ÇÀ» °¡Áú °ÍÀÌÁö¸¸, ±×°ÍÀº ¸Å¿ì ´õ ±ú²ýÇϰí ÀÌÇØÇϱ⠴õ ½±°í, ÄÚµåÀÇ º´¸ñ Çö»óÀÌ ³ªÅ¸³¯ ¼ö ÀÖ´Â °÷°ú Á¤È®È÷ µ¿ÀϽÃÇÏ´Â °ÍÀ» µ½½À´Ï´Ù.

Replace Temp with Query  


 1.   temp¸¦ ÁúÀÇ·Î ±³Ã¼Çϱâ À§ÇØ, ´ç½ÅÀÌ ¿¡µðÅÍÀÇ ¸®ÆÑÅä µÇ±â¸¦ ¹Ù¶ó´Â ·ÎÄà º¯¼öÀÇ À̸§¿¡ ij·µÀ» ¹èÄ¡ÇϽʽÿÀ.  ±× ÈÄ, ¸ÞÀÎ ¸Þ´º¿¡¼­ ¶Ç´Â º¯¼ö À̸§¿¡¼­ ¸¶¿ì½ºÀÇ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼­ Refactor Replace Temp with Query  ¸Þ´º Ç׸ñÀ» ¼±ÅÃÇϽʽÿÀ.
 2.   ±× ÈÄ¿¡, ´ÙÀ½ÀÇ ´ÙÀ̾ó·Î±×´Â ÁúÀÇ ¸Þ¼ÒµåÀÇ ½Ã±×³ÊÃÄÀ» ÁöÁ¤Çϱâ À§ÇØ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù:



Name ÅؽºÆ® Çʵ忡¼­, ÁúÀÇ ¸Þ¼ÒµåÀÇ À̸§À» ÁöÁ¤ÇϽʽÿÀ.


µðÆúÆ®·Î, ÁúÀÇ ¸Þ¼Òµå´Â ¸®ÆÑÅä µÇ´Â ·ÎÄà º¯¼öÀÇ À̸§À» µû¼­ ¸í¸íµË´Ï´Ù.


Parameters ÆÐ³ÎÀº ÁúÀÇ ¸Þ¼ÒµåÀÇ Àμö·Î¼­ ¿ªÇÒÀ» ÇÏ°Ô µÉ üũµÈ(µðÆúÆ®·Î)º¯¼öÀÇ ¸ñ·ÏÀ» Æ÷ÇÔÇÕ´Ï´Ù.  Àμö·Î¼­ ³ªÅ¸³ª´Â °Í ´ë½Å üũµÇÁö ¾ÊÀº º¯¼ö´Â ´ç½ÅÀÌ ³ªÁß¿¡ ÁöÁ¤Çؾ߸¸ ÇÏ´Â '...' ·Î ¼³Á¤µÈ ±× °ª°ú ÇÔ²² ·ÎÄà º¯¼ö·Î¼­ ÁúÀÇ ¸Þ¼Òµå·Î Æ÷Ç﵃ °Í ÀÔ´Ï´Ù .

¸Å°³ º¯¼öÀÇ À̸§À» ¹Ù²Ù±â À§ÇØ, ±×°ÍÀ» ´õºí Ŭ¸¯Çϰí, ¸Å°³ º¯¼öÀÇ À̸§À» ÆíÁýÇϽʽÿÀ.

´ç½ÅÀº ¶ÇÇÑ ¼±ÅÃµÈ ¸Å°³º¯¼ö°¡ ÁúÀÇ ¸Þ¼Òµå¿¡¼­ Move up¿Í Move down ¹öưÀÇ Á¶ÀÛ¿¡ ÀÇÇØ¼­ ³ªÅ¸³ª´Â ¼ø¼­¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ç½ÅÀº Signature Preview ÆÐ³Î¿¡¼­ ÁúÀÇ ¸Þ¼ÒµåÀÇ ¹Ì¸® º¸±â ½Ã±×³ÊÃÄÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

 3.  ¸®ÆÑÅ丵 ÇÁ·Î¼¼½º¸¦ ¿Ï·áÇϱâ À§ÇØ OK¸¦ Ŭ¸¯ÇϽʽÿÀ.


·ÎÄà º¯¼ö¸¦ ¼±ÅÃÇÒ ¶§, ±× °ªÀÌ ÄÚµå ÀÌÈÄ¿¡ º¯°æµÇÁö ¾Ê´ÂÁö¸¦ È®ÀÎÇϽʽÿÀ.  ±×·¸Áö ¾ÊÀ¸¸é ´ÙÀ½ ¸Þ½ÃÁö ¹Ú½º°¡ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù: