에릭 클레이버그
에릭 클레이버그는 Instantiations 사의 제품 개발 부문 부사장이다. 에릭은 17년 간의 상용 소프트웨어 개발 경험이 있으며 그 중 9년은 자바, 6년은 이클립스를 경험해 온 숙련된 소프트웨어 기술자이자 제품 개발자, 기업가, 관리자이다. 또한 윈도우빌더 프로(WindowBuilder Pro), 코드프로(CodePro), 수상작인 VA Assist 제품 계열 등 다양한 상용 자바/스몰토크 확장 기능 제품의 주요 개발자이자 아키텍트이다. MIT 학사, 하버드 MBA 학위를 가지고 있으며 성공적인 소프트웨어 회사인 ObjectShare와 Instantiations의 공동 창업자이다.
댄 루벨
댄 루벨은 Instantiations 사의 수석 연구원이다. 그는 17년 간 상용 소프트웨어를 개발해 왔으며 그 중 10년은 자바, 6년은 이클립스를 경험해 온 객체 지향 기술 디자인/적용 전문가이며 기업가이다. 그는 jFactor, jKit/GO, jKit/Grid 등 몇몇 성공적인 상용 제품의 핵심 아키텍트이면서 제품 관리자로서 WindowBuilder Pro, VA Assist, CodePro 등의 상용 제품 설계와 리더 역할을 맡아 수행한 바 있다. 버크넬 학사 학위를 갖고 있으며 Instantiations의 공동창업자이다.
Instantiations는 어드밴스드 IBM 비즈니스 파트너 중 하나이며 이클립스와 IBM 비주얼에이지(VisualAge), 웹스피어(WebSphere), 래셔널(Rational) 제품 계열에 대한 다수의 상용 확장 기능을 개발했다. Instantiations는 이클립스 연합의 멤버이며 이클립스 협업 도구 프로젝트(Koi)와 이클립스 폴리네이트 프로젝트(Beehive)를 담당하는 이클립스 오픈소스의 기여자이다.
<저자 서문>
처음 이클립스를 접했던 1999년 후반을 돌이켜 보면, 우리는 IBM이 해결하려고 시도하던 문제의 규모에 압도되어 있었음을 알 수 있다. IBM은 모든 개발 환경을 단일 코드 기반으로 통합하려고 했다. 그 때 IBM은 C/C++, 자바, 스몰토크가 뒤섞인 혼합 기술을 사용하고 있었다.
수상작인 Visual Age for Java를 포함해 IBM의 중요한 도구 중 상당수가 스몰토크로 작성되어 있었다. 스몰토크는 복잡한 도구를 개발하기에 매우 좋은 언어였지만 자바 같은 언어에게 시장점유율을 급속히 빼앗기고 있었다. 반면 IBM은 스몰토크 개발자가 세계에서 가장 많은 곳 가운데 하나였지만 IBM 외부에서는 스몰토크에 대한 산업적인 지원이 그다지 크지 않았고, 스몰토크 기반의 부가 기능을 개발할 만한 독립 소프트웨어 벤더(ISV, Independent Software Vender)는 매우 부족했다.
반면 자바는 간편한 이식성과 다양한 플랫폼 지원으로 세계 전역에 걸쳐 개발자들의 마음을 사로잡고 있었고, 최신의 웹 기반 비즈니스 애플리케이션 구축에 필요한 풍부한 API를 제공했다. 무엇보다도 자바는 객체 지향 언어였으므로 IBM은 스몰토크 기반 도구를 개발하면서 늘어난 숙련된 객체지향 개발자들을 적극적으로 활용할 수 있었다. IBM은 그때까지 IBM의 Visual Age Smalltalk와 VisualAge Java 개발환경을 개발했던 OTI(Object Technology International) 그룹을 인수했고, 이 그룹에 자바 기반이면서 확장성이 매우 우수한 IDE의 구축을 맡겼다. 이로 인해 태어난 이클립스야말로 매우 축복 받은 결과물이었다.
OTI는 최고수준의 객체 지향 기술을 적용해 기능, 유연성, 확장성 면에서 비할 데 없이 뛰어난 IDE를 만들 수 있었다. OTI는 기존의 스몰토크 기반 IDE에서 유용했던 기능을 대부분 구현해냈고, 그와 동시에 IDE라는 소프트웨어의 한 장르에서 이제껏 볼 수 없었던 예술적인 경지를 이뤄냈다.
따라서 그 이전까지 자바 세상에서 이클립스만큼 강력하고 극찬을 받은 제품이 없었지만, 현재는 이클립스가 마이크로소프트의 .NET과 함께 세계에서 가장 인기 있는 개발 환경으로 자리잡고 있다. 자신의 도구를 가능한 한 많은 사람들에게 전하고 싶은 개발자들에게는 이클립스야말로 완벽한 플랫폼이었다. 더구나 이클립스는 완전히 무료인데다 오픈소스라는 점에서 도저히 사용하지 않을 수 없는 매력적인 도구였다. 이처럼 개방형의 확장 가능한 IDE 기반이 누구에게나 무료라는 사실은 미래의 도구 개발자들에게 강력한 동기가 되었다.
우리에게도 마찬가지였다. Instantiations에서 그리고 더 이전의 ObjectShare에서, 우리는 다양한 IDE에 대한 확장도구를 구축하는 데 집중하면서 훨씬 의미 있는 시간을 보낼 수 있었다. Digitalk의 Smalltalk/V에 대한 확장 도구를 개발하는 것으로 시작해 이후에는 IBM의 VisualAge Smalltalk를 위한 개발도구로 이전했으며, 마침내는 IBM의 VisualAge Java를 위한 도구(수상작인 VA Assist 제품과 jFactor 제품은 최초의 자바 리팩토링 도구 중 하나)까지 개발하게 되었다. 이와 같은 개발환경은 모두 IDE를 확장할 수 있는 수단을 제공하긴 했지만, 문서화나 표준화는 매우 부실했다. 적은 시장 점유율(비주얼 베이직 등과 비교할 때)과 다양한 사용자 기반으로 인해 개발환경뿐만 아니라 우리 자신도 큰 어려움을 겪었다.
우리는 어드밴스드 IBM 비즈니스 파트너로서 IBM에서 이클립스 개발 책임을 맡은 사람들과 길고 신뢰할만한 관계를 맺을 수 있었다. 이러한 관계 덕분에 우리는 새로운 기술에 대해 전달 받고, 다른 사람들이 이클립스를 접하는 것보다 1년 반 정도 앞서서 이클립스를 사용할 기회를 얻을 수 있었다. IBM은 2001년 중반에 이클립스를 세계적으로 발표했으며, Instantiations의 우리 팀은 IBM에서 공개할 첫 번째 데모 애플리케이션을 개발했다. 그해 말 IBM은 최초의 이클립스 기반 상용 도구인 WebSphere Studio Application v4.0(v4.0은 당시 VisualAge for Java v4.0과 버전을 맞추기 위한 것)을 발표했으며, 같은 날 우리의 CodPro 제품은 WebSphere Studio 최초의 상용 확장 기능(이클립스도 지원)이 되었다.
현재 CodePro 제품은 이클립스와 다른 이클립스 기반 IDE에 수백 가지 개선사항을 추가하고 있다. 지난 몇 년간 CodePro를 개발하면서 우리는 이클립스 개발에 대해 세부적으로 배울 수 있는 기회를 얻었다. 이클립스에 대해 우리보다 더 잘 알 만한 개발자는 IBM과 OTI에서 이클립스와 함께 먹고 자며 숨쉰 사람들 정도일 것이라 생각한다. 또한 CodePro는 이 책에서 제시하는 아이디어와 기법을 실험해볼 수 있는 실험실이기도 했으므로, 덕분에 어떤 내용을 써야 할지 생각해볼 여유를 가질 수 있었다.
<역자 소개>
양석호
KAIST 전산과를 졸업하고, 웹, 모바일, 임베디드, 자바 GUI 애플리케이션 등 다양한 프로젝트를 수행했으며 현재는 NHN에서 일본 검색서비스 개발 업무를 맡고 있다. 에이콘 이클립스 프로페셔널 시리즈 에디터를 맡아 『이클립스 RCP: 설계에서 구현, 배포까지, 자바 GUI 애플리케이션 개발의 모든 것』를 번역하는 등 양질의 이클립스 관련서를 독자들에게 소개하는 데 큰 보람을 느낀다. 또한 2005년부터 네이버 이클립스 플러그인 까페(http://cafe.naver.com/eclipseplugin)를 운영하며 점점 늘어가는 이클립스 플러그인 개발자들과 함께 이클립스 기술 전파에 노력하고 있다.
<역자 서문>
지금도 이클립스 플랫폼 개발 관련 서적이 많은 것은 아니지만, 역자가 이클립스 플러그인 개발을 시작할 때는 『Eclipse: Building Commercial-Quality Plug-ins』가 처음 이클립스 플랫폼을 접하는 사람이 참고할만한 독보적인 책이었습니다. 유일한 책임에도 불구하고 적절한 예제와 상세한 설명, 풍부한 실무 경험이 담겨 있어서 정말 큰 도움이 되었습니다. 돌이켜 생각해보면 이클립스 플러그인 개발 분야에서 유일하다 싶은 이 책이 너무 뛰어나서 한동안 경쟁서적이 나오지 못한 것은 아닐까 싶습니다.
이클립스 서적을 번역하고자 마음을 먹었을 때 당연하게도 이 책이 첫번째 후보가 되었습니다만, 이미 시간이 많이 흘러 이클립스는 기반 플랫폼을 OSGi로 전환한다는 크나큰 변화를 겪은 직후였습니다. 이로 인해 OSGi 전환 직후 출간된 『이클립스 RCP』는 최신 이클립스 플랫폼의 내용을 훌륭히 담고 있어 일단 먼저 번역을 시작했습니다. 하지만 곧이어 출간된 『Eclipse Building Commercial-Quality Plug-ins, 2판』은 절대 놓칠 수 없는 책이었습니다. 『SWT/JFace 인 액션』, 『이클립스 RCP』 출간과 때를 맞춰 최근 이클립스 플랫폼에 관심 갖는 개발자분들이 눈에 띄게 늘어나면서, 『이클립스 실전 플러그인 개발』을 빨리 내놓아야 한다는 압박감도 컸습니다만 마치고 나니 가장 뿌듯한 번역서이기도 합니다..
전에도 이미 읽었던 책이지만 직접 번역을 해보니 이 책의 장점을 더욱 크게 느낄 수 있었습니다. OSGi 등 고급 주제에 해당하는 것은 『이클립스 RCP』에 더 많이 녹아 있다고 봅니다만, 이클립스 설치와 SWT/JFace 프로그래밍부터 시작하는 학습과정은 처음 시작하는 개발자에게 큰 도움이 되도록 구성되어 있습니다. 특히 이 책의 최고 장점은 단순히 코딩뿐만 아니라 플러그인 개발자로서 염두에 둬야 할 이클립스 철학과 좋은 GUI를 위한 가이드라인입니다. 결국 "상용 품질(commercial-quality)"이라 함은 개발의 난이도보다는 사용자에 대한 배려니까요. 또한 이클립스 RCP는 아무래도 애플리케이션 개발자의 입장이었습니다만, 『이클립스 실전 플러그인 개발』은 플러그인 개발자 입장에서 다른 플러그인과 매끄럽게 상호작용하는 부분에 대해 잘 설명하고 있습니다.
최근 이클립스는 또 한번의 큰 변화를 겪었습니다. 이클립스 3.3 기반의 유로파(EUROPA)는 Mylyn이라는 새로운 형태의 UI와 다양한 개발 언어 지원을 추가함으로써 범용 개발 도구로서의 면모를 제대로 보여주고 있습니다.
이클립스 3.2를 기준으로 집필된 책이어서 최근 출시된 이클립스 3.3과는 다소 차이가 있지만, 이클립스 유로파는 이클립스의 기반 플랫폼의 확장보다는 외부 기능을 넓히는 데 중점을 두었습니다. 이 책은 방대해진 이클립스의 영역을 탐험하기 위한 훌륭한 도구가 되리라 생각합니다. 이클립스는 아직 OSGi와 완전히 동화되지는 않은 상태이므로 곧 또 한번의 큰 변화를 예고하고 있습니다. 이 책으로 지금까지 발전해온 이클립스의 모습을 빠른 시간 안에 파악하고 앞으로 이클립스의 진화 과정을 함께 즐길 수 있기를 바랍니다.
신혼임에도 번역에 많은 시간을 양보해주었던 착한 아내 현우, 저를 언제나 지지해주시는 할머니와 엄마, 장인어른, 장모님, 지금은 하늘나라에 계시지만 항상 저를 격려해주시고 많은 것을 남겨주신 할아버지께 이 자리를 빌어 감사 드립니다. 또한 이클립스의 잠재력을 믿어주시고 좋은 책을 만들기 위해 끊임없이 노력하시는 에이콘 출판사분들께도 진심으로 감사 드립니다.
2007년 7월
양 석 호