 |
|
난이도 : 중급 Chris Aniszczyk, Principal Consultant, Code 9
옮긴이: 김도형 dwkorea@kr.ibm.com
2008 년 7 월 08 일 24개 프로젝트를 포함한 이클립스 가니메데(Ganymede) 배포판은 이클립스 생태계 내에서 진행되고 있는 다양성과 혁신을 잘 보여줍니다. 이 글에서는 몇몇 가니메데 프로젝트를 대략적으로 살펴 보고, 더 상세한 정보를 얻을 수 있도록 참고자료도 추천합니다.
간단히 말해 가니메데는 24개의 주요한 이클립스 프로젝트의 동시 배포판이다.
 |
이클립스의 친구가 되자!
가니메데 배포판을 더 빠르게 다운로드하고 싶지 않은가? 이클립스 프로젝트를 지원하고 싶었지만 어떻게 해야 하는지 몰랐던 적이 있지 않나? 자, 이제 "이클립스의 친구가 되자(Become a Friend of Eclipse)"라는 새로운 프로그램이 생겼다. 이 프로그램을 통해 이클립스 공동체를 지원할 수 있다. 이클립스의 친구가 됨으로써 이클립스 재단이 사용자와 커미터에게 더 많은 대역폭을 제공하고, 이클립스 프로젝트를 수용할 서버를 추가로 구입하고, 이클립트 공동체 행사를 후원하는 등 이클립트 공동체를 위한 서비스를 제공하는 것을 도울 수 있다.
|
|
통상적인 가니메데와 이클립스 배포판들에 대해 기억해야 하는 중요한 점은, 비록 동시 배포되기는 하지만, 포함된 프로젝트들 자체가 통합된 것은 아니라는 것이다. 각 프로젝트는 여전히 각자의 프로젝트 리더십과 커미터(committer)와 개발 계획을 가진 독립적인 오픈 소스 프로젝트다. 결국 가니메데는 좀 더 투명하고 예측할 수 있는 개발 주기를 제공함으로써 이클립스 프로젝트들을 기반으로 일하는 개발자들의 생산성을 높이기 위한 것이다.
가니메데 얻기
다양한 프로젝트에 대해 상세히 알아보기 전에 먼저 직접 가니메데를 설치해 보자.
가니메데를 다운로드하는 데는 크게 두 가지 방법이 있다. 어느 쪽을 택할지는 독자들의 몫이다. 첫 번째 방법은 그저 필요한 패키지를 다운로드하는 것이다. 보통 이 방법을 추천한다. 다른 방법은 갱신 사이트(update site)를 활용하는 것이다.
가니메데 패키지들
가니메데를 다운로드하기 위해 추천하는 방법은 이클립스 가니메데 패키지 사이트에 가는 것이다. 패키지 사이트에는 사용자의 필요에 맞게 미리 묶어 놓은 가니메데 패키지들이 있다.
그림 1. 가니메데 패키지들
 |
사용 정보 수집기(Usage data collector)
각 가니메데 패키지에는 사용 정보 수집기(UDC)가 포함되어 있다. UDC는 사용자들이 어떻게 이클립스를 사용하는지에 대한 정보를 모은다. 이 정보는 주기적으로 이클립스 재단의 서버들에 전송된다. 이는 커미터와 개발 조직이 개발자가 이클립스를 사용하는 방식에 대해 더 잘 이해할 수 있도록 돕기 위한 것이다. 참고로 이 기능은 기본으로 꺼져 있고 선택적으로 사용할 수 있는 기능이다. 관심이 있으면 사용 약관(terms of use)을 살펴보기 바란다. 결국 이 정보는 이클립스 커미터가 사용자 행동을 기반으로 프로젝트 사용자 인터페이스를 최적화하는 등의 다양한 작업을 하는 데 도움을 준다.
|
|
예를 들어 자바 개발자라면 자바(Java™) 개발자를 위한 패키지를 다운로드하면 되고, C/C++ 개발자라면 C/C++ 패키지를 다운로드하면 되는 식이다.
가니메데 갱신 사이트
갱신 사이트를 이용해 가니메데를 다운로드하려면 먼저 Eclipse V3.4 SDK를 다운로드한다. 다운로드하면 이클립스를 실행한 다음 Help > Software Updates(그림 2 를 보라) 메뉴를 통해 소프트웨어 갱신 기능을 사용할 수 있다. 가니메데 갱신 사이트가 Ganymede Update Site로 나타나지 않으면 적절한 가니메데 갱신 사이트에 대한 정보를 입력해 준다. 일단 가니메데 갱신 사이트에 연결되면 가니메데 배포판에 포함된 기능 목록이 나타난다. 다음은 간단하다. 사이트에 접속 후 설치하고 싶은 기능을 선택하기만 하면 된다.
그림 2. 소프트웨어 갱신
이 두 가지 간단한 방법으로 가니메데 배포판의 모든 이점을 활용할 준비가 된 것이다.
프로젝트들
이클립스 생태계는 크고 때론 위압감이 느껴지는 곳이다. 이클립스에는 90개 이상의 프로젝트가 진행 중이고, 가니메데 배포판은 단지 특정 시점에서 그 프로젝트들을 모아 놓은 것일 뿐이다. 가니메데 배포판은 이클립스 기술을 소개하기 위한 것이고, 또, 이클립스를 활용하는 사람들이 이클립스 기술을 자신들의 제품에 통합하는 데 도움을 준다. 가니메데 프로젝트에 대해 더 알고자 하면 다음 링크들을 살펴보기 바란다. 아니라면 다음 절로 넘어가서 가니메데에 포함된 주요 프로젝트에 대해 살펴보자.
표 1. 가니메데 배포판에 포함된 프로젝트들
 |

|
주요 프로젝트
이클립스 프로젝트(SDK)
보통 이클립스 SDK라고 부르는 이클립스 프로젝트는 이클립스의 핵심이다. 이 프로젝트에는 플랫폼, 플러그인 개발 환경(Plug-in Development Environment, PDE), 자바 개발 도구(Java Development Tools, JDT), 이쿼녹스(Equinox) 등 4개의 부 프로젝트가 있다. 플랫폼 프로젝트에는 이클립스 기반 애플리케이션을 만드는 데 필요한 공통 핵심 서비스들이 포함되어 있다. 다음으로 PDE에는 개발자가 플러그인을 개발할 때 사용하는 플러그인 개발 도구가 포함되어 있다. JDT는 이클립스 내 자바 개발 관련 도구들을 통칭한 것이고, 마지막으로 이쿼녹스는 플러그인들이 조화롭게 공존하도록 해 주는 이클립스의 핵심 런타임 모듈이다.
가니메데에는 어떤 새로운 기능이 포함되었을까? 이클립스 프로젝트 전반에 걸쳐 많은 새로운 개선이 있지만, 여기서 모두 다 언급하기에는 너무 분량이 많다. 그래서 간단하게 개인적으로 좋아하는 세 가지 개선을 꼽아 봤다. 각각에 대해 가니메데에서 어떤 점이 좋아졌는지를 살펴보겠다.
개인적으로 좋아하는 첫 번째 개선은 자바 개발 도구(JDT)에 있다. 이미 알지도 모르겠지만 컴퓨팅 세계는 변화하고 있고, 많은 코어(멀티코어)를 탑재한 컴퓨터가 나오고 있다. 자바 코드를 가능한 빨리 컴파일할 수 있게 하기 위해 V3.4부터 JDT에 멀티코어 지원이 추가되었다.
플러그인 개발에서 개인적으로 좋아하는 새로운 기능은 바로 플러그인 스파이(Plug-in Spy)다. 플러그인 스파이를 이용하면 단순히 관심 가는 뭔가를 선택하고 Alt+Shift+F1을 눌러 이클립스 내부를 살펴볼 수 있다. 해당 키를 누르면 플러그인 스파이가 현재 선택된 클래스와 그 클래스가 속한 플러그인 등의 정보를 표시하는 팝업을 띄운다. 이 정보는 플러그인 개발자가 플러그인을 이클립스 사용자 인터페이스에 통합하려고 할 때 유용하다.
마지막으로 이쿼녹스 프로젝트에는 p2 프로비저닝(provisioning)이라는 기능이 포함되었다. p2는 이클립스 설치를 관리하고, 갱신된 기능을 찾고, 새로운 기능을 설치하는 수단으로 이전 갱신 관리자(update manager)를 대체한다. p2는 플러그인을 갱신하고 찾을 때 겪었던 많은 문제를 해결하였다.
Business Intelligence and Reporting Tools(BIRT)
BIRT 프로젝트는 사용자 애플리케이션과 통합되어 고품질 리포트를 생성하는 이클립스 기반 리포팅 시스템을 만들기 위한 프로젝트다. BIRT는 그래픽 리포트 디자이너, 데이터 접근, 스크립팅 지원 등 핵심 리포팅 기능들을 제공한다.
BIRT 전도사이자 Actuate사 직원인 Jason Weathersby는 다음과 같이 말했다. "가니메데에 포함된 BIRT V2.3에는 리포트 디자인을 만들고 시험하는 데 도움이 되는 새로운 기능이 많이 추가되었습니다. 가장 특기할 만한 것은 새로운 자바스크립트 디버거인데 BIRT 이벤트 핸들러를 디버그 시점(debug perspective)에서 디버깅할 수 있게 해 줍니다. 또 자바스크립트 편집기가 개선되었고, 에러 리포팅도 전반적으로 나아졌습니다. 그 외에 BIRT V2.3에는 교차표(cross-tab), 도표(charting) 엘리먼트들에 무수한 개선이 이뤄졌습니다. 교차표 엘리먼트들은 이제 스크립팅, 다중 지표와 도출 지표(multiple and derived measures), 차원이나 지표에 의한 필터, 수평 페이지 분리(horizontal page break)를 지원하고 지표 데이터를 텍스트나 도표 아이템으로 나타낼 수 있습니다. 이제 새로운 멀티뷰(multiview) 리포트 아이템 기능을 사용하면 테이블이나 교차표에서 직접 도표를 만들 수 있습니다."
그리고 데이터 집합들에 속한 데이터를 사용하는 건 물론이고 이제 도표에서 이미 존재하는 리포트 아이템이나 데이터 큐브(cube)에 속한 데이터를 사용할 수 있다. 특기할 만한 다른 기능으로 데이터 도구 플랫폼 SQL 질의 편집기(Data Tools Platform SQL Query Builder) 프로토타입이 포함됐다는 점인데 이 기능을 사용하면 그래픽 환경에서 질의를 만들 수 있다.
그림 3. BIRT 스크린샷
C/C++ 개발 도구(CDT)
자바 개발을 위해 JDT가 있듯이 CDT 프로젝트는 이클립스 생태계에 완전한 C/C++ 개발 환경을 추가하기 위한 것이다.
CDT 프로젝트 리더이자 최근 윈드리버 시스템에 입사한 Doug Schaefer는 다음과 같이 언급했다. "CDT는 기술 및 임베디드 소프트웨어 개발을 위한 선도 C/C++ IDE로서 계속해서 세를 얻어나갈 겁니다. CDT는 이제 모든 주요 리눅스(Linux®) 배포판에 포함되었고, 거의 모든 임베디드 플랫폼 업체가 수용하고 있습니다. CDT의 앞선 기능을 뒷받침하는 기술이 새로운 수준의 성숙도에 도달할수록 CDT 사용자 및 기여자 공동체는 굳건하게 남아 있을 겁니다."
계속해서 Schaefer는 다음과 같이 말했다. "CDT V5.0은 주로 지난 배포판들에 추가된 기능을 향상하는 데 초점을 맞췄습니다. CDT의 소스 코드 색인기(source indexer)는 이제 매크로(macro)를 추적할 수 있습니다. 또, 색인기의 템플릿(template)과 기타 C++ 특성에 대한 지원도 계속 향상되고 있습니다. 이를 통해 편집기의 콘텐트 도우미(Content Assist)와 선언 열기(Open Declaration) 같은 기능에서 지난 배포판보다 더 많은 정보를 찾아낼 수 있게 되었습니다."
Schaefer에 따르면 CDT V5.0에는 새로운 리팩터링 프레임워크(refactoring framework)와 CDT의 개명 리팩터링(rename refactoring)을 보완하는 몇 가지 새로운 리팩터링이 추가되었다. 이는 CDT의 내장 파서와 편집기 프레임워크의 위력을 보여주는 정말 놀라운 새 분야로, JDT에서 이미 잘 알려진 풍부한 리팩터링을 가능하게 했던 것과 같은 기술을 활용한다. 새로운 파일 수준 코드 템플릿과 비주얼 스튜디오 키 바인딩 때문에, CDT는 가장 인기 있는 C/C++ IDE에 대한 매력적인 대안으로 자리잡고 있다.
그림 4. CDT 스크린샷
동적 언어 툴킷(Dynamic Language Toolkit, DLTK)
DLTK는 루비나 펄 같은 동적 언어를 사용하는 사람을 위한 도구다. DLTK는 PHP, 펄, 루비 같은 동적 언어를 위해 제대로 기능을 갖춘 개발 환경을 만드는 데 있어 복잡성을 줄일 수 있도록 설계된 몇몇 확장성 있는 프레임워크로 구성되어 있다. 더 나아가 이 프레임워크들 외에 예시로 곧바로 사용할 수 있는 Tcl, 루비, 파이썬(Python) 개발 환경을 포함하고 있다.
DLTK 프로젝트의 공동 리더이고 Xored사에 근무하는 Andrei Sobolev는 다음과 같이 말했다. "가니메데 배포판에 포함된 DLTK의 TCL과 루비 IDE에는 자바 개발 도구(JDT)에서나 볼 수 있었던 기능들이 추가되었습니다. 코드 도우미(code assistance)와 코드 개요(code outline)를 지원하는 코드 편집기부터 타입 열기(Open Type), 선언으로 이동(Go to declaration) 같은 클래스 브라우저와 코드 네비게이션 기능, 참조 문서 찾기(find references) 같은 강력한 검색 기능, 대화형 콘솔(interactive console)과 통합 디버거까지, 이러한 기능으로 가니메데에는 루비와 TCL 프로그래밍 언어를 위한 강력한 개발 환경이 포함될 수 있었습니다. 가니메데 배포판에 포함된 DLTK는 각종 TCL 객체 지향 확장들을 지원하고, (DSDP-TM 프로젝트의 도움으로) 원격 장치에 있는 프로젝트를 다룰 수 있으며, 모든 DLTK 기반 IDE에서 Mylyn을 통합할 수 있게 되었습니다."
그림 5. DLTK 스크린샷
DSDP 타깃 관리(DSDP-TM)
DSDP-TM 프로젝트는 원격 시스템 및 시스템 간 연결, 상호 간 서비스를 설정하고 관리하기 위한 데이터 모델과 프레임워크를 만들기 위한 것이다. 개발자로서 SSH로 멀리 있는 기계에 접속하고 이클립스 도구로 해당 기계 상의 자기 파일을 편집할 수 있다고 상상해 보라.
TM 리더이자 윈드리버 시스템에서 일하는 Martin Oberhuber는 다음과 같이 언급했다. "DSDP 타깃 관리 프로젝트는 가니메데 배포를 위해 내부 API 리뷰, 정리, 리펙터링, 성능 향상 등에 초점을 맞춰 왔습니다. 하지만 여전히 몇 가지 신나는 소식도 있습니다. 원격 시스템 탐색기(Remote System Explorer, RSE)에서 이제 윈도(Windows®) CE 연결이 지원되어 CE 장치 상의 파일을 로컬인 것처럼 탐색하고 편집할 수 있게 되었습니다. 또한 RSE에는 경량 ANSI 터미널 에뮬레이션이 통합되어 SSH 연결 상의 대화형 원격 프로그램 지원이 더 나아졌습니다. 설정 가능한 사용자 동작들(Configurable User Actions)과 컴파일 명령들(Compile Commands)에서는 이제 일반적인 동작에 대해 간단한 UI 단축키를 정의할 수 있습니다. 또, 임포트/익스포트(import/export) 기능을 통해 연결, 필터, 사용자 동작을 공유할 수 있게 되었습니다."
Oberhuber는 또 다음과 같이 말했다. "이 새로운 기능들로 타깃 관리/RSE를 사용하면 원격 시스템에 쉽게 접근할 수 있고 다른 이클립스 플러그인들의 능력을 확장해 줍니다. 새로운 TM V3.0 배포판은 가니메데가 아니더라도 지난 해 나온 이클립스 V3.3 배포판에서도 동작합니다. 따라서 TM V2.0에서 갱신해 넘어오기도 쉽습니다. 가니메데 배포판의 자바 EE를 위한 이클립스 IDE 패키지에는 이미 RSE가 포함되어 있습니다."
그림 6. TM 스크린샷
이클립스 통신 프레임워크(Eclipse Communications Framework, ECF)
ECF 프로젝트는 이클립스 기반 분산 도구와 애플리케이션 개발을 지원하기 위한 프레임워크로 구성되어 있다. 통신 지원이 필요한 다른 플러그인이나 도구, 완전한 이클립스 RCP 애플리케이션을 작성하기 위해 사용할 수 있다. 더 나아가 ECF에는 이클립스 내에서 (XMPP/GTalk, MSN 등을 통해) 친구들과 채팅하고 파일을 보내고 편집기를 공유하는 등의 일을 할 수 있는 예제 애플리케이션들이 포함되어 있다.
ECF 프로젝트 리더인 Scott Lewis는 이렇게 말했다. "우리는 사람들이 가니메데 배포판에 포함된 ECF V2.0.0으로 인해 몹시 흥미진진해 할 거라고 생각합니다. 실시간 공동 편집, 스크린샷 공유, 동적 서비스 발견(dynamic service discovery), 원격 OSGi 서비스 같은 새 API 등 새로운 사용자 기능이 포함되었습니다."
그림 7. ECF 스크린샷
Mylyn
Mylyn은 정보 범람(information overload)을 줄이고 다중 작업(multitasking)을 쉽게 해 주는 작업 중심(task-focused) UI다. 이를 위해 Mylyn은 작업을 이클립스의 고유 요소로 만들고, 버그질라(Bugzilla)나 Trac, JIRA 같은 저장소(repository)에 대한 풍부한 오프라인 편집을 통합한다. 일단 개발자의 작업들이 통합되면 Mylyn은 현재 작업에 관련 있는 정보를 찾아 내기 위해 개발자의 작업 활동을 살펴 보고, 이 작업 문맥(task context)을 이용해 이클립스 UI 상의 흥미로운 정보에 초점을 맞추고, 흥미롭지 않은 부분은 감추며, 자동으로 관련 있는 것들을 찾아 낸다. Mylyn이 왜 유용한지에 대한 시청각 자료로 Mylyn V2.2 웨비나(Webinar)를 강력 추천한다.
Mylyn 리더이고 Tasktop Technologies의 CTO(Chief Technology Officer)인 Mik kersten은 다음과 같이 말했다. "Mylyn 3.0으로 작업 중심 인터페이스 발전에서 큰 한걸음을 내디뎠습니다. Mylyn의 수용률을 보면 이제 Mylyn의 전성기가 왔다는 것을 알 수 있습니다. 지난해 유로파(Europa) 배포판에 포함된 V2.0 이후, 1500개의 버그와 개선 요청을 해결했고 기여자 공동체로부터 약 250개의 패치(patch)를 받아 적용했습니다."
또 Kersten은 다음과 같이 언급했다. "사용해 보면 UI가 전반적으로 간소화되고, 작업들을 위한 콘텐트 도우미(content assist)에서 정지점 화면(Breakpoints view)에 대한 강조(focus)에 이르는 새로운 기능들이 추가됐음을 알 수 있을 겁니다. 전반적으로 성능이 향상되어, 작업 열기와 활성화가 무척 빨라졌습니다. 또, Mylyn이 자동으로 많은 유용한 일을 하는데도 별다른 성능이나 메모리 부하를 느낄 수 없을 겁니다. 하지만 V3.0에 포함된 가장 큰 개선은 빠르게 커지고 있는 Mylyn 통합 생태계로부터 의견을 수용하기 위해 핵심 API를 개편했다는 점입니다. C++와 AspectJ 언어 지원부터 스프링소스 도구 스위트(SpringSource Tool Suite)와 Tasktop처럼 작업 중심 인터페이스 상에 구축된 상업 스위트를 위한 몇몇 새 작업 저장소 연결기(task-repository connector)까지 Mylyn 상에 구축된 새로운 확장이 많이 있습니다."
그림 8. Mylyn 스크린샷
Rich Ajax Platform(RAP)
RAP 프로젝트는 개발자가 이클립스 개발 모델을 이용해 풍부한 Ajax 활용 웹 애플리케이션을 만들 수 있게 해 준다. 즉, 잘 알려진 이클립스 워크벤치(workbench) 확장 지점(extension points)을 이용해 플러그인을 개발하는 방식으로 개발하며, SWT/JFace API를 재활용한다. RAP 프로젝트의 가장 유용한 점은 제대로 구축되기만 했으면 RCP 애플리케이션 코드를 재사용할 수 있다는 점이다. RAP를 이용하면 많은 코드를 공유하는 독립형(stand-alone) 애플리케이션과 웹 애플리케이션을 만들 수 있다. RAP가 얼마나 유용한지를 알고 싶으면 RAP 데모를 참고하기 바란다.
RAP 리더이고 Innopract사의 직원인 Jochen Krause는 다음과 같이 언급했다. "RAP는 RCP/이쿼녹스를 웹까지 확장함으로써 가니메데에 새로운 런타임 기술을 추가했습니다. 이미 존재하는 플랫폼과의 강력한 연계를 통해 RAP는 잘 정립된 기술을 활용할 뿐 아니라 이클립스를 수용하는 사람들이 자신의 투자를 활용해 더욱 쉽게 웹 2.0에 이르도록 해 줍니다."
그림 9. RAP/RCP 스크린샷
콘테스트
이클립스 재단은 세계 속의 가니메데 콘테스트(Ganymede Around the World Contest)를 개최하고 있고, 여러분이 가니메데 배포판 내의 이클립스 프로젝트들을 어떻게 사용하는지를 알고자 한다. 전세계에 가니메데의 어떤 점이 훌륭하고 어떤 점이 싫은지를 알리는 글을 블로그에 올리거나, 그에 대한 스크린캐스트나 비디오, 포드캐스트를 만들어 보자. 상으로 이클립스 재단에서 이클립스 셔츠를 보내줄 것이다. 셔츠 외에도 상위 세 리뷰에 대해서는 이클립스 재킷을 수여하고, 가장 뛰어난 리뷰에 대해서는 이클립스콘(EclipseCon) 2009나 이클립스 서밋 유럽(Eclipse Summit Europe) 2008 입장권 중 하나를 선택할 수 있는 특전이 주어진다.
그림 10. 가니메데 콘테스트 스크린샷
결론
전체적으로 이 글의 목적은 가니메데 배포판을 살펴보고 배포판에 포함된 몇 가지 프로젝트를 소개하는 것이었다. 이를 위해 프로젝트 리더들의 말을 인용하고 스크린샷을 보이면서 몇몇 가니메데 프로젝트의 개괄을 살펴 봤다.
자! 뭘 기다리는가? 이클립스 배포판을 다운로드해 가니메데를 사용해 보자.
참고자료 교육
제품 및 기술 얻기
토론
- 이클립스 관련 질문을 토론하기 위한 가장 좋은 장소는 이클립스 플랫폼 뉴스그룹이다(링크를 선택하면 기본 유즈넷 뉴스 리더 애플리케이션이 실행되고 eclipse.platform 뉴스그룹을 연다).
-
이클립스 뉴스그룹에는 이클립스를 사용하고 확장하는 데 관심이 있는 사람들을 위한 많은 참고 자료가 있다.
-
developerWorks 블로그를 통해 developerWorks 커뮤니티에 참여해 보자.
필자소개  | 
|  | Chris Aniszczyk은 이클립스 플러그인 개발 환경(Plug-in Development Environment, PDE) 프로젝트의 기술 리더이고, 다양한 다른 이클립스 프로젝트에 코드를 커밋한다. 또한 Chris는 이클립스 재단 이사회에서 이클립스 커미터를 대표하고, 이클립스 아키텍처 협의회(Eclipse Architecture Council)의 일원이다. 블로깅, 소프트웨어 관련 토론, 소프트웨어 도구, 이클립스에 관련된 모든 것에 열정을 가지고 있다. 언제든지 찬 음료를 마시며 오픈 소스와 이클립스에 대해 토론할 의향이 있다. |
기사에 대한 평가
 |
| 이 문서 북마킹 하기
|
|