Top

이클립스 RCP [설계에서 구현, 배포까지, 자바 GUI 애플리케이션 개발의 모든 것]

  • 지은이Jeff McAffer, Jean-Michel Lemieux
  • ISBN : 8960770043
  • 35,000원
  • 2006년 11월 29일 펴냄
  • 페이퍼백 | 536쪽 | 190*250mm
  • 시리즈 : 이클립스 프로페셔널

책 소개

이클립스가 제공하는 리치 클라이언트 플랫폼(RCP) 플러그인은 채팅 애플리케이션부터 기업용 소프트웨어 클라이언트까지 다양한 데스크탑 애플리케이션의 기반으로 사용할 수 있는 훌륭한 플랫폼이다. 『이클립스 RCP』에서는 이클립스 RCP 프로젝트를 이끌고 있는 두 명의 리더가 이클립스를 사용해서 빠르고 효율적으로 크로스플랫폼 데스크탑 애플리케이션을 개발하는 방법을 설명한다.

[ 이 책의 특징 ]

이 책에서는 RCP 개발자를 대상으로, 하이퍼볼라라는 인스턴트 메시지 채팅 클라이언트를 개발하고 배포하는 전체 과정을 설명한다. 텅빈 작업공간에서 시작해 충분한 기능을 갖춘 상용 수준 RCP 애플리케이션인 하이퍼볼라를 개발했다. 다양한 분야의 RCP 관련 이슈를 다루기 위해 인스턴트 메시징이라는 주제를 택했으며, 실제로 동적으로 확장 가능한 조립식 시스템, 서드파티 코드 라이브러리 사용, 다양한 환경에 대한 애플리케이션 배포 등의 주제를 다룬다. 독립형 데스크탑에서 실행할 애플리케이션뿐만 아니라, 심지어 PDA와 키오스크, 이클립스 IDE 확장형 애플리케이션까지 다룬다. 이 책의 내용을 바탕으로 독자가 개발할 애플리케이션에도 같은 기능을 추가할 수 있다.


[ 이 책의 내용 ]

이 책에서는 데스크탑 애플리케이션 개발 플랫폼으로서 이클립스의 강력함을 설명할 뿐만 아니라, 완성된 상용 수준 RCP 애플리케이션을 실제로 개발하는 과정을 단계별로 살펴본다. 동적으로 확장가능한 조립식 시스템을 개발하는 방법과 서드파티 코드 라이브러리 사용, 여러 환경에 대한 애플리케이션 배포 등 다양한 기법을 선보인다. 완성된 프로토타입을 빌드, 개선, 리팩터링하면서 UI를 개선하고, 도움말과 업데이트 기능 등을 추가한다. 마지막으로 완성된 소프트웨어를 빌드하고, 꾸미고, 배포한다.

● 이클립스 3.1의 새로운 RCP 기능뿐만 아니라, RCP 애플리케이션 설계, 구현, 배포를 돕는 새로운 도구에 대해 상세히 다룬다.
● RCP 애플리케이션의 브랜드를 홍보하고 룩앤필을 조정하는 방법을 소개한다.
● RCP 개발에서 흔히 겪는 어려움을 해결하고 깔끔히 마무리하는 방법을 설명한다.
● RCP와 일반 플러그인 개발의 유사점과 차이점에 대해 논의한다.
● 이클립스의 기반 프레임워크인 OSGi를 개략적으로 살펴본다.

이클립스 RCP를 사용해서 GUI 플랫폼 고유의 특성을 살리는 리치 클라이언트 자바 GUI 애플리케이션을 개발하고 배포하려는 개발자들이 꼭 읽기 바란다.


[ 이 책의 구성 ]

이 책은 크게 두 부분으로 나눌 수 있다. 1부2부는 RCP에 대한 개념을 잡고, RCP 애플리케이션을 개발하는 과정을 차례로 선보이는 튜토리얼 형태로 써나갔다. 이 내용을 따라가다 보면, 하이퍼볼라를 점진적으로 개발해 나가면서 도움말, 업데이트 등 여러 가지 새로운 기능을 추가한 멋진 채팅 애플리케이션을 완성할 수 있다. 또한 최대한 딱딱하지 않은 설명과 많은 예제를 통해서 마치 옆에서 함께 개발하는 듯한 느낌을 주려고 노력했다. 그리고 우리가 애플리케이션이나 튜토리얼을 만들면서 경험했던 여러 가지 시행착오들을 독자들이 똑같이 겪는 일이 없도록 공개해뒀다.

책의 뒷부분에서는 실제 제품을 만들기 위해 해야 할 일을 알려준다. 프로토타입을 작성하는 것과 제품을 완성해서 배포하는 것은 전혀 다른 일이다. 3부4부에서는 프로토타입 단계에서 끝내지 않고 제품을 완성하기 위해 해야 할 일을 각 장마다 유형 별로 자세히 살펴본다. 예를 들면 프로토타입을 다듬고 리팩터링하기, UI 개선, 제품을 빌드하고 사용자에게 배포하는 것 등이다. 단순한 참고자료 이상의 내용을 담기 위해 노력했지만, 앞부분과 마찬가지로 상세한 예시와 예제 코드를 제공한다. 3부와 4부에서는 이클립스 커뮤니티에서 논의되었거나 상용 제품을 개발하는 중에 튀어나오는 주요 걸림돌에 대한 해결책을 다루고 있다.

마지막으로 5부는 참고자료이다. 이클립스의 기반 실행 프레임워크인 OSGi의 핵심 사항을 다루고, 책에서는 자세히 다루지 않았지만 이클립스 플랫폼에서 제공하는 다양한 플러그인에 대해 살펴본다.

한 권의 책으로 이클립스에 대한 모든 것을 다룰 수는 없으며, 이클립스와 플러그인 개발에 대한 좋은 책들이 이미 많이 나와있기 때문에, 이 책에서는 RCP 관련 기능, API에만 초점을 맞춰 곧바로 RCP 개발에 대한 내용을 다루고 있다.


[ 이 책의 대상 ]

이 책은 몇 가지 유형의 자바 개발자를 대상으로 한다. 자바 개발 경험이 어느 정도 있는 것으로 가정하므로, 자바 개념이나 문법에 대해서는 전혀 다루지 않는다. 이클립스 RCP가 처음인 개발자를 대상으로는, 플랫폼의 기원, 이클립스 IDE의 간략한 설치법과 사용법, RCP 애플리케이션 작성 방법 등을 다룬다. 이클립스를 사용해 본 경험이 있다면 도움이 되겠지만, 처음이라도 별다른 문제는 없다. 이클립스 플러그인을 작성해본 경험이 있는 개발자를 대상으로는, RCP 개발이 플러그인 개발과 다른 점을 다룬다. 예를 들면 RCP 애플리케이션에 추가해야 하는 특별한 프로그램 요소뿐만 아니라, 릴리즈 공학 프로세스의 일부인 플러그인 빌드, 브랜드 홍보, 배포, 설치 등 RCP 애플리케이션만의 특성을 설명한다. 이클립스 RCP 개발 경험이 있는 개발자들은, 이클립스 3.1에서 제공하는 새로운 RCP 기능뿐만 아니라 RCP 애플리케이션 설계, 코드 작성, 배포를 돕는 다양한 도구에 대한 내용이 도움이 될 것이다.


[ 부록 CD ]

● 윈도우, 리눅스, 맥OS X용 이클립스 3.1 SDK
● 이클립스 3.1 RCP SDK
● 이클립스 3.1 RCP 델타 팩
● 모든 예제 소스코드

저자/역자 소개

[ 저자 서문 ]

어떤 면에서 이 책은 이클립스 리치 클라이언트 플랫폼(RCP)의 설계 문서라고 볼 수도 있다. 개발 팀원들이 이클립스 3.1을 개발하면서 동시에 집필했기 때문이다. 심지어 관련 기능이 구현되기도 전에 작성한 부분도 있다. RCP가 어떻게 동작하는지 설명하는 내용을 쓰면서, 이클립스 RCP를 구성하는 메커니즘과 개념을 실제 사용해서 개발할 때 개발자가 어떻게 느낄지 더 생생하게 이해할 수 있었다. 늘 즐거운 일이었다고는 말할 수 없지만, 이클립스 RCP에 대한 학습과정을 개선해 나갈 수 있는 훌륭한 기회였다. 설명하기 어렵거나 복잡한 내용이 나올 때마다, 잠시 책에서 손을 떼고 이클립스를 좀더 쉽게 사용할 수 있도록 수정해볼까 고민을 많이 했다. 실제로 직접 수정한 경우도 많았다(필자뿐만 아니라, 이클립스 플랫폼 팀이 모두 참여했다). 복잡하고 긴 10쪽짜리 장황한 사용법과 설명을, 새로운 마법사나 기능을 사용해 단락 하나로 고쳤을 때의 기분은 말로 표현하기 어려울 정도이다. 다른 한편으로는, 핵심적인 사항에 대한 통찰력을 얻게 됨으로써 좀더 명확하고 간단하게 기능을 설명할 수 있었다. 이러한 과정에서 발견된 버그를 수정하는 작업은 다소 집중력을 떨어뜨리긴 했지만 충분한 가치가 있는 일이었다. 마치 우리가 글을 쓰고, 코딩하고, 배우면서 동시에 삶을 즐기기도 해야 하는 것처럼 말이다. 우리는 결국 RCP로서의 이클립스에 대한 상당한 지식을 얻게 되었으며, 이 글을 읽는 독자도 곧 그렇게 되리라 믿는다.


[ 저자 소개 ]

Jeff McAffer
이클립스 RCP와 런타임 팀을 이끌고 있으며, 이클립스 플랫폼의 초기 설계자이자 커미터이다. Object Techonology International에서 분산/병렬 객체지향 컴퓨팅, 익스퍼트 시스템, 메타레벨 구조 등의 개발 업무를 맡았으며, 지금은 IBM 오타와 소프트웨어 연구소에서 일하고 있다.

Jean-Michel Lemieux
이클립스 팀/CVS 컴포넌트 프로젝트에서 초기부터 커미터로 활동하고 있다. IBM 오타와 소프트웨어 연구소에서 실시간 SS7 모니터링 시스템과 실시간 모델링 도구, 이클립스 개발에 참여했다.


[ 역자 서문 ]

이클립스는 처음부터 개발 도구가 아닌 개발 도구 플랫폼이었다. 하지만 이제 크로스플랫폼 GUI 애플리케이션 플랫폼으로 자리잡으려 하고 있다. 사실 GUI 플랫폼은 웹 플랫폼보다 훨씬 전부터 있어왔고, 비교적 최근에 나타난 크로스플랫폼 GUI 플랫폼이라 하더라도 대부분은 이클립스보다 오래된 것이다. 그중에서도 크로스플랫폼 GUI 애플리케이션 플랫폼의 가장 유력한 후보는 바로 이클립스의 기반인 자바이다. 하지만 자바는 썬 마이크로시스템즈가 서버 시장에 주력하는 회사인 탓인지, 스윙이라는 멋진 GUI 플랫폼을 만들어놓고도 데스크탑 애플리케이션 개발용 플랫폼으로는 크게 자리잡지 못했다. 이는 스윙의 UI 완성도 부족, 기능 부족, 성능 저하 등에 기인했지만, 널리 사용되는 통합개발환경이 없었다는 것도 큰 이유 중 하나였다. 하지만 막상 이클립스라는 통합개발환경이 인기를 얻으면서, 동시에 자바가 갖고 있던 크로스플랫폼 GUI 툴킷의 자리까지 위협하고 있는 것은 자바 진영의 아이러니라 할 수 있다. 어쨌든 이클립스가 다소 우연하게 RCP의 대열에 들어오긴 했지만, 현재의 기세는 결코 무시할 수준이 아니다. 원래부터 자바를 활용해서 데스크탑 애플리케이션을 개발하고자 하는 노력은 지속적으로 있었는데, 스윙이라는 한계에 부딪혀 그동안 지지부진했다. 이러한 현실에 아쉬워하던 자바 개발자들이 이클립스 RCP 기반으로 왕성하게 자바 데스크탑 애플리케이션을 개발하고 있으며, 썬 마이크로시스템즈도 마찬가지로 넷빈즈 RCP로 맞불을 놓고 있으니 어찌됐든 자바 GUI 애플리케이션 플랫폼이 그간의 설움을 벗어날 기회로 생각된다. 이런 분위기에서 자바 기반 RCP, 그중에서도 이클립스 RCP에 관심을 갖고 이 책을 집어든 것은 정말 행운이다! 이클립스 RCP는 이클립스 IDE와는 독립된 애플리케이션을 개발할 수 있도록 떼어낸 플랫폼이다. 심지어는 이클립스 IDE를 이름만 바꿔서 새로운 RCP 애플리케이션인 척하는 것이 단 3분이면 가능할 정도로 라이센스로부터 자유로우면서 편리한 개발이 가능하다. 그러므로 RCP 개발을 어려운 것으로 생각할 필요도 없다. 코드 한줄 짜지 않고 다른 플러그인을 조합해서 자기 취향에 맞는 이클립스를 만들어 볼 수도 있다. 역자가 굳이 플러그인 개발서보다 RCP 개발서 번역을 먼저 택한 이유이기도 하다. 이클립스 IDE의 모든 것을 이해해야 하는 플러그인 개발보다는, 좀더 간결한 이클립스 RCP 위에서 조립하는 즐거움을 누리는 것이 이클립스 애플리케이션 개발에 좀더 쉽게 접근할 수 있는 방법이라고 생각한다. 또한 플러그인과 RCP를 아우르는 시야를 갖춤으로써, 설계에 대한 고민과 이클립스의 기본 철학에 좀더 여유를 갖고 접근할 수 있을 것이다. 현재 이클립스의 최신 버전은 3.2.1이며 이 책은 이클립스 3.1 기준이기는 하지만, 책의 모든 예제를 이클립스 3.2에서도 그대로 사용할 수 있다. 이클립스 3.1에서 3.2로 올라가면서 주로 바뀐 내용은 SWT 위젯 추가 및 기능 확장이며 PDE나 JDT 등의 기능은 거의 그대로이므로 그냥 이클립스 3.2를 사용하더라도 책의 내용을 이해하는 데는 전혀 문제가 없다. 이 책은 SWT에 대해서는 전혀 다루지 않으며, JFace에 대해서는 약간만 다룬다. SWT/JFace에 대한 내용은 Eclipse.org의 기술 문서나 『SWT/JFace 인 액션』 등의 책에서 익힐 수 있다. 이클립스 IDE는 한글 버전도 나와있지만 실제로 많이 사용되지는 않고 있다. 그래서 메뉴 등의 UI 설명을 어떻게할까 고민하다가 결국 한글 버전과 영문 버전의 용어를 함께 병기하기로 했다. 직접 이클립스 3.1 한글판을 실행해보면서 확인한 용어이니 이클립스 한글판을 사용하는 독자라도 무리가 없을 것이다. 다만 하이퍼볼라는 한글판이 제공되지 않기 때문에 항상 영어 메뉴 등이 나타나므로, 하이퍼볼라의 메뉴를 쓸 때는 한글 병기 없이 영문으로만 표시했다. 또한 하이퍼볼라 소스 코드를 이해하기에도 영문을 그대로 보는 편이 더 낫다. 이클립스 용어 중에는 이클립스의 독특한 개념 때문에 다소 생소한 것들이 있다. 퍼스펙티브, 피처, 확장, 확장점, 컨트리뷰션 등이 그런 것인데, 확장(extension)처럼 비교적 익숙한 용어가 아닌 경우 음차를 사용했으며, 피처(feature)는 익숙한 용어긴 하지만 흔히 번역하는 용어인 ‘기능’으로는 혼동의 여지가 크고 의미도 적절치 않다고 판단되어 소리나는 대로 표기했다. 다른 용어도 이클립스 한글판 용어와 음차 용어 중 더 적절하다고 판단되는 쪽을 선택했다. 향후 국내 이클립스 커뮤니티가 활성화되어 국내에서 사용할 용어도 표준화시킬 날이 있으리라 생각한다.


[ 역자 소개 ]

양석호 javanese@naver.com

KAIST 전산과를 졸업하고, 웹, 모바일, 임베디드, 자바 GUI 애플리케이션 등 다양한 프로젝트를 수행했으며 현재는 NHN에서 일본 검색서비스 개발 업무를 맡고 있다. 모바일 애플리케이션 개발 도구를 이클립스 기반으로 만들다가 이클립스와 OSGi에 완전히 매료되어 네이버 이클립스 플러그인 까페(http://cafe.naver.com/eclipseplugin)도 운영하고 있다. 『SWT/JFace 인 액션: 이클립스 스타일로 만드는 자바 GUI 애플리케이션』(에이콘출판, 2006)의 감수를 맡았으며, ‘에이콘 이클립스 프로페셔널 시리즈’ 에디터를 맡고 있다.

목차

목차
  • 1부 소개
  • 1장 리치 클라이언트 플랫폼으로서 이클립스
    • 1.1 이클립스
    • 1.2 이클립스 리치 클라이언트 플랫폼
    • 1.3 이클립스 RCP의 역사
    • 1.4 RCP의 용도
      • 1.4.1 IBM 워크플레이스 클라이언트 테크놀로지TM
      • 1.4.2 NASA와 이클립스 RCP
    • 1.5 요약
  • 2장 이클립스 RCP 개념
    • 2.1 플러그인 커뮤니티
    • 2.2 플러그인 들여다보기
    • 2.3 통합 시스템 구성
    • 2.4 OSGi 프레임워크
    • 2.5 런타임
      • 2.5.1 애플리케이션
      • 2.5.2 제품
      • 2.5.3 확장 레지스트리
    • 2.6 SWT
    • 2.7 JFace
    • 2.8 UI 워크벤치
      • 2.8.1 컨트리뷰션에 의한 확장
      • 2.8.2 퍼스펙티브, 뷰, 편집기
    • 2.9 요약
  • 2부 RCP로 만드는 메신저
  • 3장 준비 과정
    • 3.1 하이퍼볼라란?
    • 3.2 하이퍼볼라 개발 계획
    • 3.3 개발 환경 설치
    • 3.4 타겟 설정
    • 3.5 한번 실행해보자
    • 3.6 예제를 활용한 학습 요령
      • 3.6.1 예제 코드 관리자
      • 3.6.2 코드 비교 도구
    • 3.7 예제를 활용한 학습 요령
    • 3.8 요약
  • 4장 하이퍼볼라 애플리케이션
    • 4.1 하이퍼볼라와 첫 만남
    • 4.2 코드 둘러보기
      • 4.2.1 애플리케이션
      • 4.2.2 WorkbenchAdvisor
      • 4.2.3 퍼스펙티브
      • 4.2.4 WorkbenchWindowAdvisor
      • 4.2.5 ActionBarAdvisor
      • 4.2.6 요약
    • 4.3 실행과 디버깅
      • 4.3.1 디버깅
      • 4.3.2 실행 구성
    • 4.4 요약
  • 5장 하이퍼볼라 프로토타입 시작
    • 5.1 셸 기능 강화
      • 5.1.1 윈도우 위치와 크기 저장
    • 5.2 Contacts 뷰 추가
      • 5.2.1 Contacts 뷰를 퍼스펙티브에 추가
    • 5.3 채팅 모델
    • 5.4 Contacts 뷰 채우기
      • 5.4.1 ContactsView
      • 5.4.2 컨텐트 프로바이더 개요
      • 5.4.3 레이블 프로바이더
    • 5.5 이미지 추가하기
    • 5.6 요약
    • 5.7 참고자료
  • 6장 액션으로 메뉴와 툴바 꾸미기
    • 6.1 메뉴와 툴바 추가하기
      • 6.1.1 최상위 메뉴 만들기
      • 6.1.2 메뉴 관리자
      • 6.1.3 “Add Contact” 액션 정의
      • 6.1.4 “Add Contact” 액션 추가
      • 6.1.5 사용자 정의 툴바
    • 6.2 상태 표시줄 추가하기
      • 6.2.1 상태 표시줄 - 공유 리소스
    • 6.3 시스템 트레이 연동
      • 6.3.1 Display 얻기
      • 6.3.2 트레이 항목 생성하기
    • 6.4 요약
    • 6.5 참고자료
  • 7장 편집기로 구현하는 채팅 화면
    • 7.1 뷰와 편집기
    • 7.2 채팅 편집기 정의
      • 7.2.1 편집기 입력
      • 7.2.2 Chat 액션
    • 7.3 한번 실행해보자
    • 7.4 요약
    • 7.5 참고자료
  • 8장 하이퍼볼라 브랜드 적용
    • 8.1 하이퍼볼라 제품 정의하기
    • 8.2 윈도우 이미지
    • 8.3 런처 구성하기
    • 8.4 스플래시 화면
    • 8.5 제품 정보
      • 8.5.1 제품에 대한 정보
      • 8.5.2 플러그인 About 정보
    • 8.6 요약
  • 9장 하이퍼볼라 패키지 만들기
    • 9.1 하이퍼볼라 내보내기
    • 9.2 다양한 플랫폼으로 내보내기
    • 9.3 요약
    • 9.4 참고자료
  • 10장 메시지 주고받기
    • 10.1 서드파티 라이브러리 통합하기
      • 10.1.1 스맥 번들화
      • 10.1.2 번들 테스트
    • 10.2 모델 리팩터링
      • 10.2.1 스맥 소개
      • 10.2.2 설계 목표
      • 10.2.3 프로토타입 클래스 지우기
      • 10.2.4 채팅 UI 연결
    • 10.3 UI 개선
      • 10.3.1 컨텐트 프로바이더
      • 10.3.2 레이블 프로바이더
    • 10.4 엘리자와 채팅
    • 10.5 요약
  • 11장 로그인 기능 만들기
    • 11.1 로그인 대화창 추가하기
      • 11.1.1 대화창에 브랜드 적용하기
    • 11.2 로그인 설정 저장
      • 11.2.1 UI 구현
      • 11.2.2 환경설정 API
    • 11.3 자동 로그인 환경설정 추가하기
      • 11.3.1 환경설정 페이지 만들기
      • 11.3.2 액션 추가하기
      • 11.3.3 환경설정 접근하기
      • 11.3.4 기본 환경설정 값
      • 11.3.5 로그인 대화창의 환경설정
    • 11.4 요약
  • 12장 단축키 구현
    • 12.1 커맨드 정의
    • 12.2 한번 실행해보자
    • 12.3 워크벤치 액션에 키 바인딩 지정
    • 12.4 키 구성
    • 12.5 키 환경설정 페이지
    • 12.6 요약
  • 13장 도움말 기능
    • 13.1 타겟 플랫폼에 추가하기
      • 13.1.1 플러그인 가져오기
      • 13.1.2 플러그인 추가하기
    • 13.2 도움말 플러그인 얻기
    • 13.3 도움말 플러그인 구성
    • 13.4 도움말 액션 추가
    • 13.5 도움말 내용 추가
    • 13.6 도움말 내용 구조
    • 13.7 F1 도움말
    • 13.8 도움말과 함께 플러그인 내보내기
    • 13.9 요약
    • 13.10 참고자료
  • 14장 자동 업데이트
    • 14.1 업데이트 플러그인 가져오기
    • 14.2 업데이트 플러그인 구성하기
    • 14.3 피처 정의
    • 14.4 피처에 브랜드 적용하기
    • 14.5 업데이트 액션 추가
      • 14.5.1 하이퍼볼라 업데이트
      • 14.5.2 하이퍼볼라 확장하기
      • 14.5.3 확장 관리
    • 14.6 자동 업데이트
    • 14.7 요약
  • 3부 워크벤치
  • 15장 워크벤치 어드바이저
    • 15.1 워크벤치 어드바이저
      • 15.1.1 워크벤치 생명주기
    • 15.2 WorkbenchAdvisor
      • 15.2.1 생명주기 API
      • 15.2.2 예외 및 유휴 API
      • 15.2.3 구성 API
    • 15.3 WorkbenchWindowAdvisor
      • 15.3.1 IWorkbenchWindowConfigurer
      • 15.4 ActionBarAdvisor
      • 15.4.1 IActionBarConfigurer
    • 15.5 워크벤치 개요
      • 15.5.1 워크벤치 확장점 참조
      • 15.5.2 액션
      • 15.5.3 규모 확장성
      • 15.5.4 컨트리뷰션
      • 15.5.5 퍼스펙티브
      • 15.5.6 시동
    • 15.6 요약
  • 16장 퍼스펙티브, 뷰, 편집기
    • 16.1 퍼스펙티브
      • 16.1.1 퍼스펙티브 추가하기
      • 16.1.2 Debug 퍼스펙티브와 콘솔 뷰 추가하기
      • 16.1.3 IPageLayout 참조
      • 16.1.4 퍼스펙티브 바
      • 16.1.5 퍼스펙티브 메뉴
      • 16.1.6 프로그램으로 퍼스펙티브 제어하기
    • 16.2 뷰와 편집기
      • 16.2.1 같은 뷰의 다중 인스턴스
      • 16.2.2 스티키 뷰
      • 16.2.3 기여한 뷰 보기
      • 16.2.4 뷰 레지스트리
      • 16.2.5 파트들을 함께 연결하기
    • 16.3 다중 워크벤치 윈도우
      • 16.3.1 윈도우 탐색 메뉴
    • 16.4 편집기를 드래그앤드롭으로 열기
    • 16.5 요약
  • 17장 액션
    • 17.1 개요
    • 17.2 하이퍼볼라의 선언적 액션
      • 17.2.1 선언적 액션
      • 17.2.2 컨트리뷰션 허용하기
      • 17.2.3 액션 선언하기
      • 17.2.4 컨텍스트 메뉴
    • 17.3 표준 워크벤치 액션
    • 17.4 리타게터블 액션
    • 17.5 선언적 액션 통합하기
    • 17.6 툴바 액션 활용 팁
      • 17.6.1 이미지와 텍스트 함께 보여주기
      • 17.6.2 툴바에 컨트롤 추가
    • 17.7 상태 표시줄에 컨트리뷰션 추가
    • 17.8 진행 상황 알리기
      • 17.8.1 비선점 진행
      • 17.8.2 진행 뷰
      • 17.8.3 진행 관련 설정
      • 17.8.4 ProgressProvider 작성
    • 17.9 요약
  • 18장 색다른 워크벤치 윈도우 만들기
    • 18.1 무엇을 고칠 수 있을까?
    • 18.2 워크벤치 윈도우 조정
      • 18.2.1 UI 요소를 숨기거나 보여주기
      • 18.2.2 FormLayout
      • 18.2.3 툴바 숨기기
      • 18.2.4 토글 액션 추가하기
      • 18.2.5 퀵 서치 패널
      • 18.2.6 한번 실행해보자
    • 18.3 윈도우 모양까지 바꿔보기
      • 18.3.1 모양새 만들기
      • 18.3.2 윈도우 만들기
      • 18.3.3 윈도우 컨텐트 정의
    • 18.4 요약
  • 19장 뷰와 편집기의 외양 바꾸기
    • 19.1 프리젠테이션
    • 19.2 프리젠테이션 예시
      • 19.2.1 R21 프리젠테이션
      • 19.2.2 예제 프리젠테이션
    • 19.3 프리젠테이션 작성하기
      • 19.3.1 위젯 계층구조
      • 19.3.2 StackPresentation
    • 19.4 예제 프리젠테이션
      • 19.4.1 프리젠테이션 팩토리
      • 19.4.2 스택 프리젠테이션
      • 19.4.3 크기와 위치
      • 19.4.4 파트 추가, 선택, 삭제
      • 19.4.5 메뉴
    • 19.5 요약
  • 4부 개발 프로세스
  • 20장 코드 라이브러리 통합
    • 20.1 JAR 파일 형태의 플러그인
    • 20.2 주입 방식 번들화
    • 20.3 포장 방식 번들화
    • 20.4 참조 방식 번들화
    • 20.5 클래스로딩 문제 해결하기
      • 20.5.1 Class.forName() 이슈
      • 20.5.2 컨텍스트 클래스로더 이슈
      • 20.5.3 JRE 클래스 관리
      • 20.5.4 직렬화
    • 20.6 요약
  • 21장 플러그인 설치와 업데이트
    • 21.1 업데이트의 역할
    • 21.2 피처
      • 21.2.1 피처의 역할
      • 21.2.2 피처의 구성
    • 21.3 업데이트 사이트 작성과 관리
    • 21.4 예제: 동적 컨텐트 다루기
    • 21.5 요약
    • 21.6 참고자료
  • 22장 동적 플러그인
    • 22.1 동적 하이퍼볼라 만들기
    • 22.2 동적 시스템 구현을 위한 과제
    • 22.3 동적 인식
      • 22.3.1 동적 확장 시나리오
      • 22.3.2 객체 다루기
      • 22.3.3 번들 리스너
    • 22.4 동적 구동
      • 22.4.1 종료 후 뒤처리
    • 22.5 요약
  • 23장 다양한 환경에서 동작하는 RCP
    • 23.1 예제 코드
    • 23.2 시나리오
      • 23.2.1 시나리오에 대한 이야기
    • 23.3 제품 구성
      • 23.3.1 하이퍼볼라 구조 변경
      • 23.3.2 하이퍼볼라 프로젝트
      • 23.3.3 프로젝트 작명법
      • 23.3.4 왜 프로젝트가 많은가?
    • 23.4 하이퍼볼라 제품 구성
      • 23.4.1 JFace 구성
      • 23.4.2 PDA 구성
      • 23.4.3 확장형 구성(IDE)
      • 23.4.4 워크벤치 구성
      • 23.4.5 하이퍼볼라 키오스크
    • 23.5 코드 구조
      • 23.5.1 하이퍼볼라 계층화
      • 23.5.2 워크벤치 컨트리뷰션
      • 23.5.3 액션
      • 23.5.4 키 바인딩
      • 23.5.5 뷰와 편집기
      • 23.5.6 마법사, 환경 설정, 프로퍼티 페이지
      • 23.5.7 선택적 종속성
      • 23.5.8 아이콘과 이미지
    • 23.6 플랫폼 설계하기
      • 23.6.1 확장점
      • 23.6.2 확장 팩토리
      • 23.6.3 명명된 확장과 익명 확장
    • 23.7 RCP 친화적인 플러그인
    • 23.8 요약
  • 24장 하이퍼볼라 빌드
    • 24.1 PDE 빌드란?
    • 24.2 플러그인 build.properties
      • 24.2.1 빌드 제어 프로퍼티
      • 24.2.2 사용자 정의 빌드 빌드 스크립트 사용하기
    • 24.3 피처 build.properties
      • 24.3.1 루트 파일 식별과 위치 지정
      • 24.3.2 런처
      • 24.3.3 config.ini
    • 24.4 하이퍼볼라 빌더 설정
      • 24.4.1 build.properties
      • 24.4.2 customTargets.xml
    • 24.5 빌더 실행
    • 24.6 제품 빌드
    • 24.7 크로스 플랫폼 빌드
    • 24.8 빌드 고급 활용
      • 24.8.1 기반 플랫폼 관리
      • 24.8.2 CVS에서 가져오기
      • 24.8.3 맵 가져오기
      • 24.8.4 버전 번호 자동 치환
      • 24.8.5 버전 번호 수식
      • 24.8.6 결과물 이름 제어
    • 24.9 요약
  • 25장 마지막 한걸음: 배포
    • 25.1 아카이브
    • 25.2 네이티브 인스톨러
    • 25.3 자바 웹 스타트 (JNLP)
      • 25.3.1 자바 웹 스타트 동작 방식
      • 25.3.2 하이퍼볼라와 자바 웹 스타트
      • 25.3.3 JAR 서명
      • 25.3.4 자바 웹 스타트로 내보내기
      • 25.3.5 JNLP 내역서 빌드
      • 25.3.6 자바 웹 스타트와 업데이트
    • 25.4 업데이트 사이트
    • 25.5 설치한 하이퍼볼라 초기화
    • 25.6 사전 초기화 구성
    • 25.7 다중 사용자 설치 시나리오
      • 25.7.1 공유 설치
      • 25.7.2 공유 구성
      • 25.7.3 다중 구성
    • 25.8 요약
    • 25.9 참고자료
  • 5부 참고자료
  • 26장 OSGi 핵심
    • 26.1 OSGi와 이클립스 런타임
    • 26.2 플러그인의 모양새
    • 26.3 프래그먼트
    • 26.4 버전 번호 규칙
    • 26.5 서비스
    • 26.6 싱글턴
    • 26.7 번들 생명주기
      • 26.7.1 BundleActivator (Plugin 클래스)
      • 26.7.2 액티베이터 주의사항
      • 26.7.3 액티베이터의 사용
    • 26.8 활성화 앞당기기
      • 26.8.1 확장을 미리 활성화시키기
      • 26.8.2 osgi.bundles
      • 26.8.3 시동 과정
    • 26.9 자동 활성화
    • 26.10 클래스로딩
      • 26.10.1 클래스 검색 알고리즘
      • 26.10.2 가져오기와 내보내기 선언
      • 26.10.3 가져오기와 요구하기 비교
      • 26.10.4 선택적 가져오기
      • 26.10.5 다시 내보내기
      • 26.10.6 x-internal과 x-friends
    • 26.11 데이터 영역
    • 26.12 하이퍼볼라 동작과정 정리
    • 26.13 요약
  • 27장 Eclipse.org 플러그인
    • 27.1 플러그인 다운로드 사이트
    • 27.2 이클립스 플랫폼 플러그인
    • 27.3 제품 소개
    • 27.4 리소스
      • 27.4.1 리소스 키 피처 개요
      • 27.4.2 리소스 시작
      • 27.4.3 워크벤치 내의 리소스
    • 27.5 텍스트 편집
      • 27.5.1 텍스트 플러그인
      • 27.5.2 편집과 편집기 비교
      • 27.5.3 Text와 StyledText
      • 27.5.4 IDocument
      • 27.5.5 TextViewer와 TextEditor
      • 27.5.6 기타
    • 27.6 콘솔
    • 27.7 변수
    • 27.8 아웃라인과 프로퍼티 뷰
    • 27.9 폼
    • 27.10 브라우저

관련 블로그 글

[신간] 『이클립스 RCP』

이클립스 RCP: 설계에서 구현, 배포까지 자바 GUI 애플리케이션 개발의 모든 것』,
꽤 긴 부제를 단 신간이 드디어 출간되었습니다.

위 네온보드에 적힌 오늘의 주인공이 나타나지 않아 아쉬웠지만, 아이스크림 큰 통 하나를 사들고 온 플렉스 감수자 태완님과 에이콘의 경사스런 자리에 늘 빠지지 않으시는 재호님이 오셔서 함께 축하해주셨습니다.

이 책은 이클립스 3.1의 새로운 RCP 기능뿐만 아니라, 실제로 활용가능한 상용 수준의 채팅 클라이언트인 '하이퍼볼라'라는 메신저를 개발하는 과정을 단계별로 살펴봄으로써 실전을 통한 이해를 높이고 있습니다.
이클립스 RCP를 사용해서 GUI 플랫폼 고유의 특성을 살리는 리치 클라이언트 자바 GUI 애플리케이션을 개발하고 배포하려는 개발자들이 필수로 갖춰야 할 책입니다. 책 곳곳에서 나오지만 설명이 유보되는 SWT에 관한 논의는『SWT/JFace 인 액션』을 함께 살펴보시면 많은 도움이 될 것입니다.

역자이신 석호님, 고생많으셨습니다. 다음 책도 열심히 노력해서 잘 만들어보자구요. ^^*

CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

[출간 예정] 『이클립스 RCP』
(『이클립스 RCP』: Jeff McAffer /Jean-Michael Lemieux 지음, 양석호 옮김,
11월 30일 출간예정, 가격 35,000원)

이클립스 IDE의 모든 것을 이해해야 하는 플러그인 개발보다는, 좀 더 간결한 이클립스 RCP 위에서 조립하는 즐거움을 누리는 것이 이클립스 플랫폼 개발에 좀 더 쉽게 접근할 수 있는 방법이라고 생각한다. 또한 플러그인과 RCP를 아우르는 시야를 갖춤으로써 이클립스 기본 철학을 이해할 수 있으며, 좀더 여유를 갖고 그 철학에 걸맞게 설계해갈 수 있을 것이다.

옮긴이 서문 중에서..

HTML 표준에 기반한 단순 웹 애플리케이션으로는 사용자의 눈길을 끌기가 점점 어려워지고 있는 듯합니다. 또한 기업용 애플리케이션에서는 SOA를 비롯한 다양한 기술로 인해 웹이 점점 플랫폼화되어 가고 있다보니, 브라우저와 같은 특정 클라이언트에만 의존할 필요도 없어지고 있습니다. 따라서 최근에는 사용자 중심으로 관점을 옮겨 사용자가 좀더 쓰기 편하게 만드는풍부한 사용자 경험(Rice User Interface)’에 대한 관심이 높아지고 있습니다. 플렉스를 비롯한 리치 인터넷 애플리케이션이나 리치 클라이언트 애플리케이션들이 부각되고 있는 것입니다.

이와 같은 리치 클라이언트 애플리케이션에 대한 호응과 함께 자바로 구축된 서버와 쉽게 연동하는 자바 클라이언트의 개발에 대한 요구가 높아지면서, 이클립스 3.0부터 등장한 이클립스 RCP는 제대로 된 크로스 플랫폼 자바 GUI 애플리케이션을 개발할 수 있는 리치 클라이언트 플랫폼으로 자리매김했습니다. 개발자를 위한 플랫폼이었던 이클립스가 다시 개발자들의 전폭적인 지원을 받아 일반 사용자에게도 확산되는 것은 자연스러운 현상이겠지요.

이 책 『이클립스 RCP』는 이클립스 RCP 프로젝트 리더인 Jeff McAffer와 커미터 Jean-Michael LemieuxRCP 프로젝트를 개발하는 동안 직접 저술했습니다. 따라서 이클립스 RCP에 관한 한 실전과 이론이 모두 담겨있는 유일무이한 완결서라고 할 수 있습니다. 이 책을 옮긴 양석호님은 이클립스 플러그인 까페를 운영하고 있으며, 지난 7월 출간된 『 SWT/JFace 인 액션: 이클립스 스타일로 만드는 자바 GUI 애플리케이션』의 감수를 맡았습니다.

이 책에서는 실전 애플리케이션인 메신저 클라이언트를 직접 만들어봅니다
. 일상 생활에서 날마다 사용하는 메신저를 제작함으로써 RCP의 개념과 활용법 등을 손쉽게 익힐 수 있으며, 프로토타입 단계의 프로그래밍 수준을 넘어 설계, 최종 배포에 이르기까지 상용 제품을 만들어내는 전 과정에서 일어날 수 있는 모든 내용을 알기 쉽게 설명하고 있습니다.

CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안