간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (29,930원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (22,050원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (25,200원)
(최대할인 4만원 / 2만원 이상 결제)
Close

고급 이클립스 플러그인 개발 : 플러그인 확장에서 동적 서비스 연결까지

원제 : Mastering Eclipse Plug-in Development
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 10
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

35,000원

  • 31,500 (10%할인)

    1,750P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 11/29(화) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(240)

  • 상품권

AD

책소개

[고급 이클립스 플러그인 개발]은 이클립스 플러그인 환경에 익숙한 자바 개발자가 진정한 전문가가 되기 위해 알아야 할 높은 수준의 개념을 소개한다. 책은 다른 플러그인이 기능을 기여할 수 있는 사용자 정의 확장점 생성, 중첩된 콘텐츠를 제공해서 공통 탐색기 프레임워크(Common Navigator Framework) 확장, 내장된 Gogo 셸의 확장을 위한 커맨드 작성, 플러그인에 네이티브 코드를 기여하기 위한 프래그먼트 사용, 서비스 로더를 사용한 코드 수정과 OSGi에 친화적이지 않은 JAR 래핑, 약결합의 디자인 패턴으로 모듈형 애플리케이션 개발 등을 다루고 있다.

출판사 서평

★ 요약 ★

기본적인 이클립스 플러그인 개발에서 더 나아가 사용자 정의 확장점과 서비스나 외부 라이브러리의 정적/동적 연결을 통해 애플리케이션의 기능을 더욱 풍부하게 구현하는 방법을 소개한다. 또한 업데이트 사이트와 도움말 등을 통해 사용자가 애플리케이션을 편리하게 사용하도록 지원하는 기능을 제공하는 방법도 다룬다. 이 책을 통해 플러그인 개발 경험이 있는 개발자는 자신의 애플리케이션을 더욱 화려하게 만들 수 있는 팁을 얻게 될 것이다.

★ 이 책에서 다루는 내용 ★

■ 다른 플러그인이 기능을 기여할 수 있는 사용자 정의 확장점 생성
■ 선언적 서비스(Declarative Services)와 블루프린트(Blueprint)를 사용해서 동적으로 OSGi에 기여
■ 중첩된 콘텐츠를 제공해서 공통 탐색기 프레임워크(Common Navigator Framework) 확장
■ 내장된 Gogo 셸의 확장을 위한 커맨드 작성
■ 플러그인에 네이티브 코드를 기여하기 위한 프래그먼트 사용
■ 서비스 로더를 사용한 코드 수정과 OSGi에 친화적이지 않은 JAR 래핑
■ 약결합의 디자인 패턴으로 모듈형 애플리케이션 개발

★ 이 책의 대상 독자 ★

이 책은 이클립스 플러그인 환경에 익숙한 자바 개발자가 진정한 전문가가 되기 위해 알아야 할 높은 수준의 개념을 다룬다. 이클립스 플러그인을 작성해본 경험이 있다는 가정하에 이 책을 작성했다.

★ 이 책의 구성 ★

1장, ‘JFace와 공통 탐색기 프레임워크에 연결’에서는 JFace 마법사 생성법과 공통 탐색기 프레임워크에 콘텐츠를 통합하는 방법을 설명한 다음, 패키지 탐색기(Package Explorer)에 프로젝트 콘텐츠를 트리 뷰로 표시해본다.

2장, ‘사용자 정의 확장점 생성’은 다른 플러그인이 기능을 기여할 수 있는 확장 가능한 플러그인을 생성하기 위해 이클립스 확장 저장소를 사용하는 방법과 OSGi나 이클립스 런타임 밖에서 플러그인을 사용하는 방법을 설명한다.

3장, ‘OSGi 서비스를 이용한 애플리케이션 동적 연결’에서는 애플리케이션의 기능을 확장하는 수단으로서 OSGi 서비스를 소개한다. 이 장은 선언적 서비스(Declarative Services)나 블루프린트(Blueprint)를 이용해 선언적으로 OSGi 서비스를 설정하는 방법을 설명하고, OSGi R6에서 새롭게 추가된 Config Admin을 이용해서 서비스를 설정하는 방법을 설명한다.

4장, ‘Gogo 셸과 커맨드 사용’은 이클립스 4에 포함된 Gogo 셸의 사용법과 Gogo 스크립트와 자바로 사용자 정의 커맨드를 생성해 셸을 확장하는 방법을 설명한다.

5장, ‘네이티브 코드와 프래그먼트 번들’에서는 OSGi나 이클립스 애플리케이션으로 네이티브 코드를 로드하는 방법과 프래그먼트를 사용해 프레임워크나 기존의 OSGi 번들의 기능을 확장하는 방법을 설명한다.

6장, ‘클래스로더 이해’에서는 자바 클래스로더(ClassLoader)의 기본적인 동작 원리를 자세히 살펴보고, OSGi 런타임에서 클래스로더를 어떻게 사용했는지 알아본다. OSGi가 아닌 JAR 파일에 대한 업그레이드 전략과 함께 스레드 컨텍스트 클래스로더(Thread Context ClassLoader)와 서비스로더(ServiceLoader) 같은 OSGi가 아닌 다른 런타임에서 OSGi 프레임워크를 사용하는 방법도 설명한다.

7장, ‘모듈형 애플리케이션 설계’는 18가지 모범 사례와 함께 화이트보드 패턴(whiteboard pattern)과 익스텐더 패턴(extender pattern) 같은 모듈형 설계 패턴을 설명하고, 버전 번호 관리를 자동화하는 시맨틱 버전관리와 도구를 사용하는 방법도 다룬다.

8장, ‘EventAdmin을 이용한 이벤트 기반 애플리케이션’에서는 OSGi EventAdmin 서비스를 소개하고 이벤트 기반 애플리케이션을 설계하는 7단계와 함께 대화형 작업 공간을 제공하기 위해 E4에서 이벤트를 어떻게 사용하는지 설명한다.

9장, ‘P2를 이용한 배포와 업데이트’는 사용자 정의 접점(touchpoint)과 카테고리를 생성하고, P2 저장소(업데이트 사이트)를 생성하고 관리하는 방법을 설명한다.

10장, ‘이클립스의 사용자 지원 기능’에서는 참조 문서와 함께 이클립스 또는 RCP 기반 제품에 대한 도움말 문서를 작성하는 방법과 공용 도움말 서버를 실행하는 방법을 설명한다.

★ 저자 서문 ★

이클립스 플랫폼은 모듈 형태의 플러그인과 애플리케이션 개발을 지원하는 확장 가능한 시스템을 제공한다. 플러그인을 만드는 일반적인 메커니즘을 설명하는 다른 책과 달리, 이 책은 자신만의 확장점을 가지는 플러그인을 생성하는 방법과 이클립스 애플리케이션 내에서 OSGi 서비스를 사용하는 방법 같은 좀 더 깊이 있는 메커니즘을 다룬다. 이 책은 독자가 이미 이클립스 플러그인 개발에 친숙하고 팩트 출판사에서 출간된 『이클립스 4 플러그인』(에이콘출판, 2013년)에서 다룬 내용을 모두 이해한다고 예상하고 작성했다. 이 책을 읽고 나면 이클립스 확장과 독립형 OSGi 프레임워크 모두에 대해 확장 가능한 플러그인을 작성하는 방법을 알게 되고 도움말과 업데이트 사이트를 가진 이클립스 애플리케이션의 종단간 전송을 제공할 수 있다.

이 책에서는 이클립스에서 사용자 정의 확장점과 동적 OSGi 서비스를 사용해서 확장 가능한 애플리케이션을 작성하는 방법을 설명한다. 네이티브와 레거시 코드를 다루기 위한 특정 기술과 함께 화이트보드와 익스텐더 같은 동적 디자인 패턴도 살펴본다. 이 책은 바로 세부사항으로 들어가서 새 JFace 마법사를 정의하고, 사용자 정의 확장점으로 이클립스를 확장하는 방법을 설명한다. 그런 다음 이클립스 콘솔에 새로운 커맨드를 정의하는 방법과 플러그인에 네이티브 코드를 포함시키는 방법에 대해 자세히 다룬다. P2 사이트를 생성하고 관리하며, 이클립스 플러그인에 도움말 문서를 작성하는 방법을 상세히 설명하기 전에 모듈형 애플리케이션 설계 패턴과 스레드 컨텍스트 클래스로더에 대해 알아본다.

★ 옮긴이의 말 ★

이클립스는 다양한 플랫폼에서 자바, C 등의 여러 가지 언어로 애플리케이션을 개발, 빌드, 배치할 수 있게 지원하는 통합 개발 도구다. 웹스피어 스튜디오(WebSphere Studio)에서 ‘애플리케이션 개발자(Application Developer)’라는 멀티 플랫폼을 지원하는 IBM의 통합 개발 환경을 오픈소스 소프트웨어로 공개하면서 이클립스는 시작됐다.

2003년 이클립스의 첫 번째 버전이 릴리스된 후, 지금은 루나(Luna)(4.4)까지 릴리스됐다. 그동안 이클립스는 기반 구조를 OSGi로 변경하고, UI를 EMF 모델 기반으로 변경하는 등 여러 가지 변화를 시도하면서 사실상의 자바 개발 표준 도구가 됐다. 특히 이클립스의 OSGi 기반 구조는 플러그인뿐만 아니라 OSGi 번들도 쉽게 사용할 수 있게 함으로써 애플리케이션의 기능을 더욱 강력하게 만들었다. 더 나아가 개발 도구에만 그치지 않고 다양한 플랫폼 환경의 사물 간 통신 서비스를 개발하는 데도 플러그인 기술을 활용할 수 있게 했다.

이 책은 플러그인 개발을 시작하는 개발자가 아니라 플러그인 개발에 경험이 있는 개발자를 대상으로, 플랫폼 확장뿐만 아니라 확장점을 통해 자신의 플러그인을 확장 가능하게 만들고 서비스나 외부의 라이브러리, 프래그먼트를 정적/동적으로 연결해 기능을 확장하는 메커니즘을 소개한다. 또한 비동기 연산이 가능한 이벤트 메커니즘을 설명하고, 업데이트 사이트와 도움말과 같이 사용자가 애플리케이션을 사용하기 편리하도록 지원하는 기능을 제공하는 방법도 다룬다. 이 책은 동적 연결과 확장이 용이한 애플리케이션 개발에 참고할 만한 설계 패턴도 함께 소개하므로, 책을 읽고 따라 하다 보면 자신이 개발한 애플리케이션이 멋지게 변화하는 모습을 보게 될 것이다.

플러그인 개발에 익숙하지 않은 개발자라면 내용이 다소 어려울 수 있다. 이클립스에 대한 기본적인 메커니즘에 대한 이해가 필요하다면 에이콘출판사에서 출간한 『이클립스 SWT』, 『이클립스 RCP』, 『이클립스 4 플러그인 개발』 등 이클립스 플러그인 개발 기본서를 참고하길 바란다.

목차

지은이 소개
감사의 글
기술 감수자 소개
옮긴이 소개
옮긴이의 말
들어가며

1장. JFace와 공통 탐색기 프레임워크에 연결
__JFace 마법사
____피드 마법사 생성
______클래스 생성하기
______마법사에 페이지 추가
______페이지에 콘텐츠 추가
______마법사 테스트
______제목과 이미지 추가
______도움말 추가
______마법사 완료
______FeedWizard를 newWizards 확장점에 추가
______진행 모니터 추가
____미리 보기 표시
__공통 탐색기
____콘텐츠와 레이블 프로바이더 생성
____공통 탐색기와 통합
____콘텐츠 탐색기와 뷰 연결
____공통 탐색기에 커맨드 추가
____변경에 반응
____뷰어 업데이트 최적화
____선택 변경 연결
______편집기 열기
______콘텐츠가 있는 줄 찾기
______선택 항목 설정하기
__정리

2장. 사용자 정의 확장점 생성
__확장과 확장점
____확장점 생성
______IFeedParser 인터페이스 생성
______MockFeedParser 클래스 생성
______확장점 스키마 생성
______확장점 사용
______콘텐츠와 레이블 프로바이더를 확장에 통합
______브라우저에 피드 표시
______실제 피드 분석기 구현
______Atom 지원
______분석기에서 네임스페이스 인식
______우선순위와 순서
______실행 가능한 확장과 데이터
______실행 가능한 확장 팩토리
____OSGi 외부에서 확장 저장소 사용
______확장 저장소 캐시 사용
______클래스 경로의 모든 확장 로드
__정리

3장. OSGi 서비스를 이용한 애플리케이션 동적 연결
__서비스 개요
__프로그램적으로 서비스 등록
____액티베이터 생성
____서비스 등록
____서비스 우선순위
____서비스 사용
____번들의 느린 활성화
____서비스와 확장점 비교
__선언적 서비스 등록
____선언적 서비스
______속성과 선언적 서비스
______선언적 서비스에서 서비스 참조
______다수의 컴포넌트와 선언적 서비스 디버깅
____동적 서비스 어노테이션
______메이븐 빌드 시 어노테이션 처리
____블루프린트
______제미니 블루프린트 설치
______에리즈 블루프린트 설치
______블루프린트 서비스 사용
______블루프린트에 속성 전달
______빈 참조와 속성
______블루프린트와 DS 비교
__동적 서비스
____매번 서비스 처리하기
____서비스 트래커 사용
______서비스 정렬
______서비스 필터링
______액티베이터 없이 번들 컨텍스트 가져오기
______서비스 참조 사용 시 주의사항
____종속 서비스
__동적 서비스 구성
____펠릭스 파일인스톨 설치
____구성 관리자 설치
____선언적 서비스 구성
____DS 외부의 구성 관리자
____서비스와 관리 서비스
______EmptyFeedParser 클래스 생성
______EmptyFeedParser 구성
____서비스 팩토리
______EchoServer 클래스 생성
______EchoServiceFactory 클래스 생성
______EchoService 구성
__정리

4장. Gogo 셸과 커맨드 사용
__이퀴녹스의 콘솔
____호스트 OSGi 콘솔
____커맨드 실행
____변수와 파이프
____함수와 스크립트
____리터럴과 객체
____메소드 호출과 연쇄처리법
____제어 흐름
____커맨드 라인에서 이퀴녹스 실행
____osgi.bundles와 config.ini 이해
____원격 접속
____연결 보안
______JAAS 구성 생성
______구성 옵션의 이해
______SSH 데몬 실행
__셸 확장
____기존 메소드를 커맨드로 추가
______기존 인스턴스로부터 클래스 얻기
______ClassLoader로 클래스 로드
______자바로 커맨드 작성하기
______프로젝트 생성
______선언적 서비스로 커맨드 등록
______커맨드 테스트
____콘솔 커맨드로 객체 처리
______번들을 출력하는 커맨드 추가
______번들 목록 반환
______each로 목록 처리
____커맨드로 함수 호출하기
____루프와 이터레이션
__정리

5장. 네이티브 코드와 프래그먼트 번들
__네이티브 코드와 이클립스
____간단한 네이티브 라이브러리 생성
______맥 OS X
______리눅스
______윈도우
____네이티브 라이브러리 로딩
____라이브러리 종속성
____네이티브 코드 패턴
__OSGi 번들 안의 네이티브 라이브러리
____네이티브 코드의 선택적 해석
____동일 플랫폼에 대한 다수의 라이브러리
____동일한 이름의 여러 라이브러리
____필터와 제약사항 추가
__네이티브 라이브러리 다시 로딩
__OSGi 프래그먼트 번들
____프래그먼트로 네이티브 코드 추가
____번들에 클래스 추가
____프래그먼트로 번들 패치
____프래그먼트로 패키지 내보내고 가져오기
____확장 번들
____정리

6장. 클래스로더 이해
__클래스로더 개요
____클래스로더와 상속
____웹 애플리케이션 서버의 클래스로더
____클래스로더와 가비지 컬렉션
____OSGi와 클래스로더
____OSGi 서비스와 클래스로더
__스레드 컨텍스트 클래스로더
__자바 서비스로더
____서비스로더와 OSGi, Eclipse의 문제
____서비스 생산자 생성
____필수 번들 다운로드
____서비스 생산자 실행
______서비스 소비자 생성
____서비스 소비자 실행
__OSGi 업그레이드 전략
____직접 라이브러리 포함시키기
____bnd로 라이브러리 래핑
____서비스를 사용하도록 라이브러리 업그레이드
____클래스 확인 문제 해결
__정리

7장. 모듈형 애플리케이션 설계
__시맨틱 버저닝
__공개 API와 버전 범위
__기준선 설정과 자동 버전 관리
____이클립스 API 기준선
____Bnd 기준선
____Bndtools
____메이븐 기준선 설정
__디자인 패턴
____화이트보드 패턴
____익스텐더 패턴
__모범 사례
____API와 구현의 분리
____패키지 분리
____서비스 분리
____Require-Bundle보다 Import-Package 사용
____패키지 버전과 번들 버전
____분할 패키지 피하기
____패키지 가져오기와 내보내기
____시작 순서 조건 피하기
____긴 액티베이터 start 메소드 피하기
____구성 관리자 사용
____구현이 아닌 서비스 공유
____낮은 결합도와 높은 응집도
____낮은 수준의 실행 환경에서 컴파일
____Class.forName 피하기
____DynamicImport-Package 피하기
____BundleActivator 사용 자제하기
____스레드 안정성 고려하기
____다른 프레임워크에서 테스트
__정리

8장. EventAdmin을 이용한 이벤트 기반 애플리케이션
__OSGi EventAdmin 서비스의 이해
____이메일 전송
____이벤트 생성
____이벤트 게시
____이벤트 수신
____이벤트 필터링
____스레드와 이벤트 전달 순서
____EventAdmin과 서비스 비교
____프레임워크 이벤트
__이벤트와 E4
____E4로 이벤트 전달
____E4로 이벤트 수신
____직접 E4 EventHandler 구독
____EventAdmin과 IEventBroker 비교
__이벤트 기반 애플리케이션 설계
____애플리케이션 컴포넌트화
____채널 식별
____속성 식별
____토픽에 채널 연결
____이벤트 시뮬레이션
____버전과 느슨한 형 관리
____이벤트 객체 콘텐츠
____JMS와 비교
____정리

9장. P2를 이용한 배포와 업데이트
__이클립스 P2
____P2 디렉터를 이용한 프로비저닝
____기존 애플리케이션에 콘텐츠 설치
__P2 애플리케이션 실행
____JVM 구동
____이퀴녹스 시작
__P2 저장소
____P2 아티팩트와 콘텐츠 파일
____바이너리와 압축 파일
____P2 미러 사이트 생성
____P2 메타데이터 생성
____업데이트 사이트 카테고리
____복합 업데이트 사이트
____고전적인 업데이트 관리자
__접점
____P2로 피처 분류
____자동으로 업데이트 사이트 추가
____접점 액션 등록
____JVM 또는 프로그램 인수 추가
____사용자 정의 접점
__정리

10장. 이클립스의 사용자 지원 기능
__이클립스의 도움말 페이지
____도움말 페이지 추가
____중첩된 목차
____앵커와 링크
____다른 플러그인에서 앵커에 연결
____조건부 활성화
____문맥 인지 도움말
____액티브 도움말
____DocBook과 이클립스 도움말
____Mylyn WikiText와 이클립스 도움말
__도움말 서버와 RCP
____도움말과 이클립스 3.x
____도움말과 이클립스 4.x
____독립된 InfoCenter 실행
__치트 시트
____치트 시트 생성
____커맨드 추가
____선택적인 단계
____선택에 응답
____복합 치트 시트
______정리

찾아보기

저자소개

알렉스 블루윗 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

신은정 [역] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이 상품의 시리즈

(총 251권 / 현재구매 가능도서 241권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    10.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크 안전결제시스템 (에스크로) 안내

    (주)인터파크의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용