[C++와 C# 예제로 쉽게 배우는]
윈도우 7 프로그래밍
- 원서명Introducing Windows 7 for Developers (ISBN 9780735626829)
- 지은이요차이 키리아티, 로렌스 모로니, 사샤 골드스틴, 알론 플라이스
- 옮긴이김종원
- ISBN : 9788960771819
- 30,000원
- 2011년 02월 16일 펴냄 (절판)
- 페이퍼백 | 512쪽 | 188*250mm
- 시리즈 : 윈도우 시스템 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
윈도우 7에 어울리는 애플리케이션에 필요한 핵심 기능을 이해하기 쉬운 예제와 함께 전달한다. 각 분야의 전문가 4명으로부터 윈도우 7에서 새롭게 바뀐 작업표시줄, 멀티 터치, 센서와 위치 정보, 새로운 리본 등의 사용법을 C++와 C# 예제를 통해 쉽게 배울 수 있다. 중요 기능의 사용법과 설계 의도까지 알 수 있어 윈도우 7 애플리케이션을 만드는 개발자라면 반드시 읽어야 할 필독서다.
[ 소개 ]
화려한 애플리케이션 사용 경험을 위한 개발 도구와 기술의 첫 만남
윈도우 개발 팀에서 얻은 자료와 통찰로 윈도우 7을 활용해 매니지드 코드나 네이티브 코드로 구현하거나, 새로운 애플리케이션을 만들거나, 기존 애플리케이션을 고치더라도 새로운 프로그래밍 모델이나 아키텍처, 작업할 API에 적응하는 데 필요한 실용적인 통찰력과 예제를 얻을 수 있다.
[ 이 책에서 다루는 내용 ]
● 작업 표시줄의 기초에서부터 고급 기능까지
● 윈도우 리본 프레임워크를 활용한 UI 변경
● 터치 인식 프로그램 만들기
● WPF를 이용한 멀티터치 애플리케이션 개발
● 실버라이트를 이용한 터치 지원 애플리케이션 개발
● 센서 지원과 위치 인식 애플리케이션 제작
● 기존 애플리케이션에 라이브러리 기능 추가
● 새로운 계측, 진단, 성능 최적화 기능 활용
[ 이 책의 대상 독자 ]
이 책은 윈도우 애플리케이션 개발에 관한 책이다. 이 책은 윈도우 7의 새로운 기능뿐만 아니라 기존 애플리케이션과 새 애플리케이션을 가장 잘 통합하는 방법을 배우려는 열정적인 윈도우 개발자를 위한 책이다. 이 책은 샘플과 인라인 코드 예제를 C++와 닷넷 모두 제공하므로 C++나 닷넷 개발자 모두에 적합하다. 이제까지 한 번도 C++ 프로그래밍을 해보지 않았더라도 새로운 기능이 윈도우 7에서 어떻게 동작하는지 C++ 네이티브 코드로 설명한 부분도 여전히 유용하게 읽을 수 있다는 점을 깨달을 것이다. 하지만 Win32 프로그래밍 패러다임을 이해하고 있으면 여전히 이 책을 읽는 데 유리할 것이다.
[ 이 책의 구성 ]
윈도우 7에 대한 개괄적인 설명과 개발자들이 우선적으로 적용해야 할 기능을 먼저 설명한다. 이런 기능을 윈도우 7에서 동작하는 애플리케이션에 적용해 더 빛나게 할 수 있다. 책의 나머지 부분은 윈도우 7의 특징을 자세히 알아본다. 주요 기능마다 한 개 장이나 두 개 장에 걸쳐 다룰 것이다. 마지막 장에서는 높은 수준의 사용자 기반 기능을 구현하기에 급급함으로써 잊기 쉬운 시스템 성능과 계측에 관해 꼭 다뤄야 할 관점을 설명한다.
■ 1장, ‘윈도우 7의 특징’에서는 윈도우 7의 진화 과정을 다루고, 새로운 기능 소개와 이를 사용하기 위한 주요 시나리오를 설명한다. 또한 개발자가 이러한 기능을 활용할 수 있는 기회를 살펴본다.
■ 2장, ‘윈도우 7 작업 표시줄: 기본 기능’에서는 새로운 작업 표시줄이 기존 실행 영역에서 어떻게 변경됐는지 알아보고, 작업 표시줄과 사용자 경험UX 가이드라인을 위한 새로운 디자인 목표를 이해하게 돕는다.
■ 3장, ‘윈도우 7 작업 표시줄: 고급 기능’에서는 매니지드와 네이티브 애플리케이션에서 새 작업 표시줄을 통합하는 방법을 설명하고, 작업 표시줄 미리 보기, 점프 목록, 썸네일 툴바 같은 기능을 사용하는 방법을 알아본다.
■ 4장, ‘데이터 정리: 라이브러리 기능’에서는 사용자가 자신의 데이터를 관리하기 위해 라이브러리를 활용하는 방법을 예로 들고 애플리케이션에서 일관되고 조직화된 경험을 유지하기 위해 라이브러리를 지원하는 방법을 배운다.
■ 5장, ‘기초 멀티터치 프로그래밍’에서는 윈도우 7의 멀티터치 기능 뒤에 깔린 논리를 설명하고, 멀티터치 아키텍처와 기본적으로 내장된 멀티터치 제스처를 알아본다.
■ 6장, ‘고급 멀티터치 프로그래밍’에서는 가공되지 않은 터치 이벤트를 이용해 고급 멀티터치를 사용하는 방법을 집중적으로 알아보고, 조작과 관성 처리기를 사용하는 방법을 배운다.
■ 7장, ‘매니지드 코드와 멀티터치 애플리케이션’에서는 마이크로소프트 닷넷 프레임워크 4.0과 함께 출시한 WPF 4를 이용해 윈도우 7에서 동작하는 멀티터치 애플리케이션 지원 방법을 알아본다.
■ 8장, ‘실버라이트와 터치 애플리케이션’에서는 실버라이트 3.0이 윈도우 결합 모드를 통해 브라우저 밖에서 동작하는 애플리케이션으로서 윈도우 7의 멀티터치를 지원하는 방법을 집중적으로 알아본다.
■ 9장, ‘센서와 위치 정보 플랫폼의 소개’에서는 윈도우 7의 센서와 위치 정보 플랫폼의 구조를 소개한다. 또한 애플리케이션 개발자뿐만 아니라 센서 공급자가 매니지드 코드와 네이티브 코드에서 이 플랫폼을 이용해 더 쉽고 일관된 경험을 제공하는 방법을 설명한다.
■ 10장, ‘위치 인식 애플리케이션’에서는 윈도우 7에서 위치 정보 장치가 동작하는 방식을 설명하고, 시스템뿐만 아니라 애플리케이션에 위치 인식을 활용해 개선하는 방법을 설명한다.
■ 11장, ‘윈도우 리본을 이용한 개발: 1부’에서는 윈도우 7 리본 프레임워크의 구조와 리본 애플리케이션을 만들기 위한 선언적 XML 문법을 알아본다.
■ 12장, ‘윈도우 리본을 이용한 개발: 2부’에서는 리본 마크업을 로드해 Win32 애플리케이션과 결합하는 방법을 설명한다. 또한 고급 리본 기능을 활용하는 방법도 알아본다.
■ 13장, ‘성능에 관한 모든 것: 기본의 재발견’에서는 계측과 추적 같은 근본적인 기능으로 돌아가 설명한다. 또한 윈도우 7에서 개선된 시작-트리거 서비스나 문제 해결 플랫폼 같은 숨은 개선 사항도 알아본다.
[ 추천의 글 ]
단언컨대 이제까지 나온 윈도우 운영체제 중에서 윈도우 7이야말로 최고일 것이다. 이 말이 마치 마케팅 부서에서 주장하는 소리처럼 들릴지 모르겠다. 하지만 이제까지 나온 윈도우 모두가 이전 버전에 비해 더 많은 기능이 추가됐고, 더 많은 확장성을 지녔으며, 최신 하드웨어의 향상된 기능을 지원했다는 점을 생각해보면 새 윈도우는 항상 이전 버전보다 더 나을 수밖에 없고, 그 시점에서는 가장 좋은 윈도우가 된다고 할 수 있다. 하지만 윈도우 7은 새롭게 출시한 제품에 필요한 기본 요구 사항을 만족시킬 뿐만 아니라 이전 윈도우 제품을 압도하는 마무리 작업까지 잘 해낸 제품이라 하겠다.
물론 바로 전 버전인 윈도우 비스타가 주요 기능을 개선하고 혁신하지 않았다면 윈도우 7이 훌륭한 제품으로 나올 수는 없었을 것이다. 하지만 윈도우 7의 개발 방식에는 기존과는 구별되는 차이가 있다. 윈도우 7은 이제까지 나온 윈도우 중에서 처음으로 전 버전보다 낮은 사양에서 동작하는 일반 소비자용 버전이라는 점이다. 새로운 기능이 추가된 점을 생각해보면 정말 놀라지 않을 수 없다. 메모리 사용량을 줄였고 백그라운드 활동을 최소화했으며 최신 하드웨어 전원 관리 능력을 활용했다. 현대적이면서 멋진 운영체제를 만들기 위해 모든 수단을 활용해 윈도우 비스타가 동작하던 것과 같은 하드웨어에서 더 효율적으로 동작할 수 있게 개선됐다.
이전 버전과 또 다른 차이점은 마이크로소프트가 PC 제조사와 하드웨어 업체들과 일하는 방식이 바뀌었다는 점이다. 윈도우 7을 개발하는 동안 마이크로소프트는 변경 사항과 공용 도구, 관련 기술 등을 계속 알려줬고, 엔지니어를 현장에 보내 새 운영체제에 맞게 소프트웨어나 하드웨어를 최적화하는 일을 병행했다. 윈도우 7을 사용할 수 있을 즈음에는 대부분 파트너들은 1년 이상의 경험을 축적할 수 있었다. 자신들의 제품을 조정하고 적용할 수 있는 충분한 시간을 제공한 것이다.
근본적인 문제를 해결하기 위해 내부 구조 개선과 개발자 모임에 대한 노력을 함과 동시에 사용자 경험을 더 직접적으로 개선한 여러 가지 기능을 도입했다. 예를 들면 작업 표시줄을 다시 설계해 사용자가 현재 동작 중인 애플리케이션에 계속 집중할 수 있게 했고, 여러 애플리케이션 창 사이를 전환하기 쉽게 만들었으며, 자주 사용하는 애플리케이션이나 문서를 수월히 사용할 수 있게 했다. 윈도우의 작업 표시줄은 윈도우 95부터 크게 바뀌지 않아 마치 오래된 신발 같이 편안한 물건이었다. 하지만 잠깐이라도 새 인터페이스를 써본 후 다시 예전 윈도우로 돌아가 사용해보면 갑갑하게 느껴질 것이다.
또한 급격히 대중화된 PC 하드웨어 장치를 지원해 더 동적이며 적응성이 높은 사용자 경험을 제공하는 애플리케이션을 만들 수 있게 됐다. 모바일 PC는 주변광을 인지해 화면의 밝기를 조절할 수 있다. GPS 등의 센서로 윈도우는 주변 세상을 인식할 수 있다. 윈도우 7에서는 이런 장치를 위한 하부 시스템과 API를 제공해 애플리케이션이 지역 환경에 특화된 정보와 동작 모드를 사용자에게 전달하는 것이 가능해졌다.
윈도우 사용자이자 전직 독립 소프트웨어 개발자ISV로서 말하건대, 새로 출시된 최신 운영체제나 오피스 버전이 우리가 기존에 사용해오던 것과 전혀 다른 사용자 인터페이스를 지녔다면 매우 불안할 것이다. 또 애플리케이션과 운영체제의 경계가 모호해져 운영체제와 아주 매끈하게 결합한 애플리케이션을 사용하게 된다면 이 또한 마찬가지로 좌절감을 느끼고는 이에 적응하지 못한 사람들을 놀리는 이들에게 달려들거나 10년 이상된 운영체제에서 개발하던 사람들은 어떻게 하느냐고 항변할 것이다.
훌륭한 소프트웨어를 만들려면, 사용자에게 특이한 사용자 인터페이스 동작을 배우게 강요하지 않으면서 실행했을 때는 사용자가 편안하게 미래로 시간 이동을 한 듯 느껴야 한다. 또 다른 방법으로는 다른 애플리케이션처럼 PC 성능을 최대한 잘 활용할 수 있게 하는 것이다. 사용자를 즐겁게 하려면 기술과 사용자 인터페이스 트렌드를 잘 병행해야 한다. 언제 애플리케이션에서 그런 트렌드를 활용할 수 있을지, 또 언제 활용해야 할지를 인지해야 한다. 그렇게 함으로써 혁신이 고객에게 가치가 있어야 한다. 최신 플랫폼의 기능을 활용하면 애플리케이션을 돋보이게 한다. 또 고객 스스로 유행에 앞서 있다는 자부심을 얻기도 한다.
이 책 한 권 안에는 새로운 PC 하드웨어의 능력을 활용해 최신 애플리케이션을 만드는 데 필요한 정보와 공통 기능을 빠르게 사용할 수 있는 모든 것이 들어있다. 오랫동안 동작하는 작업의 진행 상태를 작업 표시줄 아이콘에 표시하게 하는 것에서부터 공통 작업과 최근 사용 문서의 접근을 쉽게 하는 작업 표시줄의 점프 목록까지 모두 다 담겨있다. 또 현재 위치에서 가장 적합한 결과를 제공하게 하는 위치 API에서부터 기존 문서 보관함을 결합하고 접근할 수 있게 해주는 라이브러리 API, 애플리케이션의 기능과 특징을 확장해 노출하는 리본 컨트롤에서 직관적인 상호작용 인터페이스를 제공하는 터치 인터페이스 지원까지, 이 책은 애플리케이션을 신세계로 보내는 완벽 가이드다.
요즘처럼 온라인 문서와 코드 샘플에 바로 접근할 수 있는 시대에서 읽을 가치가 있는 프로그래밍 책이라면 완전하고 일관되게 소개하면서도 새로운 개념에 대해 개괄적인 내용뿐만 아니라 재사용하기 쉬우면서도 분명하고 직설적인 코드를 예제로 제공해야 한다. 요차이, 사샤, 로렌스, 알론 네 사람은 이 책에서 이 모두를 제공한다. 이 책은 닷넷이나 Win32 API를 이용해 윈도우 7 애플리케이션을 프로그래밍하는 개발자가 꼭 소장해야 할 지침서라고 확신한다. 나는 Sysinternals의 툴에 윈도우 7의 기능을 추가해오고 있다. 작업 표시줄 아이콘의 진행 상태를 표시하기 위한 방법에 대한 설명과 예제를 통해 Sysinternals의 Disk2Vhd 툴을 문자 그대로 몇 분 만에 개선할 수 있었다. 앞으로도 나는 툴을 계속 개선해가기 위해 이 책을 참조하게 될 것이다. 각자가 만든 애플리케이션이 또 다른 우위에 서게 하기 위해 여러분도 마찬가지일 것이라 확신한다.
- 마크 러시노비치Mark Russinovich
테크니컬 펠로우 / 마이크로소프트 사의 윈도우 개발 본부
[ 소개 ]
화려한 애플리케이션 사용 경험을 위한 개발 도구와 기술의 첫 만남
윈도우 개발 팀에서 얻은 자료와 통찰로 윈도우 7을 활용해 매니지드 코드나 네이티브 코드로 구현하거나, 새로운 애플리케이션을 만들거나, 기존 애플리케이션을 고치더라도 새로운 프로그래밍 모델이나 아키텍처, 작업할 API에 적응하는 데 필요한 실용적인 통찰력과 예제를 얻을 수 있다.
[ 이 책에서 다루는 내용 ]
● 작업 표시줄의 기초에서부터 고급 기능까지
● 윈도우 리본 프레임워크를 활용한 UI 변경
● 터치 인식 프로그램 만들기
● WPF를 이용한 멀티터치 애플리케이션 개발
● 실버라이트를 이용한 터치 지원 애플리케이션 개발
● 센서 지원과 위치 인식 애플리케이션 제작
● 기존 애플리케이션에 라이브러리 기능 추가
● 새로운 계측, 진단, 성능 최적화 기능 활용
[ 이 책의 대상 독자 ]
이 책은 윈도우 애플리케이션 개발에 관한 책이다. 이 책은 윈도우 7의 새로운 기능뿐만 아니라 기존 애플리케이션과 새 애플리케이션을 가장 잘 통합하는 방법을 배우려는 열정적인 윈도우 개발자를 위한 책이다. 이 책은 샘플과 인라인 코드 예제를 C++와 닷넷 모두 제공하므로 C++나 닷넷 개발자 모두에 적합하다. 이제까지 한 번도 C++ 프로그래밍을 해보지 않았더라도 새로운 기능이 윈도우 7에서 어떻게 동작하는지 C++ 네이티브 코드로 설명한 부분도 여전히 유용하게 읽을 수 있다는 점을 깨달을 것이다. 하지만 Win32 프로그래밍 패러다임을 이해하고 있으면 여전히 이 책을 읽는 데 유리할 것이다.
[ 이 책의 구성 ]
윈도우 7에 대한 개괄적인 설명과 개발자들이 우선적으로 적용해야 할 기능을 먼저 설명한다. 이런 기능을 윈도우 7에서 동작하는 애플리케이션에 적용해 더 빛나게 할 수 있다. 책의 나머지 부분은 윈도우 7의 특징을 자세히 알아본다. 주요 기능마다 한 개 장이나 두 개 장에 걸쳐 다룰 것이다. 마지막 장에서는 높은 수준의 사용자 기반 기능을 구현하기에 급급함으로써 잊기 쉬운 시스템 성능과 계측에 관해 꼭 다뤄야 할 관점을 설명한다.
■ 1장, ‘윈도우 7의 특징’에서는 윈도우 7의 진화 과정을 다루고, 새로운 기능 소개와 이를 사용하기 위한 주요 시나리오를 설명한다. 또한 개발자가 이러한 기능을 활용할 수 있는 기회를 살펴본다.
■ 2장, ‘윈도우 7 작업 표시줄: 기본 기능’에서는 새로운 작업 표시줄이 기존 실행 영역에서 어떻게 변경됐는지 알아보고, 작업 표시줄과 사용자 경험UX 가이드라인을 위한 새로운 디자인 목표를 이해하게 돕는다.
■ 3장, ‘윈도우 7 작업 표시줄: 고급 기능’에서는 매니지드와 네이티브 애플리케이션에서 새 작업 표시줄을 통합하는 방법을 설명하고, 작업 표시줄 미리 보기, 점프 목록, 썸네일 툴바 같은 기능을 사용하는 방법을 알아본다.
■ 4장, ‘데이터 정리: 라이브러리 기능’에서는 사용자가 자신의 데이터를 관리하기 위해 라이브러리를 활용하는 방법을 예로 들고 애플리케이션에서 일관되고 조직화된 경험을 유지하기 위해 라이브러리를 지원하는 방법을 배운다.
■ 5장, ‘기초 멀티터치 프로그래밍’에서는 윈도우 7의 멀티터치 기능 뒤에 깔린 논리를 설명하고, 멀티터치 아키텍처와 기본적으로 내장된 멀티터치 제스처를 알아본다.
■ 6장, ‘고급 멀티터치 프로그래밍’에서는 가공되지 않은 터치 이벤트를 이용해 고급 멀티터치를 사용하는 방법을 집중적으로 알아보고, 조작과 관성 처리기를 사용하는 방법을 배운다.
■ 7장, ‘매니지드 코드와 멀티터치 애플리케이션’에서는 마이크로소프트 닷넷 프레임워크 4.0과 함께 출시한 WPF 4를 이용해 윈도우 7에서 동작하는 멀티터치 애플리케이션 지원 방법을 알아본다.
■ 8장, ‘실버라이트와 터치 애플리케이션’에서는 실버라이트 3.0이 윈도우 결합 모드를 통해 브라우저 밖에서 동작하는 애플리케이션으로서 윈도우 7의 멀티터치를 지원하는 방법을 집중적으로 알아본다.
■ 9장, ‘센서와 위치 정보 플랫폼의 소개’에서는 윈도우 7의 센서와 위치 정보 플랫폼의 구조를 소개한다. 또한 애플리케이션 개발자뿐만 아니라 센서 공급자가 매니지드 코드와 네이티브 코드에서 이 플랫폼을 이용해 더 쉽고 일관된 경험을 제공하는 방법을 설명한다.
■ 10장, ‘위치 인식 애플리케이션’에서는 윈도우 7에서 위치 정보 장치가 동작하는 방식을 설명하고, 시스템뿐만 아니라 애플리케이션에 위치 인식을 활용해 개선하는 방법을 설명한다.
■ 11장, ‘윈도우 리본을 이용한 개발: 1부’에서는 윈도우 7 리본 프레임워크의 구조와 리본 애플리케이션을 만들기 위한 선언적 XML 문법을 알아본다.
■ 12장, ‘윈도우 리본을 이용한 개발: 2부’에서는 리본 마크업을 로드해 Win32 애플리케이션과 결합하는 방법을 설명한다. 또한 고급 리본 기능을 활용하는 방법도 알아본다.
■ 13장, ‘성능에 관한 모든 것: 기본의 재발견’에서는 계측과 추적 같은 근본적인 기능으로 돌아가 설명한다. 또한 윈도우 7에서 개선된 시작-트리거 서비스나 문제 해결 플랫폼 같은 숨은 개선 사항도 알아본다.
[ 추천의 글 ]
단언컨대 이제까지 나온 윈도우 운영체제 중에서 윈도우 7이야말로 최고일 것이다. 이 말이 마치 마케팅 부서에서 주장하는 소리처럼 들릴지 모르겠다. 하지만 이제까지 나온 윈도우 모두가 이전 버전에 비해 더 많은 기능이 추가됐고, 더 많은 확장성을 지녔으며, 최신 하드웨어의 향상된 기능을 지원했다는 점을 생각해보면 새 윈도우는 항상 이전 버전보다 더 나을 수밖에 없고, 그 시점에서는 가장 좋은 윈도우가 된다고 할 수 있다. 하지만 윈도우 7은 새롭게 출시한 제품에 필요한 기본 요구 사항을 만족시킬 뿐만 아니라 이전 윈도우 제품을 압도하는 마무리 작업까지 잘 해낸 제품이라 하겠다.
물론 바로 전 버전인 윈도우 비스타가 주요 기능을 개선하고 혁신하지 않았다면 윈도우 7이 훌륭한 제품으로 나올 수는 없었을 것이다. 하지만 윈도우 7의 개발 방식에는 기존과는 구별되는 차이가 있다. 윈도우 7은 이제까지 나온 윈도우 중에서 처음으로 전 버전보다 낮은 사양에서 동작하는 일반 소비자용 버전이라는 점이다. 새로운 기능이 추가된 점을 생각해보면 정말 놀라지 않을 수 없다. 메모리 사용량을 줄였고 백그라운드 활동을 최소화했으며 최신 하드웨어 전원 관리 능력을 활용했다. 현대적이면서 멋진 운영체제를 만들기 위해 모든 수단을 활용해 윈도우 비스타가 동작하던 것과 같은 하드웨어에서 더 효율적으로 동작할 수 있게 개선됐다.
이전 버전과 또 다른 차이점은 마이크로소프트가 PC 제조사와 하드웨어 업체들과 일하는 방식이 바뀌었다는 점이다. 윈도우 7을 개발하는 동안 마이크로소프트는 변경 사항과 공용 도구, 관련 기술 등을 계속 알려줬고, 엔지니어를 현장에 보내 새 운영체제에 맞게 소프트웨어나 하드웨어를 최적화하는 일을 병행했다. 윈도우 7을 사용할 수 있을 즈음에는 대부분 파트너들은 1년 이상의 경험을 축적할 수 있었다. 자신들의 제품을 조정하고 적용할 수 있는 충분한 시간을 제공한 것이다.
근본적인 문제를 해결하기 위해 내부 구조 개선과 개발자 모임에 대한 노력을 함과 동시에 사용자 경험을 더 직접적으로 개선한 여러 가지 기능을 도입했다. 예를 들면 작업 표시줄을 다시 설계해 사용자가 현재 동작 중인 애플리케이션에 계속 집중할 수 있게 했고, 여러 애플리케이션 창 사이를 전환하기 쉽게 만들었으며, 자주 사용하는 애플리케이션이나 문서를 수월히 사용할 수 있게 했다. 윈도우의 작업 표시줄은 윈도우 95부터 크게 바뀌지 않아 마치 오래된 신발 같이 편안한 물건이었다. 하지만 잠깐이라도 새 인터페이스를 써본 후 다시 예전 윈도우로 돌아가 사용해보면 갑갑하게 느껴질 것이다.
또한 급격히 대중화된 PC 하드웨어 장치를 지원해 더 동적이며 적응성이 높은 사용자 경험을 제공하는 애플리케이션을 만들 수 있게 됐다. 모바일 PC는 주변광을 인지해 화면의 밝기를 조절할 수 있다. GPS 등의 센서로 윈도우는 주변 세상을 인식할 수 있다. 윈도우 7에서는 이런 장치를 위한 하부 시스템과 API를 제공해 애플리케이션이 지역 환경에 특화된 정보와 동작 모드를 사용자에게 전달하는 것이 가능해졌다.
윈도우 사용자이자 전직 독립 소프트웨어 개발자ISV로서 말하건대, 새로 출시된 최신 운영체제나 오피스 버전이 우리가 기존에 사용해오던 것과 전혀 다른 사용자 인터페이스를 지녔다면 매우 불안할 것이다. 또 애플리케이션과 운영체제의 경계가 모호해져 운영체제와 아주 매끈하게 결합한 애플리케이션을 사용하게 된다면 이 또한 마찬가지로 좌절감을 느끼고는 이에 적응하지 못한 사람들을 놀리는 이들에게 달려들거나 10년 이상된 운영체제에서 개발하던 사람들은 어떻게 하느냐고 항변할 것이다.
훌륭한 소프트웨어를 만들려면, 사용자에게 특이한 사용자 인터페이스 동작을 배우게 강요하지 않으면서 실행했을 때는 사용자가 편안하게 미래로 시간 이동을 한 듯 느껴야 한다. 또 다른 방법으로는 다른 애플리케이션처럼 PC 성능을 최대한 잘 활용할 수 있게 하는 것이다. 사용자를 즐겁게 하려면 기술과 사용자 인터페이스 트렌드를 잘 병행해야 한다. 언제 애플리케이션에서 그런 트렌드를 활용할 수 있을지, 또 언제 활용해야 할지를 인지해야 한다. 그렇게 함으로써 혁신이 고객에게 가치가 있어야 한다. 최신 플랫폼의 기능을 활용하면 애플리케이션을 돋보이게 한다. 또 고객 스스로 유행에 앞서 있다는 자부심을 얻기도 한다.
이 책 한 권 안에는 새로운 PC 하드웨어의 능력을 활용해 최신 애플리케이션을 만드는 데 필요한 정보와 공통 기능을 빠르게 사용할 수 있는 모든 것이 들어있다. 오랫동안 동작하는 작업의 진행 상태를 작업 표시줄 아이콘에 표시하게 하는 것에서부터 공통 작업과 최근 사용 문서의 접근을 쉽게 하는 작업 표시줄의 점프 목록까지 모두 다 담겨있다. 또 현재 위치에서 가장 적합한 결과를 제공하게 하는 위치 API에서부터 기존 문서 보관함을 결합하고 접근할 수 있게 해주는 라이브러리 API, 애플리케이션의 기능과 특징을 확장해 노출하는 리본 컨트롤에서 직관적인 상호작용 인터페이스를 제공하는 터치 인터페이스 지원까지, 이 책은 애플리케이션을 신세계로 보내는 완벽 가이드다.
요즘처럼 온라인 문서와 코드 샘플에 바로 접근할 수 있는 시대에서 읽을 가치가 있는 프로그래밍 책이라면 완전하고 일관되게 소개하면서도 새로운 개념에 대해 개괄적인 내용뿐만 아니라 재사용하기 쉬우면서도 분명하고 직설적인 코드를 예제로 제공해야 한다. 요차이, 사샤, 로렌스, 알론 네 사람은 이 책에서 이 모두를 제공한다. 이 책은 닷넷이나 Win32 API를 이용해 윈도우 7 애플리케이션을 프로그래밍하는 개발자가 꼭 소장해야 할 지침서라고 확신한다. 나는 Sysinternals의 툴에 윈도우 7의 기능을 추가해오고 있다. 작업 표시줄 아이콘의 진행 상태를 표시하기 위한 방법에 대한 설명과 예제를 통해 Sysinternals의 Disk2Vhd 툴을 문자 그대로 몇 분 만에 개선할 수 있었다. 앞으로도 나는 툴을 계속 개선해가기 위해 이 책을 참조하게 될 것이다. 각자가 만든 애플리케이션이 또 다른 우위에 서게 하기 위해 여러분도 마찬가지일 것이라 확신한다.
- 마크 러시노비치Mark Russinovich
테크니컬 펠로우 / 마이크로소프트 사의 윈도우 개발 본부
목차
목차
- 1장 윈도우 7의 특징
- 윈도우 비스타와 달라진 점
- 뛰어난 일곱 가지 특징
- 작업 표시줄
- 라이브러리
- 터치, 멀티터치, 제스처
- 센서와 위치 정보
- 리본
- 개선된 그래픽 플랫폼
- 개선된 핵심 기능
- 정리
- 2장 윈도우 7 작업 표시줄: 기본 기능
- 윈도우 7 작업 표시줄의 설계 목표
- 윈도우 7 작업 표시줄의 기능
- 점프 목록
- 작업 표시줄의 오버레이 아이콘과 진행 상태 표시
- 썸네일 툴바
- 라이브 창 썸네일
- 하위 호환성
- 작업 표시줄과의 연동
- 애플리케이션 ID
- 작업 표시줄의 진행 상태 표시와 오버레이 아이콘
- 정리
- 3장 윈도우 7 작업 표시줄: 고급 기능
- 점프 목록
- 점프 목록의 구조
- 최근 항목과 자주 여는 항목
- 커스텀 선호 항목
- 사용자 작업 항목
- 썸네일 툴바
- 썸네일 커스터마이즈
- 썸네일 클리핑
- 커스텀 썸네일
- 커스텀 라이브 미리 보기
- 창 전환기
- 정리
- 점프 목록
- 4장 데이터 정리: 라이브러리 기능
- 윈도우 탐색기
- 윈도우 7에서 바뀐 탐색기의 기능
- 라이브러리 기능 소개
- 라이브러리의 구조
- 라이브러리 사용
- 정리
- 윈도우 탐색기
- 5장 기초 멀티터치 프로그래밍
- 윈도우 7의 멀티터치 기능
- 멀티터치 프로그래밍 모델
- 좋은 프로그래밍 모델: 레거시 애플리케이션의 지원
- 더 좋은 프로그래밍 모델: 터치 사용 경험의 향상
- 가장 좋은 프로그래밍 모델 : 멀티터치용 최적화
- 윈도우 7에서의 멀티터치 동작 방식
- 멀티터치 구조: 메시지 데이터 흐름 과정
- 레거시 애플리케이션의 지원
- 제스처 동작 처리
- WM GESTURE 메시지 처리
- 객체 이동을 위한 직선 이동 제스처
- 객체 크기를 변경하기 위한 줌 제스처
- 객체를 돌리기 위한 회전 제스처
- 마우스 클릭을 대신하기 위한 두 손가락 탭
- 마우스 오른쪽 클릭을 대신하기 위한 누르고 탭
- 윈도우 7 제스처 설정
- 정리
- 6장 고급 멀티터치 프로그래밍
- 가공되지 않은 터치 메시지
- 터치 사용을 위한 윈도우 설정
- WM TOUCH 메시지
- 조작 엔진과 관성 엔진
- 멀티터치의 구조: 전체 구조, 1부
- 조작 처리기
- 관성 처리기의 사용
- 멀티터치의 구조: 전체 구조, 2부
- 정리
- 가공되지 않은 터치 메시지
- 7장 매니지드 코드와 멀티터치 애플리케이션
- 터치 지원 애플리케이션 작성
- 터치 기능을 이용한 이동
- 터치 기능을 이용한 크기 변경
- 터치 기능을 이용한 사각형의 회전
- 제스처에 어울리는 관성 효과 처리
- 여러 객체 조작을 위한 확장
- 제스처를 지원하는 사진 컨트롤 제작
- 제스처를 인식하는 사진 컨트롤 사용법
- 터치와 제스처를 지원하는 클래스
- 추가된 UIElement
- 정리
- 8장 실버라이트와 터치 애플리케이션
- 실버라이트
- 실버라이트 애플리케이션 작성
- 브라우저 밖에서 동작하는 실버라이트 애플리케이션 작성
- 실버라이트 잉크 프레젠터 컨트롤
- 실버라이트의 잉크 주석 기능 예제
- 자바스크립트용 실버라이트 잉크 클래스
- 실버라이트에서 잉크 프로그래밍
- 실버라이트에서의 터치 API
- 멀티터치로 확장
- 정리
- 9장 센서와 위치 정보 플랫폼의 소개
- 센서를 지원하는 이유
- 보안 용어
- 센서와 위치 정보 플랫폼의 구조
- 센서의 정의
- 센서의 사용
- 센서 정보 사용
- 센서의 탐색
- 센서 승인 요청
- 센서의 상호작용
- 매니지드 코드에서 센서 데이터 읽기
- 매니지드 코드를 이용한 센서 이벤트 처리
- 주변광 센서 애플리케이션
- 정리
- 센서를 지원하는 이유
- 10장 위치 인식 애플리케이션
- 위치를 인식하는 것이 중요한 이유
- 위치 정보 플랫폼의 구조
- 위치 정보 장치의 일반화
- 위치 정보의 보호
- 위치 정보 API의 사용
- 위치 정보 API의 동작 방식 이해
- 위치 정보 사용 승인 요청
- 위치 정보의 사용
- 기능 통합
- 닷넷을 사용한 위치 인식 애플리케이션의 제작
- 위치 정보 보고서 읽기와 이벤트 처리
- 향상된 디폴트 위치 정보 제공자를 이용한 테스트
- 정리
- 11장 윈도우 리본을 이용한 개발: 1부
- 리본의 역사
- 리본 사용
- 리본 프레임워크 프로그래밍
- 리본 마크업
- 정리
- 12장 윈도우 리본을 이용한 개발: 2부
- 리본 프로그래밍
- 가장 간단한 리본 애플리케이션의 수정
- 초기화 단계
- 리본 콜백 처리
- 프로퍼티 시스템
- 프로퍼티의 설정 방법
- 컨트롤의 제어
- 애플리케이션 모드 설정, 컨텍스트 탭, 팝업 메뉴
- 정리
- 리본 프로그래밍
- 13장 성능에 관한 모든 것: 기본의 재발견
- 측정과 진단
- 성능 측정 카운터
- 윈도우 관리 시스템
- 윈도우 이벤트 추적
- 윈도우 퍼포먼스 툴킷
- 문제 해결 플랫폼
- 성능과 효율성
- 백그라운드 서비스와 트리거로 동작하는 서비스
- 전원 관리
- 측정과 진단