상세 컨텐츠

본문 제목

TCP/IP 소켓 프로그래밍 C/C++ 2판

전체 출간 도서

by 비제이퍼블릭 2009. 8. 25. 09:00

본문


오늘은 비제이퍼블릭의 두 번째 번역서가 될 도서를 소개해 드리겠습니다.

'네트워크 프로그래밍이나 관련 분야에 계신 분들이라면 학생이든 실무에 계신 분들이든 한번쯤은 보셨거나, 아니면 최소한 제목이라도 들어보지 않았을까...' 하는 생각이 들만큼 출간 당시 일반 실무자들뿐만 아니라 대학 교재로도 채택이 되어 굉장한 반응을 보였던 책이 있습니다.

TCP/IP 소켓프로그래밍 C / 마이클 도나후, 케네쓰 칼버트 / 180쪽 / 2001년 / 사이텍미디어




이번에 비제이퍼블릭에서 출간할 책은 위의 도서의 제2판의 번역서로써 현재 출간 예정일은 2009년 10월 30일입니다.

TCP/IP Sokets in C : Practical Gudie for Programmers 2/e / 9780123745408 / 2009



위의 도서 소개에서도 알 수 있듯이  1판은 페이지가 200쪽(역자분께서 추가한 부분을 제외한면 약 160페이지)이 채 되지가 않습니다. 그래서 그런지 이 책을 읽으신 독자분들의 리뷰도 극과 극을 달리는 내용들이 많았는데, 간단히 정리해보니 다음과 같은 장단점을 발견할 수 있었습니다.


   
    장점
  • 도서 자체는 얇지만 내용은 충실하다.
  • 분량도 작고 핵심만 있어서 시중의 두꺼운 네트워크 서적으로 처음 시작하기가 부담이 되는 분들에게 추천하고 싶은 책이다.
  • 이론에 치우치지 않고 실질적인 예제와 설명으로 구성되어 있다.
  • 얇지만 강력하다.
   
    단점 
  • 너무 얇아서 참고용으로는 볼만 하지만 다른 서적의 도움을 받아야 한다.
  • 소스코드가 유닉스 기반으로 되어 있어 윈도우에서는 사용이 불가능하다.
  • 얇기는 하지만 내용이 너무 함축적이여서 만만하지가 않다.
   
   
장점이자 단점
  • 교재로써 딱 맞는 책이다.


이 책의 1판의 출간이 2001년도 였으니(원서는 2000년) 이번 2판은 약 8년만에 출간이 되었고, 도서의 역자 머리말을 읽어보면 다음과 같이 1판의 개정판인 2판을 출간하게된 계기를 적어놓았습니다.

두 가지의 중요한 생각들이 이번 2판을 내놓게 된 계기가 되었다. 첫 번째는 우리가 느낀 경험들과 다른 사람들로부터의 의견을 통해서 몇몇 주제들은 더욱 깊게 파고들고, 다른 몇몇의 주제들은 좀더 폭넓은 설명이 필요하다고 생각했기 때문이다. 두 번째로는 광범위하게 증가되고 있는 IPv6 때문이었다. 비록 지금은 IPv6가 인터넷을 장악할 것이라고 말하는 것이 이르다고 생각할지 모르겠지만, 그 때를 준비하기 위한 응용프로그램을 만들기에는 시기적으로 결코 이르다고 말할 수 없다.

마치 저자들이 한국 독자의 목소리를 듣기라도 했듯이, 2판은 IPv6의 내용을 포함하여 기존의 내용에 더욱 살을 붙여 원서의 경우 약 100쪽의 분량이 늘었으며 ,번역서로는 기존의 180쪽에서 약 70쪽 정도가 늘어서 250쪽 정도의 도서로 출간이 될 것 같습니다.

또한, 역자분께서 친절히 모든 코드가 변경 없이 윈도우에서도 돌아갈 수 있는 환경을 만들 수 있도록 부록으로 추가하여 재구성 하였습니다.


비록 이번 2판은 1판에 비해 양적으로 다루는 범위가 상당히 많아진 것은 사실이나, 우리는 이 책이 여전히 실무적인 본 역할에 충실하기를 바라고 있다. 이 책은 유용한 코드를 작성하고자 하는 실무자들을 위한 단 한 권의 입문 도서로도 전혀 손색이 없다. 하지만 전문가용으로는 충분치 않다는 것을 밝히고 싶다. 실습을 하면서 배운다 라는 우리의 철학은 변함이 없다. 또한 혼자 학습하여 배우기를 원하는 사람에게 간결한 자습서 기능을 제공하고, 다른 복잡한 면들은 또 다른 저자들에게 남겨둔다는 우리의 방식도 여전히 변함이 없다. 우리의 목표는 학생, 실무자 그리고 모든 독자들에게 본인이 스스로 실험하고 스스로 학습을 시작할 수 있도록 하는 환경을 제공하는 것이다.

그러나 좀 더 자세한 내용을 위한 분량이 늘었음에도 불구하고, 위와 같은 역자들만의  철학으로 인해 독자들과 지인들의 요구사항들을 모두 책에 포함시키지는 않았으며 여전히 C와 유닉스 기반 시스템에 대한 기본적인 경험을 요구하고 있습니다.
즉, 다음의 코드를 이해하는 정도면 이 책을 보는데 아무 무리가 없다고 합니다. 물론, 이해를 하지 못해도 코드 자체에 대단한 것은 없으니 다른 C 책을 참고하여 코드가 어떻게 진행이 되는지 확인 하시고 시작하시길 바랍니다.


typedef struct {
       int a;

       short s[2];

} MSG;

MSG *mp, m = {4, 1, 0};

char *fp, *tp;

mp = (MSG *) malloc(sizeof(MSG));

for (fp = (char *)m.s, tp = (char *)mp->s; tp < (char *)(mp+1);)

       *tp++ = *fp++;


마지막으로 1판과의 차이점을 간략히 적어드리고 다음에는 목차와 샘플 챕터 등 조금 더 자세한 정보를 알려드리도록 하겠습니다.

1.
IPv6
를 다룸. IPv4 전용, IPv6 전용, IPv4-IPv6범용(Generic) 코드 포함C++기반의 소켓프로그래밍 을 추가
2. PracticalSocket
라이브러리는 C++소켓 라이브러리로써 C기반의 기본 기능을 포함하는 래퍼(wrapper) 클래스 기능을 제공
3.
데이터 표현에 관련된 부분과 데이터 송수신 메시지를 구성하는 방법에 관련된 코드 구성을 강화
4.
API 참조 목록 삭제. 소켓 API를 구성하는 대부분의 함수에 대한 설명들은 초반의 장들에서 모두 소개되며, 또한 man 페이지와 같은 수많은 API 정보들이 온라인 상에 존재함으로써 우리는 더 많은 코드 설명을 위해서 API 레퍼런스를 빼버리기로 결정.



관련글 더보기

댓글 영역