Eclipse 리팩토링 (Refactoring) 사용하기

황제낙엽 2007.07.27 11:14 조회 수 : 2803 추천:85

마우스 오른쪽 버튼 클릭에서 나타나는 메뉴로 제공되는 이클립스의 Refactor는 프로젝트의 기능에 영향을 미치지 않고, 변경하려는 코드와 관련 있는 코드를 전체적으로 리펙토링하도록 돕는다.
예를들어, Java 소스의 파일명을 그냥 변경하게 되면 이 소스를 사용하고 있는 다른 소스에 컴파일 에러가 날 것이 분명하고, 에러가 나는 소스를 찾아가며 수정해야 한다.
그러나 이클립스의 리팩토링을 사용하면, 즉 소스 에디터의 팝업 메뉴에서 Refactor > Rename 을 사용해 이름을 변경하면 이 소스를 호출해 사용하고 있는 소스를 모두 찾아 자동으로 전체 수정을 해준다.
 

[리펙토링 메뉴]
 이름 기능 단축키 
 Rename  선택한 요소(소스 명, 메소드, 로컬 변수, 메소드 파라미터, 패키지 등)의 이름과 이 요소를 참조하는 모든 것을 수정한다.  [Alt]+[Shift]+[R]
 Move  선택한 요소(파일, 메소드, 패키지, 타입 등)을 다른곳으로 이동시키고, 이 요소를 참조하는 코드를 수정한다.  [Alt]+[Shift]+[V]
 Change Method
 Signature
 메소드의 modifier, 리턴 타입, 파라미터의 이름, 파라미터의 타입, 파라미터의 순서, 파라미터의 개수 등을 변경하고, 이를 참조하는 다른 모든 소스의 코드를 수정한다.                         
 Convert Anonymous
 Class to Nested
 메소드 내에서 사용되는 익명의 클래스 예를 들어, 리스너(listener)등을 추가할 때, 메소드의 파라미터로 작성하는 익명의 Inner 클래스를 Inner이름을 명시한(Nested) 클래스로 변경한다.  
 Convert Nested
 Type to Top Level
 멤버 클래스를 별도의 소스 파일로 변경한다.  
 Push Down   자식 클래스에게 부모 클래스의 메소드를 선택적으로 내리고 Push Down된 메소드는 부모 클래스에서 삭제된다. 미리보기를 통해 생성될 내용을 볼 수 있다.  
 Pull Up  Push Down과는 반대로 자식 클래스의 특정 메소드를 부모 클래스로 올리고 자식 클래스에는 삭제시킨다.  
 Extract Interface  클래스 명을 선택하고, 이 메뉴를 실행하면, 이 클래스의 인터페이스를 추출한다.  
 Use Supertype
 Where Possible
 선택한 타입 객체의 부모 객체 리스트 중에 하나를 선택하여 부모 타입으로 변경시킬 수 있다.  
 Inline   
                               
 변수나 메소드, 상수 등의 요소를 대신하여 원래의 값으로 자동 생성한다.
 로컬 변수를 인라인하면, 변수 대신에 변수의 원래 값을 생성한다. 메소드를 인라인하면, 이 메소드의 원래 값을 생성한다.
 [Alt]+[Shift]+[I]
 Conert Local
 Variable to Field
 로컬 변수를 멤버 변수로 변환시킨다.  
 Encapsulate Field   멤버 변수에 직접 접근하지 못하도록 getXXX()메소드와 setXXX()메소드를 통해 접근하도록 변경한다.  
번호 제목 글쓴이 날짜 조회 수
38 VSS Plugin version for Eclipse file 황제낙엽 2010.09.29 82
37 eclipse 3.5(Galileo)에서 SVN 사용하기 황제낙엽 2009.11.02 99
36 eclipse에서 JVM terminated. Exit code=-1 file 황제낙엽 2009.02.13 26
35 프로퍼티 파일(application.properties)의 유니코드 변환(native2ascii) 에디터 플러그인 황제낙엽 2005.12.20 46
34 JadClipse Eclipse Europa 버젼에서 쓰기 (펌) file 황제낙엽 2008.07.30 67
33 Eclipse에 웹로직 9.2 설정하기 황제낙엽 2008.04.30 139
32 Eclipse 방식으로 단위 테스팅 하기 황제낙엽 2007.10.03 69
31 Eclipse 3.0 (이클립스) - 자주 사용하는 기본 기능들 및 단축키 황제낙엽 2005.11.11 72
30 코드 포맷팅 기능 사용하기 황제낙엽 2007.07.27 51
29 디버깅(Debugging) 기능 사용하기 황제낙엽 2007.07.27 99
28 리팩토링의 인라인(Inline) 기능에 대해서 황제낙엽 2007.07.27 39
» 리팩토링 (Refactoring) 사용하기 황제낙엽 2007.07.27 2803
26 코드 템플릿을 이용한 Javadoc 황제낙엽 2007.07.27 128
25 Eclipse 3.0 (이클립스) - 알아두면 좋은 유용한 단축키 모음 황제낙엽 2007.07.19 94
24 디버깅(debuging)시 잘못된 경로에서 소스를 찾게 되는 경우 황제낙엽 2007.06.04 82
23 이클립스에서 생성한 Default Java Project를 Dynamic Web Project 로 변신시키기 file 황제낙엽 2007.04.19 173
22 Eclipse 성능높이기 황제낙엽 2007.04.12 25
21 TPTP 를 이용한 자바 어플리케이션 프로파일링 file 황제낙엽 2007.04.12 64
20 Ecipse & UML file 황제낙엽 2007.04.12 80
19 Eclipse 인터페이스는 영문, 도움말은 한글로 보기 황제낙엽 2007.03.07 489