C++ IOCP 기반 서버에 MySQL을 연동해 직접 서버를 구현하는 과정에서, 저는 SQL 질의 구문에 대한 지식이 전혀 없는 상태였습니다.
처음에는 『Real MySQL 8.0』으로 학습을 시작했지만, 이 책은 MySQL의 내부 구조와 심화 개념까지 다루는 만큼 SQL 기초가 부족했던 저에게는 다소 어렵게 느껴졌습니다. 기본적인 SELECT, JOIN, GROUP BY 같은 질의 구문조차 익숙하지 않은 상태에서 읽기에는 진입 장벽이 있었습니다. 그래서 SQL 입문서로 평가가 좋은 다른 책을 구매해 처음부터 다시 학습을 시작했습니다.
해당 책은 SQL을 처음 접하는 사람의 눈높이에 맞춰 매우 쉽게 설명되어 있었고, 저자분께서 유튜브 강의를 통해 추가 설명까지 제공해 주셔서 이해 속도를 크게 높일 수 있었습니다. 단순히 문법을 암기하는 것이 아니라, 왜 이렇게 작성하는지를 자연스럽게 이해할 수 있도록 구성되어 있어 초심자에게 특히 도움이 되었습니다.
그 결과, 짧은 기간 안에 SQL 질의문 작성에 큰 어려움이 없어졌고, C++ 게임 서버 개발을 진행하는 데 필요한 기초 체력을 다질 수 있었습니다. 게임 서버를 공부하는 입장에서, 처음부터 DB 내부 구조나 튜닝 이론에 깊이 들어가기보다는 “SQL을 자유롭게 작성할 수 있는 상태”를 만드는 것이 우선이라는 점을 깨닫게 되었습니다.
저에게는 이 책이 그 출발점을 만들어 준 좋은 선택이었다고 생각합니다.
해당 책은 이론 설명 → 1분 퀴즈 → 마무리 → 셀프 체크의 단계로 구성되어 있습니다.
먼저 이론 설명 파트에서 인상 깊었던 점은, 기존의 많은 이론서들이 긴 글 위주의 설명과 상대적으로 적은 이미지 구성으로 되어 있어 이해하는 데 시간이 꽤 걸렸던 것과 달리, 이 책은 입문서에 걸맞게 1~2줄의 짧고 핵심적인 설명 후 곧바로 테이블 이미지로 보완해 준다는 점이었습니다.
덕분에 글을 오래 곱씹지 않아도 시각적으로 바로 이해할 수 있었고, 전체적인 구성도 블로그 형식의 깔끔한 마크다운 스타일이라 읽는 과정 자체가 굉장히 편안했습니다.
이어지는 1분 퀴즈와 마무리 정리 파트는 방금 학습한 내용을 다시 한 번 상기시켜 주는 역할을 했습니다. 단순히 읽고 넘어가는 것이 아니라, 스스로 생각해 보게 만드는 구조라 이후 셀프 체크 문제를 풀 때 큰 도움이 되었습니다.
마지막 셀프 체크는 단순히 눈으로만 보는 것이 아니라 직접 SQL을 타이핑하며 풀어보는 과정이 실전 감각을 기르는 데 큰 도움이 되었습니다. 한 번 읽고 끝나는 학습이 아니라, 직접 손으로 작성해 보며 체득할 수 있는 구성이라는 점이 특히 만족스러웠습니다.
전체적으로 이 책은 “읽기 쉬운 입문서”에 그치지 않고, 이해 → 복습 → 적용의 흐름을 자연스럽게 만들어 주는 구조를 갖춘 교재라고 느꼈습니다.
입문서이기에 전체적인 개념 이해에는 매우 도움이 되었지만, 깊이 있는 실무 영역까지 다루기에는 한계가 있습니다. 이 책을 읽고 게임 서버에서 MySQL을 사용할 수 있느냐고 묻는다면,
“기본적인 CRUD 작성은 가능하지만, 실전 서버 운영을 위해서는 보충이 많이 필요하다”라고 답할 것 같습니다.
DB는 단순 조회 도구가 아닙니다. 동시에 수많은 유저가 접근하는 환경에서 데이터 정합성을 보장해야 합니다. 예를 들어 아이템 지급, 골드 차감, 강화 성공/실패 처리, 퀘스트 완료 보상 지급 기타 등등
이러한 로직은 반드시 원자성(Atomicity)을 보장해야 합니다. 중간에 하나라도 실패하면 전체가 롤백되어야 하며, 동시 접속 상황에서 데이터 충돌이 발생하지 않도록 해야 합니다. 따라서 게임 서버에서는 다음과 같은 내용이 필수적으로 필요합니다.
게임 서버에서는 단순히 콘솔에서 SQL을 실행하는 것이 아니라, C++ 서버 코드 내부에서 MySQL과 안전하게 연동해야 합니다.
입문서는 SQL 문법 위주로 구성되어 있어, 실제 서버 코드와 연결되는 구조적인 부분은 다루지 않습니다.
결론적으로 이 책은 MySQL을 처음 접하는 입문자에게 매우 적합한 교재라고 생각합니다.
SQL 문법과 기본 개념을 부담 없이 익히기에는 충분히 좋은 출발점이 되어 줍니다.
하지만 이 책을 완독했다고 해서 MySQL을 실제 프로젝트에 곧바로 적용하기에는 다소 부족한 부분이 있습니다. 특히 트랜잭션 심화, 동시성 제어, 인덱스 최적화, 서버 연동 구조와 같은 실무 영역은 추가 학습이 필요합니다.
실제 서비스나 게임 서버에 MySQL을 적용하기 위해서는 중급자 이상의 내용까지 학습하며, 성능과 안정성을 고려한 설계 능력을 반드시 보완해야 한다고 느꼈습니다.
저는 이 책을 약 2~3일 정도의 기간 동안 빠르게 읽어 내려갔습니다. 전체적으로 난이도가 높지 않아 읽는 동안 크게 막히거나 이해가 되지 않는 부분은 거의 없었습니다.
특히 설명이 간결하고 예제가 직관적으로 구성되어 있어, 흐름이 끊기지 않고 자연스럽게 학습을 이어갈 수 있었습니다. 셀프 체크 문제는 시간이 다소 걸리더라도 그냥 넘어가지 않았습니다. SQL에 익숙해지는 것이 목적이었기 때문에, 눈으로만 확인하는 것이 아니라 직접 쿼리를 타이핑해 보며 감각을 익혀 나갔습니다.