Top

[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 프로그래밍』은 윈도우 7 베타 버전이 나오기 전부터 기획된 책이다. 윈도우 7이 처음 선보인 2008년 10월에 열린 마이크로소프트 PDC 키노트 연설 이후 사람들의 흥분을 지켜보며 윈도우 7이 엄청난 성공을 거둘 것이라는 사실을 깨달았다. 엄청난 성능 향상을 이뤘으며 놀랄 만큼 적은 메모리와 CPU 메모리 사용량, 신나고 새로운 사용자 인터페이스 기술, 윈도우 7의 본질적인 부분에 대한 끊임없는 투자를 통해 사용자가 선택하고 개발자가 타깃으로 삼을 운영체제가 될 것임을 직감했다. 이 운영체제에서 멀티터치나 빛이나 3D센서, 위치 센서 같은 하드웨어 센서, 라이브러리, 홈 그룹과 작업 표시줄의 개선, 새로운 그래픽 플랫폼 같은 많은 기능이 개발자들의 흥미를 끌 것이라 예상했다.

윈도우 7은 애플리케이션을 멋지게 만드는 여러 기술과 기능을 제공한다. 이 책에서는 최종 사용자 경험에 가장 가치 있으며 상대적으로 개발하는 데 적은 노력이 든다고 생각되는 특징들에 초점을 맞추기로 했다. 다양한 새 특징과 기술을 조명하려 했고 실질적이면서 실용적인 예제를 제공했다. 예제들은 C++ 네이티브와 C# 매니지드 API 모두를 사용해 유용하게 사용할 수 있게 만들어졌다. 하지만 일부 기능은 좀 더 자세하게 다룰 필요가 있다. 윈도우 SDK나 MSDN 라이브러리, 마이크로소프트 채널 9 웹사이트, 마치 비온 뒤에 버섯처럼 솟아오르는 여러 윈도우 7 블로그를 둘러보고 이런 기능에 대해 더 많이 알아보기를 적극 권한다.


[ 저자 소개 ]

요차이 키리아티 (Yochay Kiriaty)
윈도우를 주로 다루는 마이크로소프트의 기술 마케터로 소프트웨어 개발과 관리와 전산 관련 강의를 10년 이상 해오고 있다.
윈도우 7 공식 블로그(http://windowsteamblog.com/)의 주요 기고자로 활동 중이며, 여러 매체에 다양한 글을 썼다.

사샤 골드스틴 (Sasha Goldshtein)
마이크로소프트 비주얼 C# MVP로서 셀라 그룹의 시니어 컨설턴트와 지도자로 활동 중이며, 셀라 기술 센터의 성능 및 디버깅 팀의 리더로 활동 중이다. 제품 디버깅, 애플리케이션과 시스템 문제 해결, 성능 최적화, 분산 아키텍처 등의 다양한 주제에 대해 컨설팅을 하며, 여러 마이크로소프트 컨퍼런스에서 이 주제에 대해 이야기하기를 좋아한다.
사샤는 C#, C++, C++/CLI를 이용해 매니지드와 네이티브 애플리케이션을 개발 중이며, 상호운용 솔루션 설계나 다층 구조의 고성능 아키텍처와 고성능 확장 시스템 등 불가능한 문제들의 해답을 찾아내려 한다. 또한 윈도우 인터널 코스를 포함해 닷넷 성능 개선과 디버깅, 윈도우 7 관련 여러 셀라 교육 과정의 저자이기도 하다.

로렌스 모로니 (Laurence Moroney)
마이크로소프트 웹 플랫폼과 실버라이트, 사용자 경험에 관한 시니어 제품 관리자다. 십 년 넘게 소프트웨어 개발, 아키텍처, 구현을 해왔으며, 실버라이트, ASP 닷넷, 보안, 자바와의 상호운용 등 폭넓은 주제에 대해 여러 권의 책을 썼다.

알론 플라이스 (Alon Fliess)
마이크로소프트 C++ MVP로 셀라 그룹의 CTO이다. 그는 다양한 프로젝트에서 기술 리더로 일했으며, 마이크로소프트 기술에 있어 전문가다. 여러 컨퍼런스에서 윈도우 개발, 윈도우 인터널, C++, 소프트웨어 아키텍쳐 등에 관해 강연자로 활동했다. 또한 이 주제에 대한 셀라 교육 코스의 공동 저자이기도 하다. 마이크로소프트 DP&E를 위한 윈도우 7 교육 교재 개발 팀을 이끌고 있으며, 윈도우 7 트레이닝 킷과 윈도우 7 애플리케이션 호환성 자료를 만드는 데 참여 중이다. 이스라엘 기술 공대인 Technion에서 컴퓨터 공학을 이수했다.
알론의 블로그 주소는 http://blogs.microsoft.co.il/blogs/alon/이다.


[ 옮긴이의 말 ]

오래 전 윈도우 286을 설치한 이래 수많은 윈도우 버전을 설치해봤지만 윈도우 7만큼 만족감을 줬던 버전은 없었다. 큰 기능 추가 없이 최적화가 된 버전이라고만 알고 있었기에 계속 사용하던 윈도우 XP에 비견할 만한 가벼운 동작과 윈도우 비스타의 인터페이스보다 정갈하면서도 정리된 윈도우 7의 UI는 사용하는 내내 탄성을 내지르게 했다.

마이크로소프트가 만든 버전 중에서 윈도우 95나 윈도우 NT 4.0처럼 기술적으로 큰 도약을 이룬 것도 있었지만 기존 컴퓨터를 기름 치고 광낸 것처럼 매끄럽게 동작하는 느낌을 주는 버전은 없었기 때문이다. PC는 계속해서 성능이 증가하고 가격은 떨어지지만 대부분의 윈도우 사용자는 3~4년 전에 구입한 컴퓨터를 사용한다. 새로운 운영체제가 나오고 좋은 기능이 나오지만 그 기능을 활용하려면 사용하던 컴퓨터를 업그레이드를 하지 않으면 충분히 즐길 수 없었으므로 자신의 컴퓨터를 새로 산 컴퓨터처럼 느낀다는 점은 대단한 즐거움이라 하겠다.

새로운 작업 표시줄이나 점프 목록처럼 직관적이면서도 간결한 UI가 추가되고 라이브 미리 보기 기능처럼 탄성이 나오는 기능을 보면서 윈도우 7의 성공을 예상할 수 있었다. 하지만 아직까진 윈도우 7용으로 만든 유명 제품은 마이크로소프트에서 만든 오피스 2010밖에 없을 정도로 애플리케이션 시장은 빠르게 움직이고 있지는 않은 것 같다.

이전 버전인 윈도우 비스타에서 새롭게 추가된 기능을 활용하는 제품조차 손에 꼽을 정도인 것은 애플리케이션 시장이 예전만큼 활황이 아니라는 점도 있지만 새로운 윈도우 버전이 기존 애플리케이션과의 호환성을 잘 유지하고 새 기능이 레거시 애플리케이션에서도 동작할 수 있게 잘 설계됐기에 새 제품을 구매할 필요가 없다는 점도 이유다. 그래서 개발업체 입장에서는 새로운 버전에 맞춰 개발하지 않더라도 큰 문제가 없다고 판단하기 때문이다.

하지만 윈도우 7에서 추가된 기능을 제대로 활용하는 애플리케이션에 익숙해지면 기본 기능만 동작하는 기존 애플리케이션에 아쉬움이 남기 마련이다. 예를 들면 라이브 미리 보기나 탭 창 미리 보기를 지원하는 IE와 달리 다른 브라우저는 아직 과거의 시간에서 머무르고 있다. IE를 쓰다 다른 브라우저를 사용하면 윈도우 XP를 쓰는 느낌이 든다.

처음 사용해본 윈도우와 최신 윈도우 7을 비교하면 그 기능에 압도당한다. 이 기능을 활용하기 위해 프로그래밍을 해야 하는 개발자 입장에서는 새로운 기능은 외면하고 싶을 것이다. Win16 API만 알고 있으면 되던 20년 전과는 달리 지금은 Win32 API는 기본이고 닷넷 프레임워크나 실버라이트 개발 환경도 고민해야 한다. 심지어 64비트 개발 환경까지 고려해야 하는 상황을 보면 애플리케이션 개발자에게 슈퍼맨 같은 능력을 요구하는 것은 아닐까 싶다.

이 책은 그러한 고민을 하는 개발자에게 가뭄의 단비 같은 안내서가 될 수 있으리라 생각한다. 방대한 윈도우 7의 기능 중에서 가장 중요하면서도 적은 노력으로 효과를 얻을 수 있는 기능을 골라 두 가지 언어로 구현 예를 들었다. 애플리케이션의 얼굴이라 할 수 있는 작업 표시줄과 점프 목록에서 시작해 라이브러리 지원, 멀티터치, 새로운 리본 UI 등 평소에 알아보고는 싶지만 쉽게 정리하기 어려운 기능에 대한 개념을 예제를 통해 잘 전달한다.

애플리케이션 개발자들은 『윈도우 7 완벽 가이드』(에이콘출판, 2010) 같은 활용서를 따로 사서 보지 않는 경향이 있다. 그래서 정작 중요한 사용법을 잘 모르고 쓰거나 기본적인 기능만 쓰는 경우를 종종 봤다. 다행히도 이 책은 개발서와 활용서의 중간쯤에 위치한 책이라 할 수도 있다. 처음부터 끝까지 모두 읽어도 좋지만 자신이 관심 갖는 부분을 한두 장씩 읽어두면 기능에 대한 이해뿐만 아니라 윈도우 7도 잘 활용할 수 있을 것이다.

책의 대부분이 애플리케이션의 UI에 관한 내용이지만, 마지막 13장은 이와 별개로 성능과 문제 해결에 대한 내용을 다루므로 자신의 개발 분야와 관련 없더라도 꼭 읽어 두기 바란다. 특히 고성능 게임 서버나 웹서비스를 개발하는 개발자라면 반드시 읽기를 권한다.


[ 옮긴이 소개 ]

김종원
서울대학교 컴퓨터공학과에서 석사 학위를 취득했으며, 현재 NCsoft에서 Technical director로서 새로운 MMORPG를 개발 중이다.
중학교 1학년 때 컴퓨터 경진대회에서 수상한 것이 계기가 돼 컴퓨터를 천직으로 삼고 1992년부터 한메소프트, 한글과 컴퓨터, 모코코, 엔씨소프트 등에서 다양한 개발 경험을 쌓고 있다.
월간 마이크로소프트웨어에 테크니컬 칼럼 등을 기고했으며, ZDNet Korea에 칼럼 ‘김종원의 망치와 모루’를 기고했다. 한국에서 PDC, TechEd 등의 강연자로 활동했으며, 최근에는 KGC2010, SIGGRAPH Asia 2010 등에서 강연 활동을 하는 중이다.
한메 한글 for 윈도우즈, 아래아 한글 3.0b, 한글 96 시리즈, 팔만대장경 전산 입력 시스템, 모바일 솔루션 Winy와 Rexy 등의 개발에 참여했으며, 이 제품들은 1996년에 KT 마크와 장영실 상, 2004년에 장영실 상을 수상했다.
임베디드 시스템부터 온라인 게임 개발까지 다양한 소프트웨어 산업 분야에서 소프트웨어 개발자와 아키텍트로 일했으며, 사용자 GUI 설계, GPU 아키텍처, 고성능 분산 컴퓨팅 시스템 등에 관심이 있다. 블로그 주소는 http://www.forge.kr이다.

목차

목차
  • 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장 성능에 관한 모든 것: 기본의 재발견
    • 측정과 진단
      • 성능 측정 카운터
      • 윈도우 관리 시스템
      • 윈도우 이벤트 추적
      • 윈도우 퍼포먼스 툴킷
      • 문제 해결 플랫폼
    • 성능과 효율성
      • 백그라운드 서비스와 트리거로 동작하는 서비스
      • 전원 관리

도서 오류 신고

도서 오류 신고

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

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

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