Post List

[네트워크 프로그래밍] 열혈 TCP/IP 1장 ~ 9장 정리

[네트워크 프로그래밍] #1. 열혈 TCP/IP 1~9 정리


학교에서 수강하지 않은 과목인 네트워크 프로그래밍을 따로 독학하고 있습니다.
네트워크 프로그래밍의 '네'도 모르는 상태로 스마일게이트 서버개발캠프 4기에 참여하게 되었고 온라인 게임을 개발하게 되었는데 정말 하나도 모르는 상태에서 어찌어찌 온라인 게임을 만들긴 했습니다. 하지만 그 과정에서 정말 전공 지식에 대한 부족함을 많이 느꼈고, 전공강의를 수강하지 않았던 자신을 많이 원망하기도 했습니다 ㅋㅋ.

그래서 코로나19로 개강도 미뤄진 김에, 네트워크 프로그래밍 서적 1권을 쭉 보기로 하였습니다.
선정한 책은 [윤성우 열혈 TCP/IP 소켓 프로그래밍] 입니다.
학교 선배님들도 이 책은 꼭 보라고 말해 주었고, 캠프장님도 추천해주신 책 입니다. 아무리 클라이언트 지망이라도, 소켓 프로그래밍은 어떤식으로든 알고는 있어야 할 것 같습니다.

일주일간 책의 1장부터 9장까지 쭉 읽어보았습니다. 다행히 2달동안 서버개발캠프에서 헛짓을 한 것은 아니었던것 같습니다. 저는 윈도우 환경에서 소켓 프로그래밍을 했었는데, 그 과정에서 구글링을과 다수의 실패로 구현했던 내용이 1~9장에 설명되어 있었습니다. 따라서 가벼운 마음으로 쭉 읽어보았고, 도중에 모르는 부분이 나왔을 경우 유심히 보는 식으로 공부했습니다.

예를들면, Ch7, 우아한 연결종료 챕터에서 Half-close 부분입니다.
그저 소켓을 닫기만 하면 되는줄로 알고 있었는데, 그것이 아니라는 점. 예외(상대는 데이터를 더 보낼게 남았는데 그냥 끊는 경우 데이터 손실)처리가 네트워크 프로그래밍에서 굉장히 중요하다는 점을 유심히 보았습니다.

Ch10 부터는 멀티 프로세스 기반의 서버구현을 다룹니다.
서버개발캠프에서 했던 것은, 클라이언트 단에서만 했기에 싱글 프로세스라고 볼 수 있습니다. 이 부분에 대해 아쉬웠는데, 10장부터 그 아쉬움을 해소할 수 있을것 같습니다.

댓글