『제프리 리처의 Windows via C/C++』는 C/C++ 언어를 이용하여 마이크로소프트 윈도우용 애플리케이션을 개발하고자 하는 사람들에게는 바이블과도 같은 책이다. 새로운 언어와 새로운 기술을 빠르게 습득하고 활용하여 현장의 문제를 정확하고 신속하게 해결하는 것에 못지않게 기초와 기본 기술을 충실히 습득하는 것은 개발자로서 그 분야의 진정한 전문가로 거듭나기 위해 필수 불가결한 요소다. 특히 마이크로소프트의 윈도우 운영체제를 개발 플랫폼으로 삼고 있는 개발자라면 윈도우의 기본적인 특성과 운용 원리, 더불어 운영체제를 지배하고 있는 기본 철학을 이해하고 있어야 차별화된 개발을 할 수 있다. 윈도우는 C/C++ 언어에서 사용할 수 있는 형태로 API를 제공하고 있는데, 이는 윈도우의 상당 부분이 C/C++로 작성되었기 때문이기도 하다. C/C++를 이용하게 되면 윈도우가 제공하는 기능을 거의 무제한적으로 사용할 수 있으며, 더불어 윈도우의 내부 구조를 더 잘 이해할 수 있다. 따라서 C/C++를 이용하여 윈도우의 내부 구조를 조명하고 동작 원리를 이해하는 것은 가장 직접적이면서도 효과적인 학습 방법이라 할 수 있겠다. 이 책은 그런 의미에서 개발자들에게 필독을 권하고 싶은 책 중에 하나다. 단순한 활용 방법에만 치우치거나 혹은 너무 현실과 동떨어진 이론만을 나열한 책이 아니라, 서로 상충되는 두 가지 주제에 대해 균형을 유지하고 있는 것이 이 책의 최고의 장점이다. 또한 이 책의 이전 판이 1999년도에 출간되었고 윈도우 2000까지의 내용 위주였다면, 이번 5판에서는 윈도우 XP/2003/Vista/2008까지의 최신 내용을 포함하여 개정되었다. 특히 소프트웨어의 안정성을 향상시키려 포함한 보안 문자열 함수, 완전히 다시 작성된 스레드 풀 관련 함수, 윈도우 비스타에서 새롭게 등장한 오류 보고와 애플리케이션 복구 관련 부분은 다른 책에서는 찾아보기 힘든 내용이다. 또한 운영체제의 핵심 기능이라 할 수 있는 프로세스, 스레드, 동기화 오브젝트, 메모리 관리 부분에서도 그 내용이 상당히 많이 개선, 확충되었으며, DLL의 동작 방식과 인젝션에 대해서도 기본에 충실한 동작 원리를 상세히 기술하고 있다. 특히 윈도우 운영체제의 최대 강점이라고 볼 수 있는 구조적 예외 처리의 동작 방식과 예외 처리 방법 및 디버깅과 관련된 부분은 이 책의 또 다른 백미라 하겠다. 이러한 책을 오랜 기간 동안 개발 현장에서 다양한 경험을 취득하고, 마이크로소프트의 기술에 정통한 역자가 한글판으로 소개할 수 있게 된 것은 매우 다행스러운 일이라 생각한다. 원저의 분량이 상당하고 기술적인 난이도가 낮지 않음을 감안할 때 역자의 노고에 다시 한 번 감사의 뜻을 전하는 바이다.
- 김명호 (박사,한국마이크로소프트 최고기술임원(NTONational Technology Officer)
윈도우 플랫폼 위에서 개발하는 개발자라면, 특히 시스템 프로그래밍에 관심이 있는 개발자라면 『Programming Applications for Windows』라는 제목의 책을 한 번쯤 들어보았을 겁니다. 이 책은『Programming Applications for Windows』의 최신 개정판으로, 윈도우 2000 이후 계속 발전해온 기술들에 대해 깊고 상세한 설명을 담고 있습니다. 필독서 중에서도 손꼽히는 이 책을 깊은 내공을 가진 분의 번역을 통해 접할 수 있다는 건 매우 유쾌한 일이 아닐 수 없습니다. 딱딱한 MSDN 문서만으로는 부족함을 느끼는 분, 이미 알고 있는 윈도우 플랫폼에 대한 경험적인 지식을 명확하게 정리할 필요를 느끼는 분, 윈도우 플랫폼을 처음 접하는 분 등 윈도우 플랫폼을 깊이 이해하고자 하는 분들에게 꼭 필요한 책이라고 생각합니다.
- 정재필 (Software Architect, nPluto Corporation)
운영체제나 Win32 API를 알지 못하더라도 소프트웨어를 만드는 데는 지장이 없습니다. 하지만 보다 성능 좋은 소프트웨어를 만들거나 상용제품을 만들어야 하는 경우에는 운영체제와 Win32 API를 잘 알고 있어야 합니다. 실제로 CString에 Append를 5,000번 정도 수행하는 코드와 미리 버퍼를 할당해 놓고 copy를 수행하는 코드 중 어느 것이 더 성능이 좋을까요? 산술계산 함수를 구현하면서 CPU가 하나라고 가정할 때 다수의 스레드를 사용하는 것이 성능 향상에 도움을 줄 수 있을까요? 이러한 질문에 대해 이 책을 통해 힙 메모리의 내부와 스레드 스케줄을 알게 된 개발자라면 답을 찾을 수 있을 것입니다. 많은 개발자들이 이 책을 통해 윈도우 구조를 이해하고 고성능의 소프트웨어를 작성하실 수 있을 것입니다.
- 이태화 (Support Engineer, 한국 마이크로소프트)
프로그래밍을 처음 접했을 때가 생각이 납니다. 이제는 먼 추억이 되어버린 GW-BASIC을 배우고 있었죠. 그때는 언어에 대한 문법과 사용하는 함수들을 알고 있는 것이 프로그래밍의 전부라고 믿고 있었습니다. 사실 문법과 API는 프로그래밍의 기초일 뿐입니다. 좀 더 나은 프로그램을 위해서는 감추어져 있는 깊숙한 곳에서 무슨 일이 일어나는지를 알아야 합니다. 마이크로소프트 윈도우에서 돌아가는 프로그램을 개발하는 사람이라면 윈도우에서 무슨 일을 하고 있는지 좀 더 자세히 알아야 합니다. 윈도우 밑에 감추어진 블랙박스를 화이트박스로 바꿔주는 데 이 책이 큰 도움이 될 거라 믿습니다.
- 유민호 (스마트카드 개발자, http://paromix.egloos.com)
제프리 리처는『Code Complete』를 10년 동안 읽고 있지만, 아직도 그 책에서 배우고 있다고 말했습니다. 나는 이 책 또한 모든 윈도우 개발자가 10년 동안 곁에 두고 살아야만 한다고 생각합니다. 점점 .NET의 시대로 접어 들어가고 있긴 하지만, 그것이 중요한 것은 아닙니다. 제프리 리처가 서문에서 말했다시피 정말 중요한 것은 윈도우 시스템 자체를 이해하는 것입니다. 관리 코드보다는 네이티브 코드가 시스템을 이해하기에 훨씬 더 적합합니다. 게다가 네이티브 애플리케이션들은 앞으로도 오랜 시간 동안 건재할 것입니다. 이 책은 제프리 리처의 네이티브 애플리케이션 개발을 다루는 마지막 에디션입니다. 이것은 이 5판이야말로 모든 윈도우 개발자에게 있어 불후의 명작이 될 것이라는 걸 의미합니다.
- 김재호 ((주)이스트소프트 비즈하드 개발팀)