저자: 한빛리포터 윤종선
C#이 수면위로 올라오면서 서점에서는 다양한 C#서적이 선보이고 있다. 특히 Visual Studio .NET 정식 버전이 나오면서 이제는 C++과 Java관련 서적들이 차지하고 있던 자리들을 C#관련 서적들이 점점 밀어내고 있다. 하지만 아직까지는 C#서적에서 C++이나 Java에서 볼 수 있었던 명저들을 찾기란 그리 쉽지 않다. 깊이 있는 책들보다는 C#으로 간단한 윈도우 프로그램이나 웹 서비스들을 만들어보는 정도의 따라하기식 책들이 대부분이기 때문이다.
하지만 C++시절부터 이름을 날리던 저자들의 후속편을 비롯해서 유명 출판사의 책들이 속속 출간되고 있는데, 시중에 나온 C#서적 중 괜찮은 것을 고른다면 대충 4권으로 추려낼 수 있을 것 같다. 4권 모두 어마어마한 두께를 자랑하는데(새삼스러울 것도 없지만), WROX의 『Professional C#』, APress의 『C# and the .NET Platform』, Microsoft Press의 『Programming Windows with C#』, 그리고 O"Reilly의 『Programming C#』이다. (물론 여기에는 개인적인 취향도 어느 정도 포함되어 있다는 것을 부정할 수는 없지만, 여러 인터넷 서점등에서도 위의 4권이 좋은 평가를 받고 있는 것을 확인할 수 있다.)
자 그러면 위의 4권의 장단점을 하나하나 확인해 보도록 하자.
먼저 WROX에서 나온
『Professional C#』은 WROX의 Professional 시리즈답게 엄청난 두께와 함께 다양한 실전 지식을 제공한다. 다양한 실전 지식을 얻을 수 있다는 점이 장점이지만, WROX의 Professional 시리즈가 다 그렇듯이 책의 일관성이 떨어지고, 체계적이지 못하다. 다른 책을 한 두 권 본 후 다른 책에서는 찾아보기 힘든 전문적인 지식을 얻기 위해서 보는 편이 좋을 것 같다. 아무래도 전문필자들이 아니고, 여러 명이 집필했기 때문일 텐데, 대신에 C#에 대한 기본적인 지식을 알고 있는 상태라면 여러 명의 필자들이 전해주는 생생한 실전경험을 얻을 수도 있을 것이다.
Apress에서 나온
『C# and the .NET Platform』은 전체적으로 잘 쓰여진 책이고 재미있지만, 여러 가지 분야를 비슷한 비중으로 다루기 때문에 특정 분야를 집중적으로 살펴보고자 하는 독자에게는 좀 부족하게 느껴질 수 있다. 또한 체계적인 설명은 장점이지만 .NET에 초점이 맞춰져 있기 때문에 C#자체에 대한 내용은 좀 부족하다. 그렇지만 기본적인 문법은 알고 있는 상태에서 C#의 다양한 가능성을 확인하고 싶다면 추천할 만한 책이다.
Microsoft Press에서 나온
『Programming Microsoft Windows with C#』은 이번 만큼은 Petzold의 명성을 지켜내지 못할 것 같은 느낌이다. 이건 어느 정도는 C#의 책임이다. C#자체가 윈도우 응용 프로그램보다는 웹 응용 프로그램에 초점을 맞추고 있기 때문이다. 아마 대부분의 윈도우 응용프로그램 개발자들은 C#으로 전향해야 할 필요성을 별로 느끼지 못하고 있을 것이다. 어쨌든 Petzold의 책은 이전의 Visual C++판의 형식을 그대로 답습하고 있고, C#의 문법을 아는 상태에서 C#으로 윈도우 응용프로그램을 개발하고 싶다면 언제나 그렇듯이 이 책 이상의 것은 없을 것이다.
마지막으로 오라일리에서 나온
『Programming C#』은 역시 "제시 리버티"라는 생각을 들게 하는 책이다. 만약 .NET보다는 C#이라는 언어 자체에 관심을 두고 어떤 책을 볼 것인가에 대해 고민하고 있다면 더 이상 고민할 필요 없이 이 책을 추천한다. 이 책은 21일 완성 시리즈의 C#판이라고 생각해도 될 것이다. C++에서와 마찬가지로 이번에도 "제시 리버티"는 역시 C#이라는 언어 자체에만 관심이 있는 듯하다. 2부와 3부에서 .NET을 이용한 개발에 대해서도 다루고 있지만, 이 책의 백미는 1부이다(분량면에서도 1부가 절반 정도를 차지). 하지만 빨리 C#을 배워서 멋진 프로그램을 작성하고 싶은 독자에게는 이 책이 너무 지루하다고 생각될 것이다. 차근차근 기초부터 배우고 싶어하는 초보, C++이나 Java로 다양한 실전경험을 가지고 있으면서 C#의 특징을 꼼꼼하게 확인하고 싶어하는 개발자를 위한 책이기 때문이다. 저자의 본업이 프로그래밍 교육이라 그런지 특히 다른 책과는 달리 이 책은 자신이 설명하고자 하는 부분만을 집중적으로 기술하고 있기 때문에 코드나 설명에 쓸데없는 군더더기가 없다. 이런 부분은 초보자에게는 상당히 반가운 일일 것이다.
자 그러면 이제 이 책에 관심이 많은 독자를 위해, 좀 더 자세한 얘기를 해보도록 하겠다. 먼저 번역서를 읽으려는 독자에게 최고의 관심사는 번역이 제대로 됐는지 일 것이다. 대체적으로 한빛미디어의 번역서는 번역이 깔끔한 편이지만, 이 책의 경우에는 가끔씩 거슬리는 부분이 눈에 띈다. 잘못된 번역은 아니지만 깔끔하지 않은 부분이 몇 군데 있다. 하지만 기존의 한빛 번역서에 비해서 좀 떨어질 뿐이지, 책을 읽어 나가는데 문제가 있는 수준은 아니다. 전체적으로 자연스럽게 읽히는 수준이고, 원서 자체도 이해하기 쉽게 쓰여져 있기 때문에 초보자라도 쉽게 읽어나갈 수 있다.
2부와 3부는 사실 이 책에서는 좀 애매한 부분이라고 볼 수도 있겠다. 프로그래밍을 처음 시작하는 초보자도 충분히 따라 올 수 있는 수준인 1부와는 달리 2,3부는 다양한 내용을 간략하게 다루어 초보자들이 따라오기 힘든 내용이 되어 버렸다. 하지만 기존에 C++이나 Java를 공부했던 독자에게는 이들 언어와 C# 접근법 사이의 차이점을 쉽게 파악할 수 있는 좋은 내용이 될 것이다. 2부와 3부에서도 최대한 간결한 예제와 함께 훌륭한 설명이 이어지기 때문이다.
덧붙이자면
『C# 프로그래밍』은 프로그래밍을 처음 시작하는 초보자에게는 C#이라는 쉬우면서도 유용한 언어로 프로그래밍을 시작할 수 있는 최고의 책이 될 것이고(다만 이 경우 2부와 3부는 건너뛰고 Petzold의 책으로 옮기는 것이 좋을 것 같다), 기존에 C++과 Java로 개발하던 개발자에게는 C++, Java와 C#사이의 차이점을 쉽게 알려주면서 기존의 지식을 활용하여 C#으로 건너올 수 있게 해주는 유용한 서적이 될 것이다.
다만 한 가지 아쉬운 점이 있다면 올해 초에 미국에서는 이 책의 개정판
『Programming C#, 2nd Edition』이 나왔다고 한다.