본문 바로가기

웹개발/플러그인 (Eclispse)

[이클립스]CV는 그만! 나만의 스페셜한 자동 완성 기능 Template 활용

소개

 코딩을 새로 시작하거나 기존에 코딩을 하던 분들이 가장 많이 하게 되는게 Ctrl + C, V인데 새로운 소스를 붙여 넣는 행위도 있지만, 기존 소스들을 찾아 붙여 넣는 패턴도 많이 있습니다.

 기존 소스들 중 자주 사용하는 소스들을 매번 찾는 시간을 줄이는 방법을 소개 하려 합니다.
 이클립스의 template 기능으로 나만의 소스를 저장해둬서 필요할 때마다 쉽고 간편하게 사용 할 수 있는 기능입니다. 

자동완성 기능 사용하기


이클립스에서 코딩하다보면 다음과 같은 화면을 많이 볼 수 있습니다.



 for 를 입력하고 Ctnl + space 를 눌렀을 때 나오는 것으로기본적으로 제공하고 있는 자동완성기능입니다.

for 로 시작되는 자동완성이 많이 있네요.

선택해보면


 for 문이 완성되고 커서가 for문 안에 위치하는 것을 보게 됩니다.

사용법



이 자동완성 기능은 Window > Preferences 에서 



 template 검색하시면

Java, Html, Css, JavaScript 종류별로 분류되어진 것을 볼 수 있습니다.

자주 사용하는 java 를 선택해보면



코딩하면서 본 자동완성 기능들이 모두 담겨 있습니다.



자동완성으로 만든 for문도 있는걸 볼 수 있습니다.



자주 쓰는 syso(sysout) 도 볼 수 있습니다.



 Edit버튼을 눌러보시면 sysout을 수정할 수 있는 팝업창이 뜹니다. 
여기서 sysout 을 원하는 대로 수정할 수 있지만 권장하지 않으며 넘어가도록 하겠습니다.

 이제 template 을 이용하여 자주 쓰는 코드를 자동완성 기능으로 추가해보겠습니다.

 제가 요즘 MVC 패턴을 많이 사용하는데 컨트롤러에서 메서드를 많이 복붙하는 상황과 메서드를 복붙했는데 불필요한 내용까지 복사하는 경우가 많을 겁니다.

예를 들면



 단순 view 이동만하는 메서드를 추가하는데 불필요한 행동들이 너무 많습니다.

 만약에 코드를 다 외워서 직접 치는것도 되겠지만, 그건 그것대로 자주 반복이 되면 노가다입니다.

이를 자동완성 기능으로 사용한다면



 이전 상황과는 다르게 필요한 메서드 찾을 필요도 없고 불필요한 행동이 생략이 되니 많이 빨라졌습니다.

자신만의 자동완성 기능 추가는 다음과 같습니다.



new 클릭 하시면 다음과 같은 팝업창이 뜹니다.



 name은 말 그대로 쓰고 싶은 단어를 입력해주시면 됩니다. 

 저는 예제에서 mymethod 로 설정했습니다.
Description 은 간단히 설명쓰시구 Pattern 에는 원하는 코드를 입력하시면 됩니다.

위의 mymethod 를 예시로 보여드리면


이런 방식으로 작성하면 됩니다.

여기서 ${???} 가 보이시죠?

template 작성에서 중요한 부분인데

만약에 내가 value 의 값과 메서드명 그리고 return 의 경로까지 통일하고 싶다? 

그러면 해당 위치에 똑같은 ${name} 을 입력해 주시면 됩니다.

위의 예제 gif 와 이 화면에서는 ${url_input} 이 3개가 있습니다.

value 와 메서드명 그리고 return  이 동시에 "study" 가 입력 되었습니다.
입력되는 값은 동일한 ${name} 에 똑같이 적용이 됩니다.

여러 장소에 같은 값을 넣고 싶다?
그러면 해당 위치마다 ${name} 을 동일하게 맞춰주시면 됩니다.

자동완성 기능으로 코드가 입력이 되면 위에서 ${name} 순서대로 자동으로 cursor 가 이동되게 됩니다.

편하게 값을 입력하시구 Tab 키를 누르시면 다음 ${name} 으로 cursor 가 이동됩니다.

주의 사항



 ${???} 에는 이미 사용중인 명령어들이 존재한다는 사실 name 을 지정할 때 조심하시기 바랍니다.

 ${cursor} 같은 경우는 사용자가 임의로 입력한 ${name}의 값 입력이 끝나면 오는 위치입니다.

 ${url_input} 이 처음에 입력되고 그 다음 ${folder_name} 이 입력되면 마지막으로 ${cursor} 위치로 커서가 이동되게 됩니다.

 ${date} 경우엔 메서드가 추가되는 날짜를 자동적으로 입력되게 해줍니다.


 2017. 12. 13. 날짜가 잘 찍히네요.
 
 template 에는 저런 명령어들이 많이 존재하는데 사용을 사용을 많이 하는 명령어만 간단히 소개 해드리겠습니다.

 예제로는 단순히 뷰 이동만 보여드렸지만 사용 용도에 따라 추가적으로 자신만의 커스터마이징을 하시면 되겠습니다.

 Java가 아닌 Javascript 에서도 사용하시면 편합니다.


 중요한게 하나 빠졌는데 자바스크립트에서 $ 를 많이 사용하는데 $ 는 $$ 로 사용하셔야 합니다.


$$ 2개를 쓰는 이유는 이스케이프 문자이기 때문인데 
이부분은 이번 주제와 조금 멀기에 소개하지 않도록 하겠습니다.라고 
관심이 있으신 분들은 따로 검색해보시면 될 것 같네요.