이 책을 읽는 법
같은 책이라도 사람마다 필요한 깊이가 다릅니다. 이 절에서는 독자의 상황에 맞는 읽기 경로와, 본문에서 코드를 표기하는 약속을 안내합니다.
본문과 심화의 구분
이 책의 PART는 두 종류입니다.
PART 01부터 PART 05까지는 본문입니다. 소켓의 기초부터 TCP, UDP, 동시 접속 처리, 실전 프로토콜 구현까지 이어집니다. 처음 배우는 사람도 따라올 수 있도록 평탄하게 설계했습니다. 이 다섯 PART만 끝내도 멀티 클라이언트 채팅 서버와 간단한 HTTP 서버를 직접 만들 수 있습니다.
제목에 별표가 붙은 PART 06과 PART 07은 심화 선택입니다. 1만 개의 동시 연결을 감당하는 고성능 서버, epoll과 io_uring 같은 현대적 기법, TLS 암호화와 프로덕션 수준의 견고성을 다룹니다. 깊이가 한 단계 올라가므로, 본문이 손에 익은 다음 도전하기를 권합니다. 당장 필요하지 않다면 건너뛰어도 본문 학습에는 지장이 없습니다.
학습자별 추천 경로
처음 배우는 학생이라면 PART 01부터 05까지 Python 예제 위주로 읽고, C 예제는 여유가 될 때 다시 보면 됩니다. 시스템 프로그래밍에 관심 있는 학생이라면 처음부터 C 예제를 함께 따라가고, PART 06의 epoll까지 도전해 보세요. 실무 개발자라면 PART 02의 견고성 부분과 PART 04 이후의 동시성, 그리고 PART 06과 07의 심화를 눈여겨보면 현업의 문제와 바로 연결됩니다.
코드 표기 약속
이 책의 코드 블록에는 몇 가지 약속이 있습니다.
코드 블록의 첫 줄에는 항상 파일 경로가 주석으로 적혀 있습니다. 새로 만드는 파일은 새 파일, 고치는 파일은 수정이라고 표시합니다. 그리고 코드 블록은 언제나 그 파일의 전체 내용을 담습니다. 일부만 잘라 보여 주지 않으므로, 블록을 통째로 복사하면 그대로 동작하는 파일이 됩니다.
이미 만든 파일을 다음 장에서 확장할 때는, 새로 추가되거나 바뀐 줄을 표시해 둡니다. 어디가 달라졌는지 한눈에 보이도록 하기 위해서입니다. 표시된 부분만 따라가면 코드가 어떻게 자라나는지 자연스럽게 이해할 수 있습니다.
실습 환경
본문 예제는 Python 3.13과 표준 C 컴파일러만 있으면 모두 돌아갑니다. 별도의 무거운 라이브러리는 거의 쓰지 않습니다. 이어지는 PART 01에서 운영체제별로 환경을 어떻게 준비하는지 안내하겠습니다.
이 PART의 마지막에 있는 업데이트 현황 페이지는 교재의 변경 이력을 기록하는 곳입니다. 학습 중 코드가 예상대로 동작하지 않는다면 그 페이지를 먼저 확인해 주세요.