Eclipse 리팩토링의 인라인(Inline) 기능에 대해서

황제낙엽 2007.07.27 11:16 조회 수 : 596 추천:81

sitelink1 http:// 

이클립스 기반 프로젝트 필수 유틸리티 (196페이지)

 

인라인의 의미는 '합치기' 혹은 '줄이기'다. 즉, 가능한 소스를 명확히 하고자 하는 것이다. 인라인 기능에는 두 가지 종류가 있다.
하나는 인라인 로컬 변수(Inline local variable), 또 다른 하나는 인라인 메소드 실행(Inline invocation)이다.

인라인 로컬 변수(Inline local variable)는 로컬 변수에 대해서 리팩토링하는 것으로, 메소드 내에서 불필요하게 로컬 변수를 정의하는 것을 줄이고자 생겨난 기능이다.

예를 들어, 다음과 같이 로컬 변수(intVar)를 만들고 또 다른 로컬 변수(i)에 이 변수의 메소드(intValue) 실행값을 넘겨준다고 하자. 그런데 이 메소드 실행 이외에 intVar의 사용이 없다면,
굳이 두 개의 로컬 변수를 둘 필요 없이 하나의 로컬 변수(i)에 다음과 같이 한 줄로 표현하는 것이 간결하고, 명확하다. 바로 인라인 로컬 변수다.

 

 

 인라인 로컬 변수 : 리팩토링 전 인라인 로컬 변수 : 리팩토링 후 
 Integer intVar = new Integer(10);
 int i = intVar.intValue();
 int i = new Integer(10).intValue(); 


인라인 메소드 실행(inline invocation)은 메소드에 대해서 리팩토링하는 것으로써, 외부 메소드를 호출하는데 있어서 외부 메소드 안의 정의된 내용이 굳이 메소드를 호출하여 사용할 정도의 분량이 되지 않고, 단순한 내용일 경우 메소드에 사용된 코드 내용으로 대체할 때 사용한다.

예를 들어, 다음과 같이 외부 메소드가 정의되어 있을때, 리팩토링을 하게 되면 외부 메소드의 내용을 그대로 내부 메소드로 가져오게 하는 것이다. 리팩토링 시에 외부 메소드의 내용까지 지우는 옵션도 있다.

 

 

 

 인라인 메소드 실행 : 리팩토링 전  인라인 메소드 실행 : 리팩토링 후 
 내부 메소드;

 some.doSomething();

 외부 메소드;

 doSomething() {

   System.out.println("Hi");

   System.out.println("Hello.");

 }
 
 내부 메소드;
 
 System.out.println("Hi");
 
 System.out.println("Hello.");

 외부 메소드;

 doSomething() {

   System.out.println("Hi");

   System.out.println("Hello.");

 } 

위의 기능을 실행하기 전에 미리보기(preview) 다이얼로그를 이용하여 확인한 후 실행하기 바란다.

 

번호 제목 글쓴이 날짜 조회 수
82 프로그램 디버깅 학습 황제낙엽 2026.06.25 172
81 Gradle 프로젝트의 Buildship 캐시 삭제 방법 황제낙엽 2025.11.21 344
80 프로젝트 Source 폴더에 지정한 서블릿이 웹서비스에서 인식하지 않는 문제 황제낙엽 2025.01.04 740
79 [phind/Buildship Gradle Integration 3.0] Preferences / Gradle / Gradle distribution 에 대한 설명 황제낙엽 2024.11.11 731
78 STS (Eclipse)에서 Language Server 동작 비활성화 하기 file 황제낙엽 2023.12.28 2003
77 eclipse 에서 build.gradle 수정시 프로젝트에 자동 반영 황제낙엽 2023.12.28 768
76 IntelliJ 의 ultimate(상용) 와 community(무료) 버전의 차이 file 황제낙엽 2023.11.01 2201
75 eclipse tomcat 에 ssl 적용 황제낙엽 2023.09.10 732
74 localhost 는 접속 가능한데 도메인으로는 접속이 불가 황제낙엽 2023.08.13 681
73 remote desktop 에서 vscode 로 작업시 키입력이 되지 않을때 (from bing) 황제낙엽 2023.07.25 1767
72 Eclipse, Gradle 프로젝트 생성, Dynamic Web Project 로 변경 황제낙엽 2023.07.12 888
71 로컬 작업 중 모바일로 페이지 확인하는 방법 live server host file 황제낙엽 2023.05.23 720
70 유용한 단축키 모음 - 개발을 누구보다 빠르게 황제낙엽 2023.02.25 616
69 vector 이미지 만들기 황제낙엽 2022.12.22 598
68 자동 import 설정 file 황제낙엽 2022.12.22 652
67 [안드로이드 스튜디오] 자주 쓰는 단축키 20개 황제낙엽 2022.11.11 622
66 Android Studio GitHub 공유하기 및 사용하기 황제낙엽 2022.11.02 552
65 코드 포맷터 (Extension Prettier - Code formatter) file 황제낙엽 2021.01.16 699
64 디버깅 관련 (SourceMap, Debugger for Chrome, Node.js) 황제낙엽 2020.08.18 643
63 vscode에서 기본 디버깅과 프로세스 디버깅 file 황제낙엽 2020.08.16 803