728x90

[인프런 rookiss 님의 C++ 서버 강의]를 듣고 [윤성우 tcp/ip 소켓] 책을 보게 됐습니다.

tcp/ip 가 무엇이고 실제로 windows에서 소켓 프로그래밍을 어떻게 작성하는 대략적으로 알고 있는 상태에서 이 책을 읽었습니다.

 

프로그래밍 입문 당시 프로그래밍 기초 문법을 살펴보고 좀 더 심도 있는 공부를 원하던 때 윤성우님의 c/c++ 책은 제게 심화 학습을 위한 중간 다리와도 같은 느낌이 였습니다. 자칫 초심자에게 어려울 수 있는 내용은 굉장히 친절하게 전달하려고 노력한다고 느꼈기 때문입니다.

 

단순히 프로그래밍 기본 문법을 전달하는 한국서적을 읽고 좀더 레벨(?)을 올리기 위해 새로운 책들은 찾아 보면 대부분의 고급주제를 다루는 책들이 영문버전이 많고 해석본 마저 부자연스러운 번역들이 많이 이런 부분들은 더 많은 경험치를 쌓고자 하는 초심자인 저를 가로 맞는 큰 벽과 같았습니다.

 

처음 c/c++을 배울 때 이런 상황에서 윤성우님의 책은 제게 [초심자-중급자]의 중간 다리 역할을 하는 책이라 생각합니다. 윤성우님의 책은 조금 더 심화된 내용을 독자들로 하여금 이해하기 쉽게 설명하고 더 나아가 힘조절(?)을 하면서 앞으로 공부 방향성에서 자연스럽게 유도합니다.

 

이런 좋은 기억을 되새겨 서버프로그래밍을 시작한 지 얼마 안된 뉴비인 저에게 윤성우님의 tcp/ip 소켓 프로그래밍 책은 후회 없는 선택이였습니다.

 

이 책의 장단점과 다루는 주제에 대해 간략히 요약하겠습니다.

 

장점

- 문장 하나하나에 굉장히 심혈을 기울였다고 생각합니다. 기술서적의 경우 한가지 개념을 설명하기 위해서 여러가지 개념의 수반되는 됩니다. 그리고 이때 모든 개념을 다루다 보면 서적의 난이도는 굉장히 올라가게 됩니다. 이 책은 이 밸런스를 잘 조절 했다고 생각합니다. 이해를 쉽게 하기 위해 중요한 기반지식을 생략하지도, 최대한 자세하게 설명하기 위해 가독성을 포기하지도 않았습니다.

 

- 모든 챕터의 진행이 [개념->샘플 소스코드] 구성입니다. 모든 개념을 설명한 뒤에 적절한  타이밍(?)에 샘플코드가 나옵니다. 

 

- 챕터 중간중간 소켓프로그래밍 지식을 전달하며 수반되는 필요성에 대한 언급도 자주 합니다. 책 마지막에는 향후 학습 책도 추천합니다. 주니어 프로그래머에게는 단순히 주제에 대한 지식 전달 뿐만 아니라 앞으로 공부 방향성에 대한 조언은 굉장히 유익한 부분이라고 생각합니다.

 

- 리눅스, 윈도우 두 OS를 대상으로 설명하고 샘플코드를 첨부합니다. 때문에 설령 Window Socket 프로그래밍이 관심 있는 분이라고 할지라도 이 책을 통해 공부한다면 리눅스에서의 소켓프로그래밍의 공통점과 차이점을 이해하는 것은 되려 윈도우에서의 소켓프로그래밍을 제대로 이해하는데 도움이 될 거라고 생각합니다.

 

- 윈도우, 리눅스에서 소켓 프로그래밍에 사용되는 함수들 매개변수, 반환형 단위로 상세하게 설명합니다. 어떤 분야든 처음 공부할 때는 거시적은 설계보다는 세세한 사용법에 신경 쓰게 됩니다. 지극히 자연스러운 부분이고 세세한 사용법을 알아가는 과정도 거시적인 안목을 기르는 자연스러운 기본기가 되는 부분이라 생각합니다. 이점에서 이책은 함수 단위로 상세하게 설명하면서 초심자들의 가려운 부분을 시원하게 긁어주고 있지 않나 생각합니다.

 

- 동영상 강의도 책을 구입한 독자들 대상으로 12개월 무료로 제공됩니다. 아직 동영상 강의를 보지 않았지만 개인적으로 다양한 형태의 input이 중요하다고 생각하기 때문에 이점은 무조건 장점이라고 생각하는 부분입니다.

 

단점

- 제가 책을 읽은 2022 기준 샘플코드가 복붙으로 간단하게 실행되진 않습니다. 전 간단한 소켓 프로그래밍을 이미 작성 해본 경험이 있고 해당 책은 눈으로만 읽었기 때문에 이런 부분이 문제가 되진 않습니다. 하지만 샘플소스코드를 꼭 실행해보고 싶은 사람들에게는 조금은 불친절한 책이 될 수도 있을 것 같습니다. 하지만.. 대부분의 프로그래밍 책들이.. 책이 쓰인 시점과 책을 읽는 시점의 환경이 많아 달라진 탓에 제대로 돌아가지 않긴 합니다.. 

 

- 다루는 주제 범위가 굉장히 넓거나 굉장히 심도 있진 않습니다. 저 같은 경우에는 그래도 두세번은 더 읽은 만한 가치가 있다고 생각해서 책으로 소장하는 것에 대한 후회는 없지만, 어느정도 소켓프로그래밍 수준이 높은 분들은 서너번 읽게 될 책은 아닐 것 같습니다. 이건 독자들의 수준에 따라 다를 것 같습니다.

 

다루는 주제들

- 소켓,포로토콜에 대한 기본적인 개념

- 리눅스와 윈도우 소켓 모델 소개 

- 멀티프로세스, 멀티플렉싱, 멀티쓰레드

- tcp vs udp

- tcp의 half close

- 윈도우, 리눅스에서 소켓 프로그래밍에 사용되는 함수들

 

 

 

728x90

+ Recent posts