Top

(개정판) 이클립스 RCP [자바 GUI 애플리케이션 개발을 위한 컴포넌트 아키텍처 플랫폼]

  • 원서명Eclipse Rich Client Platform (2nd Edition) (ISBN 9780321603784)
  • 지은이제프 맥아퍼, 장미셸 르뮤, 크리스 아니슈칙
  • 옮긴이신은정
  • ISBN : 9788960772700
  • 36,000원
  • 2012년 01월 31일 펴냄
  • 페이퍼백 | 620쪽 | 188*250mm
  • 시리즈 : 이클립스 프로페셔널

책 소개

이클립스를 기반으로 데스크탑이나 PDA, 키오스크 등에서 동작하는 리치 클라이언트 애플리케이션을 개발을 위한 참고서다. 이클립스와 관련된 개념과 메커니즘, 이클립스의 기반이 되는 OSGi 기본 개념, 플랫폼이 제공하는 다양한 기능을 소개한다. 하이퍼볼라라는 메신저의 개발 튜토리얼을 통해 이러한 요소들을 자신의 애플리케이션에 어떻게 활용할 수 있는지 설명한다. 초판 이후 이클립스 3.5 버전을 출시하면서 변경된 소프트웨어 설치와 업데이트 관련 메커니즘과 그 외 새로운 부분도 설명한다. 더불어 탄탄하고 유연한 OSGi 기반의 이클립스 컴포넌트 아키텍처를 경험하는 좋은 기회이며, 다양한 운영체제 환경에서 실행 가능한 리치 클라이언트 애플리케이션을 쉽고 빠르게 개발할 수 있다.

샘플코드 다운로드
http://www.acornpub.co.kr/files/download/1626/sample.zip
하이퍼볼라라는 인스턴스 메신저 애플리케이션을 개발하는 과정을 설명하기 위한 샘플코드. 이클립스 갈릴레오(Eclipse Galileo)를 기준으로 작성됐으며, 메시지 송수신을 쉽게 도와주는 XMPP(Extensible Messaging and Presence Protocol)를 사용해서 작성됐다. 각 장을 학습하면서 예제코드를 살펴보면, 이클립스 기반 RCP 개발 기술뿐만 아니라 개발 프로세스도 익숙해질 것이다.


[ 소개 ]

이클립스 리치 클라이언트 개발의 완벽 지침서

『(개정판) 이클립스 RCP』에서는 RCP 프로젝트를 이끌고 있는 3명의 리더가 이클립스 3.5(갈릴레오)를 통해 풍부하고, 이클립스 고유의 GUI를 빠르게 개발하는 방법을 설명한다.

이 책에서는 데스크탑 애플리케이션 개발 플랫폼으로서 이클립스의 강력함을 최대한 나타내고, 이클립스 3.5에서 새로 향상된 부분을 소개한다. 또 윈도우, 리눅스, 맥 그리고 핸드헬드 장치와 키오스크 등 다양한 플랫폼에서의 전체 기능을 포함한 RCP를 개발하는 절차를 자세히 설명한다.

저자의 풍부한 경험을 바탕으로, 프로토타입을 빌드, 개선, 리팩토링하면서 UI를 개선하고, 도움말과 소프트웨어 관리 형상을 추가하며, 최종 소프트웨어를 빌드, 브랜드 부여, 테스트, 배포하는 일련의 과정을 설명한다. 저자들은 동적으로 확장 가능한 조립식 시스템을 개발하는 방법과 서드파티 코드 라이브러리의 사용, 다양한 환경에서의 애플리케이션 패키징 등 여러 가지에 대한 최선의 사례를 소개한다.


[ 이 책에서 다루는 내용 ]

이 책은 모든 수준의 자바 개발자를 대상으로 한다.
■ p2, 커맨드, 데이터바인딩 등 새롭고 중요한 RCP 형태 소개
■ 이퀴낙스, SWT, JFace, OSGi 등 RCP와 관련된 핵심 기술
■ 효과적인 브랜딩과 RCP 애플리케이션의 룩앤필 조정
■ SWTBot으로 하는 RCP 애플리케이션 UI 테스트
■ RCP와 일반 플러그인 개발의 유사점과 차이점 논의

이 책에서는 개발자가 직접 해볼 수 있고 실용적이며 종합적인 풍부한 실제 코드 예제를 충분히 제공하고, 성공적인 애플리케이션 개발에 필수적인 핵심 기술을 자세히 다룬다.


[ 이 책의 대상 독자 ]

이 책은 몇 가지 유형의 자바 개발자 그룹을 대상으로 한다. 자바 프로그램 개발 경험이 있다고 가정하므로, 따로 자바의 개념과 문법은 설명하지 않는다.

이클립스 RCP가 처음인 개발자를 위해 플랫폼의 기원과 이클립스 IDE 사용법, 처음으로 RCP 애플리케이션을 개발하는 방법 등을 다룬다. 이클립스 사용 경험이 있으면 도움이 되지만, 처음이라도 문제는 없다.

이클립스 플러그인 개발 경험이 있는 개발자 대상으로는, 플러그인 개발과 RCP 개발의 차이점도 다룬다. 예를 들면 RCP 애플리케이션에서 추가해야 하는 특별한 프로그램 요소뿐만 아니라 브랜딩과 릴리스 공학 프로세스의 일부로서 플러그인 빌드, 배포, 설치 등 RCP 애플리케이션만의 고유한 특징을 설명한다.

이클립스 RCP 개발 경험자에게는 이클립스 3.5에서 추가된 새로운 RCP 피처와 기능, 그리고 이전보다 쉬워진 RCP 애플리케이션 설계, 코딩, 패키징을 지원하는 새로운 도구를 소개한다.


[ 이 책의 구성 ]

이 책은 크게 두 부분으로 나뉜다. 하나는 1부와 2부에서 다루는 RCP에 대한 부분으로, RCP 애플리케이션 작성법을 설명하기 위해 튜토리얼 형태로 기술했다. 튜토리얼에서는 메신저 기능을 추가하고 도움말과 업데이트, 그 밖의 고급 기능을 완전히 갖춘 브랜드가 적용된 채팅 클라이언트로 하이퍼볼라를 점차 개발해나간다. 예제와 문제를 해결해가는 과정에서 독자 옆에 함께 있는 느낌을 주기 위해 자유로운 형태로 튜토리얼을 작성했다. 또한 애플리케이션을 개발하고 튜토리얼을 작성하는 동안 경험한 문제점과 작은 생각도 공유했다.

책의 다른 한 부분에서는 애플리케이션을 현실화하는 방법을 살펴본다. 프로토타입과 제품을 배포하기 위한 전혀 새로운 것을 작성하는 일이 그 하나다. 하지만 프로토타입에서 그치지 않고, 3부와 4부에서는 작업을 완료하는 데 필요한 상세 내용까지 다룬다. 다시 말해, 먼저 프로토타입을 정련하고 리팩토링하며, 사용자 인터페이스를 변경하고 제품을 빌드하고 고객에게 전달하는 방법을 자세히 설명한다. 이 부분은 일부 참조용으로 작성했지만 드문드문 단계적 예제와 코드 예제를 제공하며, 커뮤니티에 보고되고 전문 제품 개발에서 발견된 주요 문제점 대부분을 다루는 것을 목표로 했다.

마지막 5부는 순수하게 참조용으로 작성했다. 이클립스의 기본 실행 프레임워크인 OSGi의 기본 개념을 설명하고 이 책의 앞부분에서 다루지 않았지만 이클립스 플랫폼에서 사용 가능한 다양한 기능을 소개한다.

저자/역자 소개

[ 저자 서문 ]

여러모로 이 책은 이클립스 RCP의 설계 문서라 할 수 있다. 이클립스 3.1 개발팀의 일원으로 개발과 동시에 초판을 작성했기 때문이다. 그래서 어떤 기능은 구현되기 전에 작성되기도 했다. 이번 개정판은 이클립스 3.5를 개발하면서 작성했다.
RCP가 어떻게 동작하는지를 설명하면서 이클립스 RCP를 구성하는 메커니즘과 개념을 사용해 개발할 때 개발자가 어떻게 느낄지 더 생생하게 이해하게 됐다. 항상 즐거운 일이라고 할 수는 없지만, 이클립스 RCP 학습 과정을 개선할 좋은 기회였다.

설명하기 어렵거나 사용이 복잡한 부분을 만날 때마다, 한 걸음 물러서서 이클립스를 좀 더 쉽게 사용하도록 수정할 방법을 많이 고민했다. 실제로 직접 수정한 경우도 많았다(나뿐만 아니라, 이클립스 플랫폼 팀이 모두 참여했다). 10페이지 분량의 복잡하고 상세한 설명을 새로운 마법사나 다른 기능을 사용해 한 단락으로 바꿨을 때의 기쁨은 이루 말로 표현하기 어렵다.

다른 한편으로는 기능을 명쾌하고 간단하게 설명하는 데 도움이 되는 핵심 사항에 대한 통찰력을 얻게 됐다. 이런 과정에서 발견된 오류를 수정하는 일은 집중을 방해하기도 했지만 가치 있는 일이었다. 글을 쓰고 코딩하고 배우면서 동시에 삶을 즐기기도 하는 것처럼 말이다.

우리는 RCP로서의 이클립스에 대해 상당한 지식을 얻게 됐으며, 이 책을 읽는 독자도 그렇게 되리라 믿는다.


[ 저자 소개 ]

제프 맥아퍼 (Jeff McAffer)
이클립스의 시작부터 함께해서 현재는 이클립스 이퀴낙스 OSGi와 RCP 팀을 이끌고 있다. 이클립스와 툴 프로젝트에서 리더 역할도 하며, 『OSGi and Equinox: Creating Highly Modular Java System Systems』(Addison-Wesley, 2010 / 에이콘출판, 2012 출간 예정)의 저자다.

장미셸 르뮤 (Jean-Michel Lemieux)
재즈(Jazz) 프로젝트의 선임 설계자이며, 이클립스 팀/CVS 컴포넌트 프로젝트의 초기부터 참여한 커미터다.

크리스 아니슈칙 (Chris Aniszczyk)
이클립스 플러그인 개발환경(PDE) 프로젝트의 리더이자, 이클립스 아키텍처 자문위원회의 의원이며, 이클립스 파운데이션 이사회에서 이클립스 커미터 대표를 역임하고 있다.


[ 옮긴이의 말 ]

내가 처음 개발한 데스크탑 애플리케이션은 비주얼 스튜디오(Visual Studio)라는 도구를 사용해서 윈도우에서 동작하는 계산기 프로그램이었다. 당시에는 데스크탑 환경으로 거의 윈도우를 사용했으므로, 비주얼 C/C++나 VB 등을 사용해서 윈도우에서 동작하는 데스크탑 애플리케이션 개발이 주를 이뤘다. 그뿐 아니라 데스크탑 애플리케이션 개발을 지원하는 플랫폼이나 프레임워크 없이 모든 기능을 개발자가 직접 개발해야 했다.

이후, 자바라는 플랫폼 독립적이고 이식성이 뛰어난 프로그래밍 언어가 등장해 인기를 얻으면서 단일 플랫폼이 아닌 크로스 플랫폼을 지원하는 데스크탑 애플리케이션에 대한 관심이 높아졌다. 실제로 자바 진영에서는 AWT, 스윙 등으로 데스크탑 애플리케이션을 개발하고자 지속적인 노력을 기울였다. 하지만 화면 UI나 성능 등 여러 가지 한계에 부딪쳐 사용자가 많이 쓰지는 않았다.

이러던 차에 IBM이 자신들의 멀티 플랫폼을 지원하는 통합개발환경을 오픈소스 프로젝트로 기증하면서 이클립스 RCP 기반으로 자바 데스크탑 애플리케이션 개발이 활발해졌다. 썬마이크로시스템즈도 넷빈즈라는 통합개발환경으로 대응을 하고 있지만, 확장이 용이하도록 잘 구성된 컴포넌트 아키텍처와 글로벌한 개발자들의 참여로 새로운 기능과 기능 개선이 빠른 이클립스가 더 많은 인기를 누리고 있다.

나는 우연히 특정 프레임워크 기반 개발을 지원하기 위한 개발 도구를 이클립스 플러그인으로 개발하면서 RCP를 경험하게 됐다. 주로 이클립스 플러그인, 즉 확장형 제품 개발을 주로 개발했으나, 독립형 애플리케이션 개발과 큰 차이는 없으며 개발하는 내내 탄탄한 컴포넌트 아키텍처에 매우 감탄했다. 그뿐 아니라 이클립스 내부 설계 사상과 적용된 디자인 패턴을 이해하면서 플러그인 개발뿐만 아니라 OO/CBD 기반 개발에 대해서도 많이 학습하는 기회가 됐다. 이 책을 읽는 독자들도 이클립스 RCP 기반으로 데스크탑 애플리케이션을 개발해보면 나와 같은 경험을 할 것이라고 확신한다.

이 책은 이클립스 3.5 갈릴레오(Galileo)를 개발하면서 작성했으나, 현재 최신 버전은 이클립스 3.7.1 인디고(Indigo)다. 새로운 버전의 PDE는 플러그인 간에 라이선스 공유 기능, UI 없이 애플리케이션 실행, 형상 관리 저장소로부터 소스 가져오기, p2 메타데이터 로딩에 소요되는 메모리 최적화 등의 기능이 추가되고 개선됐지만 하위 호환을 지원하므로 책에서 제공하는 예제는 인디고에서도 실행이 가능하다. 단, 인디고에서 작업하더라도 타깃 플랫폼을 갈릴레오로 해야 한다. 특히 설치나 업데이트와 관련된 실습은 RCP의 가장 기반이 되는 이퀴낙스와 p2 컴포넌트 영역의 피처나 패키지가 변경되고, 클래스와 메소드 시그니처가 변경됐기 때문에 인디고 환경에서는 동작하지 않는다.

1판과 마찬가지로 개정판에서도 SWT/JFace에 대한 자세한 설명이 없다. SWT/JFace의 자세한 내용은 Eclipse.org 기술 문서나 에이콘출판사에서 출간한 『SWT/JFace 인 액션』 등의 책과 SWT JFace Eclipse 사이트(http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm)를 참고하길 바란다. 이 책에서는 경험적으로 봤을 때 한글 메뉴보다는 영문 메뉴를 접하는 경우가 많기 때문에 메뉴나 옵션 등은 최대한 영문으로 작성했으며, 의미 이해가 필요한 부분은 영문과 한글을 함께 표현했다.


[ 옮긴이 소개 ]

신은정
아주대학교 정보 및 컴퓨터 공학부를 졸업하고, 2001년 LG CNS에 입사해 11년째 근무하고 있다. 현 민원24인 대한민국 전자정부 포탈 구축 프로젝트를 비롯 다양한 산업의 SI 프로젝트를 수행했으며, 웹서비스와 BPM, SOA 등에 대한 연구개발 프로젝트를 수행했다. 이런 경험이 기반이 되어 93회 정보관리기술사에 합격했고, 현재는 생산성 향상을 위한 Eclipse 기반 개발 도구와 Spring 기반 사내 프레임워크 개발에 참여하고 있다. 클라우드에도 관심이 많아, 한국정보화진흥원에서 진행하는 클라우드 관련 연구과제에도 참여하고 있다.

목차

목차
  • 1부 소개
  • 1장 리치 클라이언트 플랫폼으로서의 이클립스
    • 1.1 이클립스
    • 1.2 이클립스 리치 클라이언트 플랫폼
    • 1.3 이클립스 RCP의 역사
    • 1.4 RCP의 용도
      • 1.4.1 IBM 로터스와 이클립스 RCP
      • 1.4.2 나사와 이클립스 RCP
    • 1.5 정리
    • 1.6 참고자료
  • 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.10 참고자료
  • 2부 RCP로 만드는 메신저
  • 3장 튜토리얼 소개
    • 3.1 하이퍼볼라란?
    • 3.2 하이퍼볼라 개발 계획
    • 3.3 개발환경 설치
    • 3.4 예제 코드
      • 3.4.1 다른 장으로 넘어가기
      • 3.4.2 예제 코드 비교하기
    • 3.5 타깃 플랫폼 설정
      • 3.5.1 미리 정의된 타깃
      • 3.5.2 타깃 플랫폼 정의하기
    • 3.6 예제를 활용한 학습 요령
    • 3.7 정리
    • 3.8 참고자료
  • 4장 하이퍼볼라 애플리케이션
    • 4.1 ‘Hello, World’ 하이퍼볼라
    • 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 정리
    • 4.5 참고자료
  • 5장 하이퍼볼라 프로토타입 시작하기
    • 5.1 셸 기능 강화
      • 5.1.1 윈도우 위치와 크기 저장
    • 5.2 연락처 뷰 추가
      • 5.2.1 퍼스펙티브에 연락처 뷰 추가하기
    • 5.3 채팅 모델
    • 5.4 연락처 뷰 채우기
      • 5.4.1 ContactsView
      • 5.4.2 컨텐트 프로바이더 개요
      • 5.4.2.1 IWorkbenchAdapter 추가하기
      • 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 설치 세부사항
    • 8.6 정리
    • 8.7 참고자료
  • 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 채팅 추가하기
    • 10.3 UI 개선
      • 10.3.1 컨텐트 프로바이더
      • 10.3.2 레이블 프로바이더
    • 10.4 엘리자와 채팅하기
    • 10.5 정리
    • 10.6 참고자료
  • 11장 로그인 기능 만들기
    • 11.1 로그인 대화창 추가하기
      • 11.1.1 대화창 브랜드 적용하기
    • 11.2 로그인 설정 저장
      • 11.2.1 UI 구현
      • 11.2.2 환경설정 사용하기
      • 11.2.3 환경설정 안전하게 저장하기
    • 11.3 자동 로그인 환경설정 추가하기
      • 11.3.1 환경설정 페이지 만들기
      • 11.3.2 액션 추가하기
      • 11.3.3 환경설정에 접근하기
      • 11.3.4 기본 환경설정 값
      • 11.3.5 로그인 대화창의 환경설정
    • 11.4 정리
    • 11.5 참고자료
  • 12장 단축키 구현
    • 12.1 커맨드 정의하기
    • 12.2 한번 실행해보자
    • 12.3 워크벤치 액션에 키 바인딩 추가하기
    • 12.4 키 구성
    • 12.5 키 환경설정 페이지
    • 12.6 정리
    • 12.7 참고자료
  • 13장 도움말 추가하기
    • 13.1 타깃 플랫폼에 추가하기
      • 13.1.1 플러그인 가져오기
      • 13.1.2 플러그인 추가하기
    • 13.2 도움말 플러그인 구성
    • 13.3 도움말 액션 추가하기
    • 13.4 도움말 내용 추가하기
    • 13.5 도움말 컨텐트 구조
    • 13.6 F1 도움말
    • 13.7 도움말을 갖는 플러그인 내보내기
    • 13.8 정리
    • 13.9 참고자료
  • 14장 소프트웨어 관리
    • 14.1 p2 가져오기
    • 14.2 피처
      • 14.2.1 피처 역할
      • 14.2.2 피처 정의
    • 14.3 피처 정의하기
    • 14.4 피처 브랜드 적용하기
    • 14.5 하이퍼볼라 업데이트
    • 14.6 p2 UI 변경
    • 14.7 카테고리 정의
    • 14.8 자동 업데이트
    • 14.9 정리
    • 14.10 참고자료
  • 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 정리
    • 15.7 참고자료
  • 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 정리
    • 16.6 참고자료
  • 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.3 컨트리뷰션
      • 18.3.1 메뉴 컨트리뷰션
      • 18.3.2 표준 워크벤치 컨트리뷰션
      • 18.3.3 컨트리뷰션 가시성
    • 18.4 핸들러
    • 18.5 정리
    • 18.6 참고자료
  • 19장 색다른 워크벤치 윈도우 만들기
    • 19.1 무엇을 고칠 수 있을까?
    • 19.2 워크벤치 윈도우 조정
      • 19.2.1 UI 요소를 숨기거나 보여주기
      • 19.2.2 FormLayout
      • 19.2.3 툴바 숨기기
      • 19.2.4 토글 액션 추가하기
      • 19.2.5 빠른 검색 패널
      • 19.2.6 한번 실행해보자
    • 19.3 윈도우 모양 바꾸기
      • 19.3.1 모양새 만들기
      • 19.3.2 윈도우 생성하기
      • 19.3.3 윈도우 컨텐트 정의
    • 19.4 정리

도서 오류 신고

도서 오류 신고

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

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

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