이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
자바로 만드는 애니메이션 & 그래픽스
사용자를 사로잡는 화려한 데스크탑 애플리케이션 만들기
가격
38,000
10 34,200
YES포인트?
1,900원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

1부 그래픽스와 GUI 기초

1장 데스크탑 자바 그래픽스 API: 스윙, AWT, 자바 2D
추상 윈도우 툴킷
자바 2D
스윙

2장 스윙 렌더링 기초
이벤트
스윙 페인트
비동기식 리페인트 요청
동기식 페인트 요청
스윙 렌더링
paint()
setOpaque()
이중 버퍼링
스레드 다루기
스레드 모델
타이머와 이벤트 해석 스레드
SwingWorker를 사용한 간편한 스레드 사용
스레드 관련 내용 요약

3장 그래픽스 기초
자바 2D
렌더링
그래픽스 객체 얻기
그래픽스 상태
이미지 확대축소 관련 힌트
도형 안티앨리어스 힌트
텍스트 안티앨리어스 힌트
그래픽 기본요소

4장 이미지
이미지 타입
BufferedImage
이미지 확대축소
품질과 성능
getFasterScaledInstance(): 더 빠르고 좋은 품질의 확대축소 이미지를 제공하는 유틸리티

5장 성능
클립 사용
호환 이미지
걱정해야 할 것들
관리되는 이미지란?
이미지 호환시키기
관리되는 이미지
DataBuffer 객체 접근
이미지 내의 잦은 렌더링
중간생성 이미지
기본 개념
동작 원리
유의사항
요약
기본 렌더링 최적화
성능 측정
명령행 플래그
렌더링
성능 디버깅

2부 고급 그래픽 렌더링

6장 컴포지트
알파 컴포지트
알파 컴포지트의 12 규칙
Clear
Dst
DstAtop
DstIn
DstOut
DstOver
Src
SrcAtop
SrcIn
SrcOut
SrcOver
Xor
AlphaComposite 생성과 설정
AlphaComposite의 일반적인 사용법
Clear 사용하기
SrcOver 사용하기
SrcIn 사용하기
AlphaComposite 사용시 주의사항
자신만의 컴포지트 작성
Add 컴포지트
CompositeContext 구현
픽셀 합성
요약

7장 그래디언트
이중 선형 그래디언트
정규 그래디언트를 활용한 특수 효과
다단 선형 그래디언트
방사형 그래디언트
그래디언트 최적화
그래디언트 캐시하기
더 똑똑하게 캐시하기
반복되는 그래디언트 최적화하기

8장 이미지 프로세싱
이미지 필터
BufferedImageOp로 이미지 처리하기
AffineTransformOp
ColorConvertOp
ConvolveOp
커널 구성하기
경계에 대한 작업
LookupOp
RescaleOp
사용자 정의 BufferedImageOp
기반 필터 클래스
색조 변경 필터
필터 성능에 대한 이야기
요약

9장 글라스 페인
글라스 페인에 그리기
최적화된 글라스 페인 페인팅
입력 이벤트 가로채기
마우스 이벤트 관련 주의사항

10장 레이어드 페인
레이어드 페인 레이어 사용하기
단일 레이어 내에서 컴포넌트 정렬
레이어드 페인과 레이아웃
여러 레이아웃을 사용해서 JLayeredPane 대체하기

11장 리페인트 매니저
스윙이 너무 똑똑할 때
RepaintManager와 첫 대면
RepaintManager 관리하기
RepaintManager로 구현한 반사상
반사상을 위한 공간 만들기
반사상 그리기
더 바보같은, 그래서 더 똑똑한 RepaintManager
요약

3부 애니메이션

12장 애니메이션 기초
시간에 대해서
기초 개념
프레임 기반 애니메이션
프레임 비율
시간 기반 모션
타이밍(그리고 플랫폼 타이밍 유틸리티)
"지금 몇시죠?"
"모닝콜을 부탁해요."
"다시 불러줘요. 또다시. 또다시."
해상도
System.currentTimeMillis()와 System.nanoTime()의 해상도
슬립 해상도
타이머 해상도
해상도에 대한 해상도
스윙 애플리케이션 움직이게 하기
움직이는 그래픽
움직이는 GUI
요약

13장 매끄러운 움직임
배경: 왜 애니메이션이 어색하게 보일까?
애니메이션이 버벅거리는 원인과 부드럽게 만드는 법
타이밍이 모든 것이다
색상: 차이가 무엇일까?
수직 회기: 동기화된 감각
SmoothMoves: 데모
그래픽스 객체 생성
타이머 실행
렌더링
렌더링 옵션
요약

14장 타이밍 프레임워크: 기초
소개
핵심 개념
Animator 클래스
콜백
지속시간
반복
해상도
시작 동작
보간
가속과 감속
보간자
요약

15장 타이밍 프레임워크: 고급 기능
트리거
개념과 사용법
트리거 상위클래스
내장 트리거
프로퍼티 설정자
PropertySetter 클래스
Evaluator
키프레임
요약

4부 이펙트

16장 정적 이펙트
블러
사용목적
간단한 블러
가우시안 블러
성능향상 기법
반사
사용목적
반사 그리기
블러 적용 반사
드롭 섀도우
사용 목적
간단한 드롭 섀도우
사실적인 드롭 섀도우
강조
사용목적
명도 높이기
스팟라이트
가독성 개선을 위한 텍스트 강조
샤픈
사용목적
단순 샤픈
언샤프 마스크
축소된 이미지에 샤픈 적용
요약

17장 동적 이펙트
움직임
사용목적
갑니다, 갑니다, 넘어갔습니다!
페이드
사용목적
페이드 전략
AlphaComposite 페이드
색상 페이드
크로스페이드
페이드 쉽게 하기
펄스
사용목적
펄스 느끼기
자동 백열
약동하는 펄스
스프링
사용목적
스프링 대활약
모핑
사용목적
버튼 모핑하기
요약

18장 애니메이션 장면전환
애플리케이션 상태를 끊김없이 전환하기
기본 개념
애니메이션 장면전환: 라이브러리
애니메이션 애플리케이션 상태
GUI 상태
API
이펙트
GUI 구조
그림과 이미지홀더
ScreenTransition
애니메이트 장면전환: 스윙에게 대체 어떤 일을 시키고 있을까?
몰래 다음 화면 채비하기
레이아웃을 펼쳐보자: 레이아웃을 서서히 변화시키기
스윙을 춤추게 하자: 성능
요약

19장 멋진 리치 클라이언트의 탄생
에어리스
에어리스의 실행
직접 해보기
작업흐름도 페이퍼 디자인
비전
화면 구성 디자인
목업
목업에서 코드까지
레이어 사용하기
블렌딩 모드
안내선 사용
난 예술가가 아니라구!
알맞은 색상 선택
디자인 서적 읽기
요약
프로젝트

맺음말
자바 사이트
저자의 사이트
(당신의 이름이 들어갈 자리)

저자 소개

저자: 쳇 하스(Chet Haase)
썬마이크로시스템즈 자바 SE 그룹의 클라이언트 아키텍트다. 스윙과 자바 2D를 비롯한 모든 데스크탑 자바 기술을 다루며 플랫폼 발전에 기여하고 있다. 소프트웨어 분야 중 그래픽에 열의를 갖고 있으며 (대학 졸업 후 네트워크 분석에 잠깐 몸담았지만 너무나 지루해 그만둔 것 외에) 애플리케이션 수준에서 드라이버 수준에 이르기까지 2D, 3D 등 모든 종류의 그래픽 기술을 개발하며 대부분 경력을 쌓았다. 쳇은 칼튼 칼리지에서 수학 학사 과정을 수료하고 오리건 대학교에서 컴퓨터 정보학 석사 과정을 수료했다.
저자: 로메인 가이(Romain Guy)
마지막 학기 동안 이 책을 쓰느라 2007년 가을에야 컴퓨터 공학 석사 학위를 받을 수 있었다. 주요 관심사는 그래픽스와 GUI 개발이며 수년간의 자바와 스윙 개발 경력이 있다. 로메인은 현재에 안주하지 않고 프로그래밍 잡지의 프리랜스 저널리스트, 오라일리 번역자, 프랑스 소재 대학의 자바 강사, 비디오게임 개발자, 프리랜스 개발자, 썬 마이크로시스템즈 스윙 팀의 소프트웨어 엔지니어, 구글의 소프트웨어 엔지니어 등 수많은 일을 하고 있다. 그의 새로운 관심사는 디지털 사진이다.
역자: 양석호
KAIST 전산과를 졸업하고 웹, 모바일, 임베디드, 자바 GUI 애플리케이션 등 다양한 프로젝트를 수행했으며 현재는 네이버 재팬에서 일본 검색서비스 개발에 참여하고 있다. 에이콘 이클립스 프로페셔널 시리즈 에디터를 맡아 『이클립스 RCP』, 『실전 이클립스 플러그인 개발』을 번역하는 등 양질의 이클립스 관련서를 독자들에게 소개하는 데 큰 보람을 느낀다. 또한 2005년부터 네이버 이클립스 플러그인 까페(http://cafe.naver.com/eclipseplugin)를 운영하며 점점 늘어가는 이클립스 플러그인 개발자들과 함께 이클립스 기술 전파에 노력하고 있다.

품목정보

발행일
2009년 10월 12일
쪽수, 무게, 크기
596쪽 | 1074g | 188*250*35mm
ISBN13
9788960771000

책 속으로

멋진 리치 클라이언트 세계에 온 여러분을 환영한다. 이 책은 그래픽 이펙트와 애니메이션 이펙트를 활용해 더 훌륭하고 효율적이고 멋진 데스크탑 애플리케이션을 개발하는 방법을 다룬다. 2006년 자바원(JavaOne) 컨퍼런스에서 성공적으로 세션을 마친 후에 우리는 이 주제로 책을 쓰기 시작했다. 발표한 세션 내용은 애니메이션을 활용하고 고급 2D 이펙트를 구현해 더욱 풍부한 애플리케이션을 만드는 방법에 대한 것이었고 3D 이펙트도 약간 다뤘다. 왜 그런 애플리케이션을 개발해야 하는지, 어떤 기술을 사용하는지, 이펙트를 적절히 활용해 멋진 리치 클라이언트를 개발하는 방법에 대해 며칠이고 발표하고 싶었지만 그럴 수는 없었다.

이것이 바로 이 책을 쓰게 된 동기다. 앞으로 자바의 기초, 스윙, 자바 2D, 그래픽스, GUI, 애니메이션, 성능, 고급 이펙트 등 화려하고 멋진 애플리케이션을 만드는 데 필요한 내용을 함께 배울 것이다.

즐거운 여행에 동참하길 바란다. --- '저자 서문' 중에서

요즘 애플리케이션은 사용자에게 단순히 기능뿐만 아니라 즐거움을 주려고 노력한다. 특히 사용자의 전환이 빠르고 경쟁이 치열한 웹 애플리케이션은 AJAX, 플래시로 이어지며 화려한 UI와 사용자 경험(UX, User eXperience)을 더욱 강조한 RIA(Rich Internet Application)가 어느새 당연한 것으로 받아들여지고 있다.

그만큼 개발환경도 좋아져서 개발 툴에서 몇 번의 조작만으로도 멋진 애니메이션을 만들 수 있다. 심지어 애플리케이션 개발과 애니메이션 구성이 별개 작업으로 이뤄지기도 한다. 하지만 리치 클라이언트에서 애니메이션의 의미는 단순히 눈을 즐겁게 하는 것뿐만 아니라 애플리케이션 전체가 하나의 흐름으로 사용자에게 전달되기 위한 것이다. 이를 정확히 반영하기 위해서는 개발자가 그래픽이나 애니메이션의 기초 원리를 파악하고 애플리케이션 전반에 걸쳐 녹여내야 한다. 단순한 애니메이션의 나열로는 사용자의 호기심은 자극할 수 있을지언정 사용자의 마음을 흔들 수는 없다.

이 책에서는 리치 클라이언트의 선구자인 저자들이 리치 클라이언트 개발의 기본 원리를 기초부터 설명하고, 풍부한 개발 경험과 함께 직접 개발한 그래픽스/애니메이션 라이브러리를 제시하고 설명한다. 자바 2D와 스윙 라이브러리를 기준으로, 그래픽스나 애니메이션의 기초 원리를 개발자 대상으로 충실히 설명한다. 또한 리치 클라이언트로서 가져야 할 기본 원칙이나 이펙트, 수학적인 기초, 성능 최적화 기법 등은 플랫폼에 무관하게 활용할 요소가 많다.

아직은 딱딱해 보이는 이클립스 RCP에 좀 더 활력을 불어 넣을 방안을 모색하기 위해 이 책의 번역을 맡았다. 원래 스윙을 좋아하기도 했지만, '쿨Cool'한 애플리케이션을 향한 저자들의 열정과 노하우가 정말 매력적이었기 때문이다. 이 책이 번역되는 동안, 저자 중 한 명인 쳇은 JavaFX를 개발하다 결국 어도비로 자리를 옮겨서 RIA 플랫폼 개발에 더욱 매진하고 있다. 로메인은 구글에서 안드로이드 UI 개발에 참여하고 있다. 스윙에 많은 기여를 했던 두 사람이 이제는 그 경험을 살려 각자 다른 플랫폼에 기여를 하고 있는 셈이다. 그래픽스나 애니메이션에 대한 기초 지식에 부족함을 느낀 채 툴에 의존해 리치 클라이언트를 개발하고 있는 독자라면, 이 책에서 두 저자가 남겨둔 발자국을 따라가면서 더욱 멋진 리치 클라이언트를 향한 기반을 탄탄히 할 수 있을 것이다.

이 책의 가치를 믿고 한국어판 출간을 지지해주신 권성준 사장님과 김희정 부사장님, 오랜 작업기간 동안 물심양면 도와주신 황지영 대리님 등 에이콘출판사 분들께 진심으로 감사드립니다.

--- '옮긴이의 말' 중에서

출판사 리뷰

멋진 리치 클라이언트란 뛰어난 그래픽을 지녀 정말 멋져 보이는 리치 애플리케이션을 뜻한다. 화려하고 멋진 리치 클라이언트는 사용자를 강하게 끌어들이고 흥분해 손을 뗄 수 없게 만든다. 이 책에서는 더 효율적이고 멋진 애플리케이션을 잘 만들어 사용자 경험을 극대화하는 방법을 제시한다.

리치 클라이언트의 핵심은 그래픽스와 애니메이션 이펙트다. 이들 이펙트를 사용하면 매력적인 GUI와, 애플리케이션을 살아 숨쉬게 하는 역동적인 이펙트, 애플리케이션의 논리적 흐름과 사용자를 연결시키는 애니메이션 장면전환 등을 통해 사용자의 경험을 향상시킬 수 있다. 또한 애플리케이션을 풍부하게 만드는 이펙트를 효율적으로 구현하는 방법도 다룬다.

그래픽과 GUI 기초: 스윙과 자바 2D를 연계해 GUI 애플리케이션을 화면에 출력하는 방법과 내부 구조를 파헤쳐 본다. 이들 라이브러리의 유연성을 극대화하고 효율적으로 사용하는 방법을 배운다.
성능: 책 전체에 걸쳐 설명하는 토론과 팁을 이용해 고성능 GUI 애플리케이션을 개발한다.
이미지: 더 나은 자바 애플리케이션을 만들 수 있는 이미지 생성과 사용법을 알아본다.
고급 그래픽: 화려한 리치 클라이언트에 날개를 달아주는 스윙과 자바 2D 요소에 대해 배운다.
애니메이션: 애니메이션의 일반적 개념과 함께 자바 플랫폼에서 사용하는 기능의 사용법을 배운다. 자바 애니메이션을 쉽게 구현할 수 있는 새로운 유틸리티 라이브러리를 소개한다.
이펙트: 정적 이펙트와 애니메이션 이텍트를 만들고 커스터마이즈하는 방법을 배워본다.

자바 언어와 스윙에 대한 경험이 있다면 유용할 것이다. 이 책은 자바와 스윙 입문서가 아니며 자바와 스윙을 어느 정도 알고 있는 독자를 대상으로 한다. 그러나 화려한 리치 클라이언트 제작을 이해하기 위해 중요한 스윙의 렌더링 기초 중 일부는 고급 스윙 프로그래머라 할지라도 어려워할 수 있기에, 스윙과 자바 2D를 함께 사용해 사용자 정의 이펙트를 만드는 방법을 설명하는 데 초반 몇 장을 할애했다. 여기서 만든 이펙트는 책 전체에서 사용한다.

1부. 그래픽과 GUI 기초
1부에서는 책 전반에 걸쳐 사용하는 자바 그래픽과 UI 프로그래밍의 기본 개념을 배운다. 그래픽과 UI 개발에 대해 상세히 설명하는 것은 아니지만 API, 기술 등의 기초에 대해 누구나 이해할 수 있도록 자세히 설명하고 이후 내용들을 활용해 화려한 리치 클라이언트를 개발하는 데 도움이 되는 내용을 다뤘다.
AWT, 자바 2D, 스윙을 잘 알고 있다면 이 부분은 진부해 보일 수도 있겠지만, 그래도 기본 개념은 꼭 필요하다. 또한 책 여기저기에는 모든 데스크탑 자바 프로그래머에게 유용한 흥미로운 토막 상식을 많이 담았다.

2부. 고급 그래픽 렌더링
2부에서는 자바 2D와 스윙으로 리치 인터페이스를 만드는 데 유용한 고급 주제들을 다룬다. 2부 전반부에는 컴포지트, 그래디언트, 이미지 프로세싱 등 그래픽 관련 기술을 다루고 후반부에는 글라스 페인, 레이어 페인, 리페인트 매니저 등 스윙 관련 기술을 다룬다.

3부. 애니메이션
화려한 리치 클라이언트는 정적인 것이 아니다. 살아있는 것이다. 그러므로 움직여야 한다. 심장박동 소리로 사용자에게 존재를 알려야 한다. 보기 좋게 만드는 것이 반이고 살아 움직이는 듯 보이게 하는 것이 나머지 반이다. 3부는 애플리케이션에 생명을 불어넣는 애니메이션 기초를 다룬다. 그래픽 애니메이션과 GUI 애니메이션, 애니메이션 개발을 도와주는 자바 SE 라이브러리, 자바 애니메이션 개발을 매우 쉽게 만들어주는 타이밍 프레임워크 라이브러리 등을 다룬다.

4부. 이펙트
4부는 1, 2, 3부 내용을 기반으로 구성됐다. 이펙트는 화려한 리치 클라이언트의 핵심이며 보통 리치 클라이언트와 화려한 리치 클라이언트를 구분짓는다. 이펙트는 두 가지 카테고리로 나눴다. 첫 번째 카테고리는 애플리케이션을 더 멋져 보이게 만드는 정적 이펙트다. 두 번째 카테고리는 GUI를 움직이게 만드는 동적 이펙트, 또는 애니메이션 이펙트다. 책의 웹사이트에서 제공하는 유틸리티 라이브러리를 이용해 애니메이션 이펙트를 구현하는 Animated Transition도 다루고 있다. 맨 처음 디자인 다이어그램에서부터 다양한 이펙트 구현까지 화려한 리치 클라이언트 예제를 개발하는 과정을 소개하며 4부를 마친다.

리뷰/한줄평0

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

첫번째 한줄평을 남겨주세요.