이클립스 소개
이클립스(Eclipse)란?
- Eclipse는 Open Source Java IDE (Integrated Development Environment), 즉 오픈 소스 자바 통합 개발환경이다.
- JAVA 기반의 확장 가능한 개발 플랫폼이다.
- 하나의 프레임워크로서 플러그인 컴포넌트에서 개발 환경을 구현하였다.
- 오픈소스로 발표한 이클립스는 초기에는 개발 도구로 시작했으나 이제는 범용 플랫폼(universal platform)으로 성장했고 수많은 회사와 개발자들이 공동의 목표를 위해 함께 하는 커뮤니티라고 할 수 있다.
이클립스 탄생배경
- IBM이 4000만불(400억)로 개발하여 오픈소스 프로젝트에 배포하였다.
- Eclipse.org.Consortium이 개발을 관리 및 지휘하고 있다.
- Project Management Committee (PMC)는 Eclipse 프로젝트를 관리한다.
이클립스 주요기능
1. 개발
- 자동 완성 (Ctrl + Space)
- 템플릿 적용 (Ctrl + Space)
리팩토링
- 클래스 추출 (Extract Class)
- Extract Class는 한 클래스가 너무 많은 책임을 수행할 때, 책임을 다른 클래스로 분리하는 리팩터링이다.
리팩터링 전의 Person 클래스로 간단하지만 개인 정보와 연락처 정보 관리라는 두 가지 책임을 가진다. Extract Class로 연락처 관리의 책임을 추출할 수 있다.
public class Person { private String name; private String officeAreaCode; private String officeNumber; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOfficeAreaCode() { return officeAreaCode; } public void setOfficeAreaCode(String officeAreaCode) { this.officeAreaCode = officeAreaCode; } public String getTelephoneNumberNumber() { return "( " + officeAreaCode + ") "+ officeNumber; } public String getOfficeNumber() { return officeNumber; } public void setOfficeNumber(String officeNumber) { this.officeNumber = officeNumber; } }
먼저 Extract Class 메뉴를 선택한다. 최상단 메뉴나 <화면 1>과 같이 편집기 의 오른쪽 마우스 컨텍스트 메뉴에서 Refactor -> Extract Class를 선택한다.

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

새로운 코드로 리팩터링되었다. 위에서 선택한 두 필드를 가지고 있는 Telephone 클래스가 생성되었고, Person 클래스는 Telephone 클래스의 인스턴스를 필드로 가지고 이를 참조하도록 다음과 같이 변경되었다.
package refactoring; public class Person { private String name; private Telephone telephone = new Telephone(); public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOfficeAreaCode() { return telephone.getOfficeAreaCode(); } public void setOfficeAreaCode(String officeAreaCode) { this.telephone.setOfficeAreaCode(officeAreaCode); } public String getTelephoneNumberNumber() { return "( " + telephone.getOfficeAreaCode() + ") "+ telephone.getOfficeNumber(); } public String getOfficeNumber() { return telephone.getOfficeNumber(); } public void setOfficeNumber(String officeNumber) { this.telephone.setOfficeNumber(officeNumber); } }
package refactoring; public class Telephone { private String officeAreaCode; private String officeNumber; public Telephone() { } public String getOfficeAreaCode() { return officeAreaCode; } public void setOfficeAreaCode(String officeAreaCode) { this.officeAreaCode = officeAreaCode; } public String getOfficeNumber() { return officeNumber; } public void setOfficeNumber(String officeNumber) { this.officeNumber = officeNumber; } }
- 상수 추출 (Extract Constant)
- 메소드 추출 (Extract Method)
- 메소드 시그니처 변경 (Change Method Signature)
- 이름 바꾸기 (Rename)
- 메소드 추상화 (Pull up method)
이클립스 3.4 가니메데에서 향상된 기능
- Breadcrumb
- 화면이 크지 않은 환경에서 개발할 때는 편집기 영역을 최대화(커맨드 + M)해서 작업하는 경우가 많은데, Breadcrumb를 통해 현재 위치를 한눈에 볼 수 있고, 편집기의 최대화를 해제하고 'Package Explorer (패키지 탐색기)'등을 이용해서 다른 파일을 열어야 하는 불편함을 해소한다.
- 화 면 상단 툴바의 'Toggle Breadcrumb'를 선택하거나, 편집기의 컨텍스트 메뉴 중 'Show in Breadcrumb'를 선택하면 된다. 컨텍스트 메뉴에서 Breadcrumb를 비활성화 시킬 수 있는 방법은 없으며, Breadcrumb를 비활성화 시키려면 상단 툴바의 토글 버튼을 이용한다.
- Breadcrumb가 활성화되면 편집기 상단에 현재 위치를 표시해주는 표시영역이 생긴다. 이 영역을 통해 최대화 상태의 편집기에서도 현재 위치를 한눈에 볼 수 있고, 최대화 상태에서도 편리하게 다른 파일을 열 수 있다.
- 향상된 Call Hierarchy
- 호출 관계가 복잡한 함수의 호출 관계를 트리 구조로 보여준다.
- 클래스를 선택하고 'Call Hierarchy'를 찾아보면(CTRL + ALT + H) 모든 생성자를 호출하는 위치를 찾아준다.
- 기본 생성자가 코드 상에 존재하지 않아도 찾아주니 편리하다.
- 상수나 필드를 사용하는 위치도 'Call Hierarchy'를 통해 보여주니 더 이상 불편하게 검색하지 않아도 된다.
- Outline 화면에서 코드 재배열하기
- 개요(Outline) 화면에서 코드의 구성 요소의 위치를 재배열 할 수 있다.
- 개요 화면 에서 한눈에 전체 구조를 보면서 드래그 앤 드롭 기능을 이용해서 코드를 재배열 할 수 있다.
- Outline의 자동 정렬 기능 을 이용 중이라면 드래그 앤 드롭은 동작하지 않는다.
- Outline에서의 재배치 기능은 자바 에디터뿐 아니라 XML 에디터에서도 지원한다.
- 리치 호버
- 특정 요소 위에 마우스를 가져다 두면 나타나는 JavaDoc 설명을 보여주는 것과 같은 호버 기능이 향상되었다.
- JavaDoc 호버는JavaDoc 화면에서 보기, 외부 브라우저에서 보여주기 등 더 풍부한 기능을 제공한다.
- 디버그 상황에서 복잡한 자료구조에 대한 값도 한 눈에 볼 수 있는 기능을 제공한다. 예전처럼 Variables 화면을 뒤지거나, Expressions 화면에 표현식을 입력해 봐야 하는 불편함이 해소되었다.
- 저장 기본 동작 정의
- 팀에서 코드 형식을 정해놓고, 이클립스 자동 포맷에 맞춰서 만들어 두어도 자신만의 스타일에 익숙하다면 종종 잊어버리곤 한다.
- 개발과정 중에 사용하다 남은 불필요한 Import 잔재를 한번에 없애고 싶지만 자동으로 처리해 주지 않으면(Organized Import 기능이 자동으로 처리해 주지만, 직접 명령을 수행해야 한다.) 역시 잊어버리기 쉽다.
- 'Windows (윈도) /Eclipse (맥) -> Preferences -> Java -> Editor -> Save Actions'를 보면 저장 시 자동으로 문서 포맷 맞추기, 불필요한 Import 구문 정리하기 등의 기능을 제공한다.
- 저장 시 실행할 행동을 정의할 수 있으며, 문서 정렬은 전체 문서에 저장할 것인지 수정된 영역에만 적용할 것인지를 지정할 수 있다.
- Launch Configuration 내보내기/들여오기
- Import(가져 오기)/Export(내보내기) 메뉴에 추가된 기능으로 그 동안의 실행 설정(Launch Configuration)을 XML 파일로 저장하고, 저장된 XML 파일을 가지고 오는 기능이다.
- 이 설정은 JDK 버전을 여러 버전으로 맞춰놓고 작업하는 것과 같은 이유 등으로 이클립스를 여러 개 설치해 놓고 작업 하거나 작업 공간을 다시 구축해야 하는 경우 매번 복잡한 실행 설정을 하지 않아도 되기에 유용하다.
- 컴파일 레벨의 변경이 아니라 실제 JRE를 대체하면 전부 재빌드를 수행하므로 하나의 작업공간에서 모두 처리하기에는 번거롭다.
- Tips: 이클립스 소스 코드 보고 베끼기 - 플러그인 스파이
- 이클립스를 사용하다 보면 플러그인 개발 자가 아닐지라도 , 어떻게 구현됐는지 코드 를 보고 싶은 경우가 있다. 기존에는 플러그인 개발자에게도 특정 영역의 코드를 찾아가는 작업이 쉽지 않았다.
- 플러그인 스파이 덕분에 코드를 보고 싶은 관심 대상 화면을 선택한 후 'SHIFT +ALT+F1'을클릭하면 해당 화면이 정의된 플러그인과 해당 화면의 클래스 등 각종 정보를 쉽게 얻을 수 있다.
- 플러그인 스파이 기능을 활용하려면 PDE 관련 플러그인을 설치하거나 플러그인 개발자용 이클립스를 다운받아야 한다.
- Tips: 자바스크립트 개발 툴킷
- 웹 개발 환경에서 가장 눈에 띄는 기능은 WTP 3.0에 새로 추가된 자바스크립트 개발 툴킷(JavaScript Development Toolkit, JSDT)이다.
- js 파일의 포맷팅 기능, 콜 계층 보기 지원 등의 기능이 눈에 띈다.
- 추가적인 자바스크립트 라이브러리의 지원을 위한 확장점도 제공한다.
- 자신만의 라이브러리를 지원하는 것도 용이하다.
- WTP 3.0에 포함된 기능이므로 WTP 3.0을 별도로 설치하거나 Java EE 버전 이클립스를 다운받으면 된다.
2. 실행
- 자바 어플리케이션 실행
- junit 실행
- 메이븐Maven) 실행
- 런타임 환경 실행
3. 디버깅
- 라이브러리 소스 첨부 (일반 방식, 메이븐 방식)
- Breakpoint 설정
- 단계별 디버깅 (F5, F6, F7, F8)
- 조건부 디버깅 (Conditional Debugging)
- 원격지 디버깅 (Remote Debugging)
4. 테스팅
- 단위테스트
- 통합테스트
- 런타임테스트
5. 핫키 (단축키)
일상의 습관을 바꾸기 어렵듯이 개발습관 또한 한번 익숙해지면 바꾸기 어렵습니다. 단축키를 활용하는 개발습관은 무엇보다도 개발에 대한 전문성과 생산성에 기여한다고 할 수 있습니다.
- 단축키 리스트 메뉴 (Show Key Assist): Ctrl + Shift + L
- 빠른 Preferences 찾기 메뉴: Ctrl + 3
- 편집 (Edit)
- 빠른 교정: Ctrl + 1
- 코드 자동완성 도움 (Content Assist): Ctrl + Space
- 네비게이션 (Navigate)
- 현재 클래스 상속관계 보기 (Open Type Hierarchy): F4
- 간단한 클래스 상속관계 보기 (Quick Hierarchy): Ctrl + T
- 현재 클래스 메서드, 맴버변수 보기 (Quick Outline): Ctrl + O
- 리소스 찾기 (Open Resource): Ctrl + Shift + R
- 찾기 다이얼로그 열기 (Open Search Dialog): Ctrl + H
- 선언 위치로 이동 (Open Declaration): F3
- 특정 줄번호로 가기 (Go to Line): Ctrl + L
- Java Editor에서 다음 member로 이동 (Go to Next Member): Ctrl + Shift + Down
- 이전 작업 화면 : Alt + Left
- 다음 작업 화면 : Alt+ Right
- 리팩토링 (Refactor)
- 리펙토링 메뉴 바로가기 (Refactor Quick Menu): Alt + Shift + T
- 변수명, 클래스명 등 이름 변경 (Rename): Alt + Shift + R
- 클래스, 인터페이스 등 이동 (Move - Refactoring): Alt + Shift + V
- 소스 (Source)
- 선택 영역 주석처리 (Add Block Comment): Ctrl + Shift + /
- 주석처리된 영역 주석해제 (Remove Block Comment): Ctrl + Shift + \
- 한줄에 대한 주석 처리 (Toggle Comment): Ctrl +/
- Javadoc타입의 주석처리 (Add Javadoc Comment): Alt + Shift + J
- XML 편집 시 주석처리 및 해제: Ctrl + Shift +C
- 탬플릿에 따른 코드 포맷팅 (Format): Ctrl + Shift + F
- 들여쓰기 (Indent Line): Ctrl + I
- 불필요 import 제거 및 import문 자동 생성 (Organize Imports): Ctrl + Shift + O
- 빠른 소스메뉴 (Source Quick Menu): Alt + Shift + S
- 텍스트 편집 (Test Editing)
- 줄 삭제 (Delete Line): Ctrl + D
- 줄 복사 (Duplicate Lines): Ctrl + Alt + Up or Down
- 현재 줄에 새로 추가 (Insert Line Above Current Line): Ctrl + Shift + Enter
- 다음 문자로 이동 (Next Word): Ctrl + Right
- 이전 문자로 이동 (Previous Word): Ctrl + Left
- 다음 줄에 새로 추가 (Insert Line Below Current Line): Shift + Enter
- 줄 위치 위로 바꿈 (Move Lines Up): Alt + Up
- 줄 위치 아래로 바꿈 (Move Lines Down): Alt +Down
- 현재 위치에서 라인 끝까지 삭제 (Delete to End of Line): Ctrl + Shift + Delete
- 한글자씩 찿기 (Incremental Find): Ctrl + J
- 이 클립스 창의 하단 상태 표시줄 부분에 Incremental Find라고 표시되며, 한글자씩을 누를 때마다 그곳에 입력된 글자가 보이고 코드내의 일치하는 문자열로 이동하게 된다. 입력을 끝내고 다시 Ctrl + J를 누르면 그 문자열과 일치하는 곳으로 커서가 이동하게 된다.
- System.out.println() 문장 삽입: 'sysout' + (Ctrl + Space)
- Surround With 메뉴: Alt + Shift + Z
- 코드를 블록으로 선택한 다음 이 단축키를 적용하면 다음과 같은 퀵 메뉴가 나타나며 선택한 문장으로 블록으로 선택했던 문장들을 감싼다.
- 대문자로 (To Upper Case): Ctrl + Shift + X
- 소문자료 (To Lower Case): Ctrl + Shift + Y
- 윈도우 (Window)
- 새로운 파일 및 프로젝트 생성: Ctrl + N
- 선택된 뷰 최대화 (Maximize Active View or Editor): Ctrl + M
- 열려있는 에디터간 이동 (Switch to Editor): Ctrl + Shift + E
- 좌/우 창 이동: Ctrl + Page Up / Ctrl + Page Down
- Properties 열기 (Properties): Alt + Enter
- 실행 (Run)
- 마지막 Run 구성 실행 (Run): Ctrl + F11
- 빠른 Run 실행 메뉴 열기: Alt + Shift + X
- 빠른 Debug 실행 메뉴 열기: Alt + Shift + D
- 디버깅 (Debug)
- 브레이크 포인터 설정/해제 (Toggle Breakpoint): Ctrl + Shift + B
- 디버깅 시작 (Debug): F11
- 디버깅 계속 (Resume): F8
- 한줄씩 실행 (Step Over): F6
- 한줄씩 실행하되 함수일 경우 그 함수 내부로 들어감 (Step Into): F5
- 함수 외부로 벗어남 (Step Return): F7
- 현재 라인까지 실행 (Run to Line): Ctrl + R
[출처] 이클립스 가니메데 활용법|작성자 경구사
'개발' 카테고리의 다른 글
진주고용센터 실업자용 c/c++프로그래밍 훈련 (0) | 2013.10.24 |
---|