군 복무 이전까지 저는 주로 Game Client 개발에만 집중해 왔습니다. Game Server의 중요성 자체는 인지하고 있었지만, 상대적으로 진입 장벽이 높고 학습 부담이 크다는 이유로 매번 우선순위에서 밀려나곤 했습니다.
그러던 중 군 전역 후 비교적 시간적 여유가 생기면서, 그동안 미뤄두었던 Game Server 분야를 본격적으로 공부해보기로 결심했습니다. 단편적인 지식이나 파편화된 자료보다는, 체계적인 흐름을 따라가며 학습하고 싶다는 생각이 들었고, 그 과정에서 AI의 도움을 받는 것도 분명 효과적인 방법이지만, 기본기를 탄탄히 다질 수 있는 기준점이 필요하다고 느꼈습니다.
그래서 여러 자료를 찾아보던 중, 평점이 가장 좋은 이 책을 구매하게 되었습니다.
이 책은 제게 있어 Game Server 학습의 ‘내비게이션’ 같은 역할을 해주었습니다.
Game Server를 집중적으로 다루는 책 자체가 많지 않다 보니, 무엇을 어떻게 공부해야 할지 막막함을 느낄 때가 많았는데, 이 책은 그런 상황에서 전체적인 로드맵을 제시해 주는 가이드가 되어주었습니다.
특히 인상 깊었던 점은, 책 한 권으로 모든 것을 끝내려 하지 않는다는 점입니다.
각 주제마다 ‘더 읽을거리’, 저자 GitHub 등의 자료가 함께 제공되어 있어, 단순히 내용을 읽는 데서 그치지 않고 코드를 직접 보며 이해를 확장할 수 있었습니다. 덕분에 Game Server라는 큰 주제를 입체적으로 바라볼 수 있었고, 스스로 학습을 이어갈 수 있는 방향성을 잡는 데 큰 도움이 되었습니다.
Game Server 공부를 이제 막 시작했거나, 어디서부터 파고들어야 할지 고민하고 있다면 이 책은 좋은 출발점이 될 수 있다고 생각합니다.
장점에서 언급했듯이, 이 책은 Game Server 학습의 네비게이션 역할을 훌륭하게 수행합니다. 다만 그만큼 각 주제에 대해 깊이감이 다소 아쉽게 느껴지는 부분도 있었습니다.
Game Server는 잘 알려져 있듯이, 단일한 기술로 완성되는 영역이 아닙니다. OS, Network, DB 등 여러 분야의 지식이 유기적으로 쌓여야만, 24시간 안정적으로 동작하는 서버를 만들 수 있습니다. 그런 관점에서 이 책을 덮고 나서
“그래서 IOCP가 무엇이고, 직접 구현할 수 있느냐?”라는 질문을 받는다면, 솔직히 저는 쉽지 않을 것 같다고 답할 것 같습니다.
물론 이는 책의 단점이라기보다는, 책의 목적과 분량에서 비롯된 한계에 가깝다고 생각합니다. Game Server를 처음 접하는 독자의 이해를 돕기 위해 많은 내용을 추상화하다 보니, 불가피하게 생길 수밖에 없는 부분이기도 하고요
저 역시 이 책 한 권으로 끝내기보다는,『TCP/IP 소켓 프로그래밍』, 『Real MySQL 과 같은 책을 추가로 구매해 관련 분야를 병행 학습하고 있습니다. 이 책은 “전부를 알려주는 책”이라기보다는, “무엇을 더 공부해야 하는지 알려주는 책”에 가깝다는 인상을 받았습니다.
또 하나 아쉬웠던 점은 조각 코드 위주의 설명입니다. 조각 코드가 반복되다 보니 오히려 전체 맥락에서의 깊이감이 줄어든 느낌을 받았습니다. 실제로 TCP/IP Server & Client을 만들 때 "개념은 알고 있는데 어떻게 작성해야지" 라는 생각이 들었습니다.
실제로 저자 GitHub의 전체 코드를 처음 접했을 때
라는 질문이 연속적으로 떠올랐고, 코드를 따라가기보다 다시 기본 개념으로 돌아가야 하는 상황이 자주 발생했습니다. 아마 저뿐만 아니라, Game Server를 처음 접하는 분들 역시 비슷한 감정을 느끼지 않을까 생각합니다.
결론적으로 이 책은 Game Server에 처음 입문하는 사람에게 매우 적합한 책이라고 생각합니다. 프로그래밍 학습에서 ‘나무를 보기 전에 숲을 먼저 보는 것’이 얼마나 중요한지 잘 알고 있기에, 이 책은 그 역할을 충실히 수행했다고 느꼈습니다.
Game Server라는 거대한 영역 앞에서 막막함을 느끼기 쉬운 초심자에게, 이 책은 세부 구현을 모두 해결해 주기보다는 전체 구조와 학습 방향을 먼저 제시해 주는 길잡이가 되어줍니다. 덕분에 이후 어떤 주제를 더 깊게 파고들어야 할지, 스스로 판단할 수 있었습니다.
Game Server를 처음 접하며 방향성을 잡고 싶은 분들에게, 이 책은 좋은 출발점이 되어줄 수 있는 입문서라고 생각합니다.
저는 이 책을 내용을 하나하나 꼼꼼하게 파고들기보다는, 전체를 가볍게 읽은 뒤 다른 서적이나 공식 문서를 통해 내용을 구체화하는 방식으로 활용했습니다. 필요할 때는 직접 프로그래밍을 해보며 이해를 보완했고, 그 과정에서 책의 역할이 더욱 분명해졌습니다.
그래서 이 책이 “하루 만에 다 읽을 수 있는 분량이다”라는 느낌보다는, 이미 해당 개념을 알고 있다면 “아, 이건 당연하지” 하고 자연스럽게 넘어갈 수 있는 구조라는 인상을 받았습니다. 깊은 설명을 요구하기보다는, 개념을 빠르게 환기시키고 다음 학습으로 이어지게 해주는 책에 가깝다고 느꼈습니다.
저 개인적으로 가장 인상 깊었던 부분은 『4장 게임 서버와 클라이언트』, 『5장 게임 네트워킹』이었습니다. 그동안 게임을 하면서 렉이 걸리면 단순히 “컴퓨터 사양이 안 좋아서 그렇겠지”라고만 생각해 왔는데, 이 책을 읽으면서 생각이 꽤 많이 바뀌었습니다.
물론 컴퓨터 사양이 중요한 요소인 것은 맞지만, 그 외에도 게임 서버와 클라이언트 내부에서 수많은 기술들이 복합적으로 맞물려, 플레이어의 경험을 해치지 않기 위해 얼마나 많은 고민과 설계가 들어가는지 느낄 수 있었습니다. 평소에는 당연하게 느꼈던 부드러운 플레이가 사실은 수많은 선택과 타협 위에 만들어진 결과라는 점이 인상적이었습니다.
또 하나 좋았던 점은, 책 전반에서 마치 시니어 게임 서버 개발자가 옆에서 설명해주는 듯한 느낌을 받았다는 것입니다. 단순한 개념 설명을 넘어서, “왜 이렇게 설계하는지”, “현업에서는 이런 점을 고려한다”는 시선이 자연스럽게 녹아 있어 읽는 내내 흥미를 잃지 않고 볼 수 있었습니다.
그래서 이 두 장은 단순히 지식을 얻는다는 느낌보다는, 게임 서버를 바라보는 관점 자체를 넓혀준 파트로 기억에 남았습니다.