56. Eclipse Etc.../Eclipse2008. 10. 21. 20:40
반응형

"Search메뉴에 References라는 기능을 사용하시면 됩니다.

해당 메소드 이름위에서 마우스 오른쪽 클릭하셔두 뜨구요."

(원문 : http://openseed.net/modules.php?name=Forums&file=viewtopic&t=341#666)

Posted by 1010
56. Eclipse Etc.../Eclipse2008. 10. 21. 20:38
반응형

이번 프로젝트하면서 새로 쓰게된 플러그인을 모아봤다.


* Eclipseutil-refresh 플러그인

https://eclipseutilplugins.dev.java.net/

자주쓰는 CVS 커밋,업데이트,싱크 메뉴를 단축아이콘으로 등록하여 편리하다.




* Copy Fully Qualified Class Name 플러그인

http://www.jave.de/eclipse/copyfully/index.html

클래스이름을 패키지명까지 포함해서 쓸일이 많다면 필수적인 플러그인이다.




* GotoFile 플러그인

http://www.muermann.org/gotofile/

프로젝트에 속한 파일을 빨리 찾을 수 있다. 파일명의 일부만 치면 바로바로 목록이 나온다.



* Windows Context Menu 플러그인

http://www.geocities.com/richard_hoefter/ContextMenuPlugin/

이클립스에서 윈도우 컨텍스트메뉴(오른클릭 메뉴)를 쓸 수 있다.



* Call Hierarchy 플러그인

http://eclipse-tools.sourceforge.net/call-hierarchy/

메소드 호출관계를 트리로 보여준다.


스크린샷 http://eclipse-tools.sourceforge.net/call-hierarchy/images/screenshot1.png

 

 

* Commonclipse 플러그인

http://commonclipse.sourceforge.net/

toString() 메소드 등을 자동으로 만들어준다. 자바빈의 내용을 로그에 찍고 싶을 때 좋다.




* Properties Editor 플러그인

http://propedit.sourceforge.jp/index_en.html

properties 파일 편집할 때 그냥 일반 텍스트 편집하듯 편집하면된다.native2ascii 같은거 몰라도 된다.


 



* AnyEdit tools 플러그인

http://andrei.gmxhome.de/anyedit/index.html

텍스트 에디터 기능이 약한 이클립스에 몇가지 기능을 추가해준다. 나는 주로 Open type(file) under cursor 메뉴를 사용한다.


step1



* Log4E 플러그인

http://log4e.jayefem.de/index.php/Main_Page

소스에 log4j 구문을 삽입해준다. 코딩 무지 편해졌다. -.-;



* Web Service Console 플러그인

http://wscep.sourceforge.net/

웹서비스를 개발한다면 꼭 있어야한다. 요청/응답 SOAP 메시지를 직접 눈으로 보면서 서비스를 테스트할 수 있다.

스크린샷 : http://wscep.sourceforge.net/images/s5.GIF

Posted by 1010
56. Eclipse Etc.../Eclipse2008. 9. 29. 09:47
반응형

지난 6월말 이클립스의 3.4 버전 가니메데가 릴리스되었다. 가니메데는 이전 배포판인 칼리스토, 유로파와 마찬가지로 목성의 위성 이름이다. 가니메데는 이전 버전인 유로파보다 많은 23개의 프로젝트로 구성되어 있다. 많은 기능이 추가되고 개선되었지만 자바 개발자에게 필요한 기능 위주로 가니메데의 기능을 알아본다.

 

시작하기 전에

새로운 기능을 알아보기 전에 윈도 운영체제 사용자들이 겪을 치명적인 문제를 포함한 몇 가지 문제점과 가능한 해결책을 간략히 알아본다.

  1. 이클립스가 실행 되지 않는 문제

    다운받은 가니메데 배포판의 종류에 따라서 ECLIPSE_HOME/eclipse.ini 파일에 기록된 메모리 크기 관련 설정값이 다르다. 보통은 윈도 버전의 이 클립스에서 메모리 부족 때문에 나타나는 현상으로 Java EE 버전이나 플러그인 개발 버전을 다운 받았다면, eclipse.ini 파일의 -Xmx512m를 – Xmx256으로 수정한다.

  2. 한글 깨짐 현상

    일부 영문 전용 폰트에서 한글 깨짐 현상이 발생한다. 대표적으로 많은 개발자의 사랑을 받고 있는 ‘Bitstream Vera Sans Mono’을 이용하면 문제를 확인할 수 있다. 임시방편으로 영문 전용 폰트에 한글 폰트를 추가해 새로운 폰트를 만들어 사용하는 방법이 있다.

 

자바 개발환경 개선사항

새로운 리팩터링

자바 리팩터링에 ‘Extract Class(클래스 추출)’가 추가됐다. Extract Class는 한 클래스가 너무 많은 책임을 수행할 때, 책임을 다른 클래스로 분리하는 리팩터링이다.

리팩터링 책의 예제를 활용해보자. <리스트 1>은 리팩터링 전의 Person 클래스로 간단하지만 개인 정보와 연락처 정보 관리라는 두 가지 책임을 가진다. Extract Class로 연락처 관리의 책임을 추출해보자.

 

<리스트 1>Extract Class 리팩터링을 적용하기 전 Person 클래스

  1. package refactoring;  
  2.   
  3. public class Person {  
  4.   private String name;  
  5.   private String officeAreaCode;  
  6.   private String officeNumber;  
  7.   
  8.   public String getName() {  
  9.    return name;  
  10.   }  
  11.   
  12.   public void setName(String name) {  
  13.    this.name = name;  
  14.   }  
  15.   
  16.   public String getOfficeAreaCode() {  
  17.    return officeAreaCode;  
  18.   }  
  19.   
  20.   public void setOfficeAreaCode(String officeAreaCode) {  
  21.    this.officeAreaCode = officeAreaCode;  
  22.   }  
  23.   
  24.   public String getTelephoneNumberNumber() {  
  25.    return "( " + officeAreaCode + ") "+ officeNumber;  
  26.   }  
  27.   
  28.   public String getOfficeNumber() {  
  29.    return officeNumber;  
  30.   }  
  31.   
  32.   public void setOfficeNumber(String officeNumber) {  
  33.    this.officeNumber = officeNumber;  
  34.   }  
  35. }  

 

먼저 Extract Class 메뉴를 선택한다. 최상단 메뉴나 <화면 1>과 같이 편집기 의 오른쪽 마우스 컨텍스트 메뉴에서 Refactor -> Extract Class를 선택한다.

 

<화면 1>Extract Class 메뉴 선택

 

Extract Class 메뉴를 선택하면 <화면 2>와 같이 설정 다이얼로그가 나온다. 설정 다이얼로그에서는 추출 대상 필드를 선택하고, 추출할 클래스 이름과 추출한 클래스의 객체를 참조할 필드 이름을 지정한다. 여기서는 연락처 정보와 관련된 officeAreaCode와 officeNumber 필드를 Telephone 클래스로 추출한다. Person 클래스가 참조하는 Telephone 클래스 인스턴스의 이름은 telephone으로 설정한다.

 

<화면 2>Extract Class 설정 다이얼로그

 

<리스트 2>와 <리스트 3>의 코드 로 리팩터링되었다. 위에서 선택한 두 필드를 가지고 있는 Telephone 클래스가 생성되었고, Person 클래스는 Telephone 클래스의 인스턴스를 필드로 가지고 이를 참조하도록 변경되었다. 이클립스가 자동으로 처리해주는 리팩터링 기능에서 특히 클래스간의 관계를 다루는 리팩터링에 대한 처리가 미흡한 편인데 편리한 리팩터링이 하나 더 추가되었다.

 

<리스트 2>Extract Class 리팩터링 적용 후 Person 클래스

  1. package refactoring;  
  2.   
  3. public class Person {  
  4.     private String name;  
  5.     private Telephone telephone = new Telephone();  
  6.   
  7.     public String getName() {  
  8.         return name;  
  9.     }  
  10.      
  11.     public void setName(String name) {  
  12.         this.name = name;  
  13.     }  
  14.      
  15.     public String getOfficeAreaCode() {  
  16.         return telephone.getOfficeAreaCode();  
  17.     }  
  18.      
  19.     public void setOfficeAreaCode(String officeAreaCode) {  
  20.         this.telephone.setOfficeAreaCode(officeAreaCode);  
  21.     }  
  22.      
  23.     public String getTelephoneNumberNumber() {  
  24.         return "( " + telephone.getOfficeAreaCode() + ") "+ telephone.getOfficeNumber();  
  25.     }  
  26.      
  27.     public String getOfficeNumber() {  
  28.         return telephone.getOfficeNumber();  
  29.     }  
  30.      
  31.     public void setOfficeNumber(String officeNumber) {  
  32.         this.telephone.setOfficeNumber(officeNumber);  
  33.     }  
  34. }  

 

<리스트 3>Extract Class 리팩터링 적용 후 Telephone 클래스

  1. package refactoring;  
  2.   
  3. public class Telephone {  
  4.     private String officeAreaCode;  
  5.     private String officeNumber;  
  6.   
  7.     public Telephone() {  
  8.     }  
  9.   
  10.     public String getOfficeAreaCode() {  
  11.         return officeAreaCode;  
  12.     }  
  13.   
  14.     public void setOfficeAreaCode(String officeAreaCode) {  
  15.         this.officeAreaCode = officeAreaCode;  
  16.     }  
  17.   
  18.     public String getOfficeNumber() {  
  19.         return officeNumber;  
  20.     }  
  21.   
  22.     public void setOfficeNumber(String officeNumber) {  
  23.         this.officeNumber = officeNumber;  
  24.     }  
  25. }  

 

Breadcrumb

자바 편집기 영역에 추가된 기능 중 단연 돋보이는 기능은 ‘Breadcrumb’다. 노트북 등 화면이 크지 않은 환경에서 개발할 때는 편집기 영역을 최대화(커맨드 + M)해서 작업하는 경우가 많은데, Breadcrumb를 통해 현재 위치를 한눈에 볼 수 있고, 편집기의 최대화를 해제하고 ‘Package Explorer (패키지 탐색기)’등을 이용해서 다른 파일을 열어야 하는 불편함을 해소한다.

사용법은 정말 간단한데 화면 상단 툴바의 ‘Toggle Breadcrumb’를 선택하거나, <화면 3>과 같이 편집기의 컨텍스트 메뉴 중 ‘Show in Breadcrumb’를 선택하면 된다. 컨텍스트 메뉴에서 Breadcrumb를 비활성화 시킬 수 있는 방법은 없으니 참고하자. Breadcrumb를 비활성화 시키려면 상단 툴바의 토글 버튼을 이용하자.

 

<화면 3> Breadcrumb 활성화

 

Breadcrumb가 활성화되면 <화면 4>와 같이 편집기 상단에 현재 위치를 표시해주는 표시영역이 생긴다. 이 영역을 통해 최대화 상태의 편집기에서도 현재 위치를 한눈에 볼 수 있고, 최대화 상태에서도 편리하게 다른 파일을 열 수 있다.

<화면 4>Breadcrumb의 활성화와 다른 클래스로 이동하기

 

향상된 Call Hierarchy

이클립스를 사용하는 자바 개발자에게 인기 좋은 기능 중 하나가 ‘Call Hierarchy (호출 계층)’를 살펴보는 기능으로 호출 관계가 복잡한 함수의 호출 관계를 트리 구조로 보여준다. 이클립스 3.3까지는 호출자(caller)를 찾을 때, 특정 함수나 생성자를 사용하고 있는 함수를 찾는 기능만을 제공했다.

이 정도로도 편리한 기능이지만 코드에 존재하지 않는 기본 생성자를 호출해서 객체를 생성하는 위치를 찾으려면, 기본 생성자를 코드에 추가해서 찾아야 하는 단점이 있었다. 또, 상수나 필드를 사용하는 위치를 찾는 기능은 없기 때문에 검색 기능을 이용해서 찾아야 하는 불편함이 있었다.

이클립스 3.4에서는 클래스를 선택하고 ‘Call Hierarchy’를 찾아보면(CTRL + ALT + H) 모든 생성자를 호출하는 위치를 찾아준다. 기본 생성자가 코드 상에 존재하지 않아도 찾아주니 편리하다. 또, 상수나 필드를 사용하는 위치도 ‘Call Hierarchy’를 통해 보여주니 더 이상 불편하게 검색하지 않아도 된다. <화면 5>과 같이 모든 생성자와 상수에 대한 호출 계층을 확인할 수 있다.

 

hierarchy1.jpg

hierarchy2.jpg

 <화면 5>향상된 Call Hierarchy. 모든 생성자의 호출 위치(상단)과 필드나 상수의 사용 위치(하단)를 확인할 수 있다.

실행 가능한 JAR 파일 내보내기

기존의 이클립스의 내보내기(Export) 기능에 실행 가능한 JAR(Runnable JAR) 파일을 내보낼 수 있는 기능이 추가되었다. 이를 통해 자바 실행 환경(Java Runtime Environment, JRE)이 설치 되었다면 JAR 파일을 더블클릭하는 것만으로 애플리케이션을 실행할 수 있다.

<리스트 4>는 “Hello Ganymede!”라는 메시지를 화면에 출력하는 단순한 자바 스윙 애플리케이션이다. 이 예제를 실행 가능한 형태의 JAR 파일로 배포해보자.

 

<리스트 4> main() 함수를 가지는 단순한 스윙 예제

  1. package runnable;  
  2.   
  3. import javax.swing.JFrame;  
  4. import javax.swing.JLabel;  
  5.   
  6. public class HelloSwing extends JFrame {  
  7.   
  8.   public HelloSwing() {  
  9.    setTitle("Eclipse 3.4 Ganymede");  
  10.    getContentPane(). add(new JLabel("Hello Ganymede!"));  
  11.    setSize(250, 100);  
  12.   }  
  13.   
  14.   public static void main(String[] args) {  
  15.   new HelloSwing().setVisible(true);  
  16.   }  
  17. }  

 

<화면 6> 실행 가능한 JAR 파일 내보내기

‘File -> Export -> Java -> Runnable JAR file’옵션을 통해 실행 가능한 JAR 파일을 생성할 수 있다. 먼저, Launch Configuration 중에서 JAR 파일을 생성할 대상을 선택한다. 선택한 대상이 MANIFEST.MF 파일에서 Main-Class로 이용된다. 대상 경로와 파일이름을 선택하면 실행 가능한 파일을 생성한다. 생성된 JAR 파일을 더블클릭하면 <화면 7>과 같이 애플리케이션이 실행된다.

 

<화면 7>JAR로 실행한 애플리케이션

 

<리스트 5>와 같이 자동 생성된 MANIFEST.MF 파일 은 이전에도 사용자가 직접 작성할 수 있었다. 하지만 이클립스는 단지 MANIFEST.MF 파일을 자동 생성해주는 기능 이상을 제공한다.

 

<리스트 5>자동 생성된 MANIFEST.MF 파일

  1. Manifest-Version: 1.0  
  2. Class-Path: .  
  3. Main-Class: runnable.HelloSwing  

 

예제는 외부 라이브러리를 사용하지 않으니 그리 복잡하지 않지만, 만약 애플리케이션을 구동하는 데 수많은 이클립스 프로젝트에 대한 참조와 라이브러리 파일이 필요하다면 사용자가 직접 작업하기에는 꽤나 복잡해진다. 그래서 이클립스의 실행 가능한 JAR파일 생성 기능은, 참조하는 프로젝트의 모든 클래스 파일과 포함된 모든 라이브러리의 압축을 해제한 클래스 파일을 함께 묶어주는 기능을 제공한다. 사용자는 압축을 해제한 형태로 라이브러리를 재배포하는 것이 라이센스를 위반 하는지만 주위를 기울이면 된다.

 

Outline 화면에서 코드 재배열하기

개요(Outline) 화면에서 코드의 구성 요소의 위치를 재배열 할 수 있는 기능이 이클립스 3.4에 조용히 추가되었다. 작업 중 추가한 한 뭉치의 코드에서 구성 요소간의 순서가 마음에 들지 않으면 하나씩 잘라내서 원하는 위치에 붙여넣는 작업을 반복하게 된다. 이제 개요 화면 에서 한눈에 전체 구조를 보면서 드래그 앤 드롭 기능을 이용해서 코드를 재배열 할 수 있다. <화면 8>에서 자바 메서드의 드래그 앤 드롭을 통한 위치 이동을 보여준다.

 outline1.jpg

outline2.jpg

<화면 8> Outline에서 구성 요소의 드래그 앤 드롭

 

이때, Outline의 자동 정렬 기능 을 이용 중이라면 드래그 앤 드롭은 동작하지 않는다. 특정 요소의 위치를 옮길 때 요소와 요소 사이의 빈 줄 삽입 여부가 의도한 대로 처리되지 않을 수 있으니 처리가 필요하다면 주의하자. Outline에서의 재배치 기능은 자바 에디터뿐 아니라 XML 에디터에서도 지원한다. 앞으로 다양한 에디터 환경에서 지원할 것으로 기대된다.

 

리치 호버

특정 요소 위에 마우스를 가져다 두면 나타나는 JavaDoc 설명을 보여주는 것과 같은 호버 기능이 향상되었다. JavaDoc 호버는 <화면 9>의 상단 화면과 같이 JavaDoc 화면에서 보기, 외부 브라우저에서 보여주기 등 더 풍부한 기능을 제공한다. 리치 호버 기능이 정말 유용하게 사용되는 때는 디버그 상황에서다. <화면 9>의 하단 화면에서 볼 수 있듯이 복잡한 자료구조에 대한 값도 한 눈에 볼 수 있는 기능을 제공한다. 예전처럼 Variables 화면을 뒤지거나, Expressions 화면에 표현식을 입력해 봐야 하는 불편함이 해소되었다.

 hover1.jpg

hover2.jpg

<화면 9> 향상된 호버 기능. JavaDoc 호버(상단)와 디버거 호버(하단)

 

저장 기본 동작 정의

아무리 팀에서 코드 형식을 정해놓고, 이클립스 자동 포맷에 맞춰서 만들어 두어도 자신만의 스타일에 익숙하다면 종종 잊어버리곤 한다. 또, 개발과정 중에 사용하다 남은 불필요한 Import 잔재를 한번에 없애고 싶지만 자동으로 처리해 주지 않으면(Organized Import 기능이 자동으로 처리해 주지만, 직접 명령을 수행해야 한다.) 역시 잊어버리기 쉽다.

이런 요구를 충족해 주는 기능으로 Save Actions 기능이 추가됐다. ‘Windows (윈도) /Eclipse (맥) -> Preferences -> Java -> Editor -> Save Actions’를 보면 저장 시 자동으로 문서 포맷 맞추기, 불필요한 Import 구문 정리하기 등의 기능을 제공한다. <화면 9>와 같이 저장 시 실행할 행동을 정의할 수 있으며, 문서 정렬은 전체 문서에 저장할 것인지 수정된 영역에만 적용할 것인지를 지정할 수 있다.

save.jpg

<화면 10 >저장 시 함께 처리할 행동 정의

 

Launch Configuration 내보내기/들여오기

Import(가져 오기)/Export(내보내기) 메뉴에 추가된 기능으로 그 동안의 실행 설정(Launch Configuration)을 XML 파일로 저장하고, 저장된 XML 파일을 가지고 오는 기능이 추가됐다.

이 설정은 JDK 버전을 여러 버전으로 맞춰놓고 작업하는 것(컴파일 레벨의 변경이 아니라 실제 JRE를 대체하면 전부 재빌드를 수행하므로 하나의 작업공간에서 모두 처리하기에는 번거롭다)과 같은 이유 등으로 이클립스를 여러 개 설치해 놓고 작업 하거나 작업 공간을 다시 구축해야 하는 경우 매번 복잡한 실행 설정을 하지 않아도 되기에 유용하다.

 

그 외 자바 개발 환경 개선사항

개발 중인 애플리케이션의 모든 메시지를 별도의 리소스 파일로 따로 뽑아서 관리한다면, 문자열 하나를 찾기 위해 키 값을 찾고, 리소스 파일을 열어서 다시 해당 키값으로 찾아가는 과정이 번거롭게 느껴진다. 가니메데에 새로 추가된 기능으로 리소스 파일로 바로 찾아가는 기능이 추가됐다.

이제 자바 빌드에서 멀티 코어 CPU를 지원한다. 기존의 프로젝트를 이클립스 3.4와 이전 버전의 이클립스에서 모두 새로 빌드해서 체감속도 향상을 느껴보자.

JUnit 테스트를 실행하면 이제 테스트케이스 별로 실행시간을 각각 표시해 준다. 오래 걸리는 테스트케이스를 따로 관리할 때 유용하다.

또, Content Assist 기능, Quick Fix 기능 등 에디터 영역이 전반적으로 편리해졌다.

 

자바 개발 환경외 주요 변경사항

여기서 다루는 내용은 이클립스 3.4의 자바 개발환경에서의 변경과 개선사항이지만, 자바 개발 환경 이외의 주요한 몇 가지 사항은 알아둘 가치가 있다. 물론 자바 개발과 관련 없는 가장 큰 변경 사항은 화려해진 시작 화면(스플래시 이미지)이다.

새로운 설치 /업데이트 서비스 – p2

기존에 업데이트 매니저를 이용해 플러그인을 설치하던 사용자라면 바로 알아차렸을 텐데, 이클립스의 플러그인 설치/업데이트 기능이 단순히 UI만 변경된 것이 아니라 완전히 새로 변경되었다.

다운로드 자동 재시도, 적합한 미러 자동 선택하기 등의 개선 사항이 있지만 무엇보다도, 기존 사용자들이 가장 불만을 가지고 있던 부분인 버전 의존성 확인 부분이 크게 개선되었다.

이클립스 소스 코드 보고 베끼기 - 플러그인 스파이

이클립스 3.4의 플러그인 개발 환경(Plug-in Development Environment, PDE) 에서 가장 눈에 띄는 기능은 ‘플러그인 스파이 (Plug-in Spy)’다. 이클립스를 사용하다 보면 플러그인 개발 자가 아닐지라도 , 어떻게 구현됐는지 코드 를 보고 싶은 경우가 있다. 기존에는 플러그인 개발자에게도 특정 영역의 코드를 찾아가는 작업이 쉽지 않았다. 이제 플러그인 스파이 덕분에 코드를 보고 싶은 관심 대상 화면을 선택한 후 ‘SHIFT +ALT+F1’을클릭하면 해당 화면이 정의된 플러그인과 해당 화면의 클래스 등 각종 정보를 쉽게 얻을 수 있다.

플러그인 스파이 기능을 활용하려면 PDE 관련 플러그인을 설치하거나 플러그인 개발자용 이클립스를 다운받아야 한다. 이클립스의 소스 코드를 참조해서 자신만의 플러그인을 만드는 내용에 대해서는 다음에 기회가 되면 자세히 알아보겠다.

자바스크립트 개발 툴킷

웹 개발 환경에서 가장 눈에 띄는 변화는 WTP 3.0에 새로 추가된 자바스크립트 개발 툴킷(JavaScript Development Toolkit, JSDT)이다. js 파일의 포맷팅 기능, 콜 계층 보기 지원 등의 기능이 눈에 띈다. 게다가 추가적인 자바스크립트 라이브러리의 지원을 위한 확장점도 제공하고 있으니, 자신만의 라이브러리를 지원하는 것도 용이하다. WTP 3.0에 포함된 기능이므로 WTP 3.0을 별도로 설치하거나 Java EE 버전 이클립스를 다운받으면 된다.

서브버전(SVN) 클라이언트 전쟁의 승자 –Subversive

가니메데에 서브버전 클라이언트로 Subversive 프로젝트가 채택되었다. 이미 그 전부터 예견된 일이었지만, 이로써 Subclipse보다 한 발 앞서 나가게 되었다.아직 서브버전 클라이언트를 결정하지 못했다면 Subversive를 도입해 보자. 승자라고 표현했지만, 정식 프로젝트로 합류가 빨랐을 뿐이지 아직 Subclipse가 사장되는 것은 아니 라는 점을 염두에 두자.

 

마치며

지금까지 이클립스 3.4 가니메데의 새로운 기능을 자바 개발자의 시각에서 알아보았다. 이클립스 는 새로운 버전이 나올 때 마다 하위 프로젝트의 규모가 계속 커지고 있 기에 새로운 기능을 모두 다루는 것은 현실적으로 불가능하다. 개인적으로는 여기서 소개한 내용 외에도 ECF 2.0 에 추가된 협업시스템을 이용한 인스턴스 메신저 와 짝 프로그래밍 지원 , DLTK프로젝트의 동적 언어 지원, 그리고 DSDP 프로젝트의 터미널 환경 지원 등 에 관심이 간다. 이처럼 자바 개발 환경 외에 새로운 기능 중에서도 자신에게 맞는 보석 같은 기능 들이 많이 숨겨져 있으니 간단히 한 번 살펴보는 것을 권한다 .

아직도 이클립스를 무거운 텍스트 에디터의 용도로 사용하 는 경우가 많은데, 시간을 조금만 투자하면 정말 훌륭한 IDE 로 활용할 수 있다. 필요한 기능부터 하나씩 적용해 나가보자 .

 

참고문헌

  1. 한눈에 보는 이클립스 가니메데
    http://www.ibm.com/developerworks/kr/library/os-eclipse-ganymede/index.html?ca=drs-kr

  2. Eclipse 3.4 – New and Noteworthy
    http://ganymede-mirror2.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/whatsnew3.4/eclipse-news.html

  3. Eclipse Ganymede: An in-depth look at JDT (Java Development Tools)

    http://www.infoq.com/news/2008/06/eclipse-ganymede-jdt

Posted by 1010
56. Eclipse Etc.../Eclipse2008. 9. 29. 09:44
반응형
사용자 삽입 이미지


 2008년 6월 25일로 eclipse 3.4 버젼인 Ganymede 가 발표되었다. eclipse 는 정말 다양한 곳에서 쓰이고 있는데 생각보다 3.4 의 발표에 대한 관심이 적은 듯 하다. 아마 지금도 충분히 만족하면서 써서 그런듯 하다(?)

 정말 광범위하게 쓰이기는 하지만 아직 eclipse 는 Java 의 개발툴이라는 인식이 강한데 사실 CDT 플러그인의 덕택으로 C/C++ 에 대한 지원도  상당히 잘되는 편이다. Java 로 만들어져서 꽤 느린감도 있지만 이제 꽤 쓸만한 수준이다.

 다음 2개의 링크에서 eclipse 3.4/Ganymede 의 새로운 기능 중 쓸만한 것들을 뽑아서 번역해보았다.

 * [Eng] eclipse 3.4 의 새로운 기능
 * [Eng] CDT 5.0 의 새로운 기능
 

전체
 - Editor 탭을 마우스 가운데 버튼 클릭으로 현재 문서를 닫을 수 있음
 - 찾기/바꾸기에서 정규식을 쉽게 쓸 수 있게 되었음
 - debugging 시에 변수를 watch 창으로 Drag & Drop 가능

CDT 5.0
 - file template 기능을 통해 New Class 를 했을 때 기본 코드를 지정할 수 있음
 - include 를 할 때 Ctrl+Space(Content Assist) 를 하면 쉽게 include 파일명을 넣을 수 있음
 - for, while, if 문등의 block 도 folding 할 수 있음
 - 단축키 설정에서 Scheme 에 "Microsoft Visual Studio" 가 추가되어 쉽게 단축키 설정을 할 수 있음
 - Rename 밖에 없던 C++ Refactoring 기능에 다음과 같은 기능들이 추가되었다.
  - Getter/Setter 생성
  - 함수 숨기기(private 로 이동)
  - Implement Method(함수 선언부에서 선택시 함수 구현부 생성)
  - Extract Constant
  - Extract Function
 - Indexer 향상(여러 상황 지원, 속도 향상)
 - Ensure newline at end of file 옵션이 기본적으로 켜져 있어서, 파일의 마지막 줄에 빈 줄을 넣지 않아서 warning 이 뜨는 현상을 위해 옵션을 고치지 않아도 된다.

자바
 - 숫자를 따로 하이라이트해준다.
 - 변수를 읽기/쓰기 하는 부분을 따로 표시할 수 있게 해준다(디버깅할 때 편할듯)
 - 멀티CPU 를 통해 30% 까지 속도 향상이 있다.
 - Java String 을 StringBuffer 로 컨버트

SWT
 - 3개의 상태를 가지는 체크 버튼(on/off 외에 중간 상태가 추가)
 - 윈도우 비스타에서의 native progress bar 지원
 - 이미지와 url 에 대한 Drag & drop 지원
 - 전체 화면 지원
 - 투명도(Alpha, Transparent) 지원

기타
 - (Beta인 셈이지만)Subversion 을 위한 Provider 제공(Help -> Software Updates -> Available Software 에서 Ganymede Update Sites -> Collaboration Tools -> SVN Team Provider 에서 설치)



출처 : http://www.wimy.com/tt/140
Posted by 1010
56. Eclipse Etc.../Eclipse2008. 9. 29. 09:43
반응형

이클립스 3.4 가니메데(eclipse 3.4 Ganymede)에는 편리한 기능이 많이 추가되어서 꽤 만족하며 사용하고 있다. 하지만 언제나 그렇듯 몇가지 문제점이 눈에 뛴다.

  • 먼저, 환경 변수에서의 한글 처리 문제

    환경 변수에 들어간 한글 경로를 제대로 인식하지 못한다. 불편하지만 크게 문제되는 사항이 아니라서 딱히 찾아보지는 않았지만, Ganymede로 넘어오고서 발생하는 문제이다. 윈도우에서만 확인했다.

  • 특정 폰트에서의 한글 처리 문제

    가장 좋아하는 프로그램용 폰트가 Bitstream Vera Sans Mono인데, 여기서는 한글 폰트의 사이즈가 엄청나게 작게 보이는 문제가 있다. 주석 등을 볼 때 꽤나 불편하다. 아마 다른 몇몇 폰트에서도 문제가 있을 것으로 보인다. 오피스 류의 프로그램에서처럼 한글 폰트, 영문 폰트 따로 지정할 수 있으면 좋겠다. 일단 "Bitstream Vera Sans Mono + 맑은 고딕"으로 만들어진 폰트를 발견해서 문제는 해결했다.

  • 윈도우에서 발생하는 eclipse 실행 에러

    윈도우 환경에서 Ganymede가 정상 실행되지 않는 상황이 있다. 부팅하고 막 실행하면 정상 실행되지만, eclipse 3.3이라던지 이전 버전을 실행한 후 실행하려니 동작하지 않아서 자주 재부팅 하는 삽질을 했다. 다음 사이트를 참조해서 eclipse.ini 파일의 설정을 변경하면 해결할 수 있다.

  • Mac용은 Java EE 버전과 플러그인 개발 버전의 PDE 차이점 존재

    Java EE에서 동작할 플러그인을 만들고 있기에, Java EE용 Ganymede를 설치해서 PDE를 이용하는데 아무래도 무언가 이상하다 싶었다. 확장점을 확장할 때 제대로된 컨텍스트 메뉴도 제공되지 않고(Generic이라는 메뉴만 등장하는 문제), 클래스를 지정할 때도 Browse 버튼도 없고, class로 바로갈 수 있는 링크도 없다. 플러그인 개발 버전에서는 잘 동작한다. 몰랐으면 Ganymede의 사용을 포기할 뻔 했다.

  • 그리고 SWT 애플리케이션을 바로 런치할 수 있는 Run Configuration이 사라졌다.

    의도된 변경 같은데 자주 사용하지는 않는 기능이었지만 SWT Snippets를 동작해보고 하는데 유용했는데 허전하다.

  • Eclipse Fragment 프로젝트 생성한 다음, PDE Tools를 이용해서 문자열을 외부화하면 fragment.properties 파일을 생성해야 함에도 plugin.properties를 생성한다. Mac용 가니메데 배포판에서 확인했다. (2008. 7. 24 추가)
    마법사 첫 번째 페이지에서 번들 지역화 타입을 plugin에서 fragment로 수정하면 된다. plugin으로 그냥 두고서 fragment 정보를 추출하면 아무런 의미 없는 자료 추출이다. 무언가 직관적이지는 않은데 PDE UI 팀에서는 오류는 아니라고 판단하고 있다.

그나저나 eclipse는 커뮤니티가 활성화되어 있어서 내가 발견한 에러도 이미 많은 사람들이 발견한 문제인지라 버그 리포팅의 의지가 생기지 않는다. 조금더 은밀하게 숨어 있는 버그를 찾아야 하나 보다. 나쁜점만 얘기했지만 Ganymede는 좋은점이 더 많기에 3.3으로 돌아갈 생각은 전혀 없다.



출처 : http://www.eclipsegeek.com/pages/1467806

Posted by 1010