본문 바로가기

Book review

윈도우와 리눅스 멀티 스레드 소켓 프로그래밍을 함께 배우는 방법 (뇌를 자극하는 TCP/IP 소켓 프로그래밍 - 한빛미디어)

  이번에 살펴 볼 책은 [뇌 자극] 시리즈의 하나인 뇌를 자극하는 TCP/IP 소켓 프로그래밍 입니다. 이 책은 여타 다른 네트워크 소켓 프로그래밍 책과 커리큘럼 상 크게 다른 것은 없습니다. 네트워크의 기본적인 개념과 소켓 프로그래밍의 개념, 그리고 실전적인 코드와 함께 보여지는 예제들...
  일반적인 네트워크 프로그래밍 도서의 전형적인 목차를가지고 있습니다. 하지만 그렇게 특색 없는 도서였다면 굳이 설명할 필요도 없었겠죠. 이 책은 이 책 나름대로의 접근법을 가지고 있습니다. 그것은 바로 윈도우와 리눅스의 멀티 플래폼 적인 접근 방법이지요. 사실 기본적인 개념상으로는 동일하다 하여도, 실제적으로 구현되는 모습이나 동작의 개념은 OS에 종송적이지 않을 수 없습니다. 이런 경우 해당 OS의 네트워크 프로그래밍에 대해서 전반적인 지식을 당연히 갖추어야 올바르게 통신 가능한 프로그램을 만들 수 있습니다. 이 책에서는 윈도우와 리눅스의 소켓 프로그래밍을 함께 경험할 수 있도록 구성이 되어 있습니다.


  목차 순으로 내용을 간단히 살펴보자면, 우선적으로 네트워크의 역사와 OSI 7계층에 대한 이야기가 제일 먼저 나오구요. 그다음에는 네트워크 프로그램을 만들기 위한 환경 구축 방법으로 윈도우와 리눅스가 같이 소개 됩니다.그 다음에는 소켓 프로그래밍에 대해서 이해를 돕기 위한 챕터가 이어지고음 챕터에서 소켓 네트워크 프로그램을 개발하는 것을 단계별로 배울 수 있도록 되어 있습니다. 그리고 네트워크 바이트, 인터넷 주소, TCP 소켓, UDP 소켓 등으로 기본적인 설명을 마치고, 그 뒤부터는 고급 과정으로 멀티 스레드 네트워크 프로그래밍, IPC, 대용량 처리, RPC 등에 대해서 나오는데 리눅스 부분과 윈도우 부분으로 구분되어서 전체적으로 균형감 있게 설명하고 있습니다.


  이 중에서 재미있게 읽은 부분은 네트워크 바이트 알아내기 부분과 Raw Socket, ICMP, 패킷 캡처로그램 개발 부분입니다. 이전까지 잘 몰랐던 부분도 부분이거니와 대부분 내용이 간결하였지만 핵심을 파악하는데 별 무리가 없었기 때문입니다. 사실 어떻게 보면 설명이 부족하다고 생각이 되기도합니다. 개념적으로 더 알아보기 위해서 검색을 꼭 해야만 했거든요. 이 책에 중심적인 내용이 그것들이 아니기 때문에 설명의 간결화를 통해서 넘어갔다고 생각하면서도, 기왕 말을 꺼낸거 좀더 자세하게 설명해주면 굳이 찾아볼 필요도 없고 이해도 쉬웠을 것 같다는 생각도 듭니다.


  마지막 3장에서 보여지는 실전 네트워크 프로그래밍에서는 아쉬움이 좀 더 많은데, 다른 책들에서 흔히 볼 수 있었던 파일 전송 프로그램이나 웹서버를 만드는 예제들을 보여준 점은 아쉽다. 기왕 저작물인데 좀더 다양하고 특색있는 샘플이 있었으면 좀더 즐겁지 않았을까. 
  전반적으로 설명이 충실하지는 않다. 저작물인 만큼 저자도 힘들었고 공들였으리라 생각이 되지만독자로 하여금 즐겁게 읽을 수 있는 여지를 좀더 줄 수 있었음에도 그러지 못한 점이 아쉽습니다. 여기에 반전이 하나 있는데 이런 모든 부족한 점을 보충할 수 있는 동영상 강의 쿠폰이 책속에 있으니 저자로부터 실제적으로 설명과 함께 강의를 들을 수 있다는 것은 매력적인 요소가 아닐까 싶네요. 가장 쉬운 난이도의 개념서를 한번 읽고 이 책을 통해서 배운다면 좀더 기초가 권고한 실력을 쌓을 수 있지 않을까 싶습니다.