기본 콘텐츠로 건너뛰기

도서 '실무에서 SQL을 다루는 기술' 리뷰

 "한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."


현직 게임 기획자이자 컴퓨터공학과 출신으로서 마크 사이먼의 '실무에서 SQL을 다루는 기술'이라는 책은 참 유용한 책이다. 사실 나는 기획자에게 SQL이 필수적이라는 신념을 늘 가지고 있었고, 컴퓨터공학을 전공하며 데이터베이스와 SQL의 중요성을 충분히 인지하고 있다. 하지만 이론적인 지식과 실제 게임 기획 현장에서의 활용 사이에는 늘 미묘한 간극이 존재했는데, 이 책이 바로 그 간극을 완벽하게 메워주었다고 생각한다. 마치 데이터베이스의 기본기를 다져놓은 내게, 이 책이 실전에서 데이터를 '요리'하는 노하우를 전수해준 셈이라고 볼 수 있다.

이 책을 통해 내가 가장 크게 얻은 것은, 이미 가지고 있던 SQL 지식을 '데이터 기반 의사결정'이라는 게임 기획의 핵심 역량으로 완벽하게 승화시킬 수 있었다는 점이다. 게임 기획은 매 순간 유저들의 행동 데이터, 아이템 판매량, 콘텐츠 이용률 같은 수많은 지표를 기반으로 이루어진다. 컴퓨터공학 전공자로서 SQL의 문법과 개념은 익숙했지만, 실제 게임 데이터의 복잡한 구조 속에서 어떻게 효율적으로 원하는 정보를 추출하고 분석할지에 대한 실질적인 고민이 많았다. 이 책은 그러한 고민을 해결해주며, 내가 직접 필요한 데이터를 뽑아서 분석하고, 더 나아가 문제의 원인까지 파악할 수 있는 능력을 길러주었다. 예를 들어, 특정 업데이트 이후 유저 이탈율이 높아졌을 때, 이탈 유저들의 플레이 패턴이나 과금 내역을 내가 직접 SQL로 분석해서 문제의 실마리를 찾는 과정은 이론이 실전에서 빛을 발하는 순간이었다.

또한, 개발팀과의 협업 효율성 측면에서도 이 책은 큰 기여를 했다. 이미 SQL의 기본을 알고 있었기에 개발자분들과 데이터 구조나 쿼리 요청에 대해 소통하는 데 큰 어려움은 없었지만, 이 책을 통해 얻은 깊이 있는 지식은 소통의 질을 한 단계 더 높여주었다. 보다 명확하고 구체적인 SQL 쿼리 아이디어를 제시하거나(물론 너무 나대면 안된다), 특정 데이터 추출 시 발생할 수 있는 성능 이슈를 미리 논의하는 등, 불필요한 오해나 반복적인 수정 요청 없이 한 번에 원하는 결과를 얻을 수 있게 되면서 전체적인 업무 속도가 빨라지는 걸 체감했다. 게임 지표나 서비스 로그를 분석할 때도 단순히 숫자를 보는 것을 넘어, 그 숫자가 의미하는 바를 깊이 이해하고 인사이트를 도출하는 데 큰 도움이 되었다. 새로운 콘텐츠나 시스템을 기획할 때도 데이터 모델링이나 테이블 설계를 기획 단계에서부터 더욱 효율적으로 고려할 수 있게 되었다.

이 책의 가장 큰 매력 중 하나는 바로 '무료 소스코드 다운로드'다. 컴퓨터공학 전공자로서 이론 학습만큼이나 실습의 중요성을 잘 알고 있는데, 책에서 설명하는 모든 예시 코드를 직접 내 컴퓨터에 내려받아 실습해볼 수 있다는 점이 정말 좋았다. 눈으로만 읽는 것과 직접 SQL 쿼리를 실행하고 결과를 확인하며 디버깅해보는 것은 학습 효과 면에서 차원이 다르니까. 마치 실제 게임 데이터베이스를 다루는 것처럼 연습할 수 있어서, 이론과 실무의 간극을 줄이는 데 정말 큰 도움이 되었다.


내가 이 책을 읽으면서 특히 '이 부분은 정말 실무에 바로 적용할 수 있겠다!'라고 느꼈던 5가지 부분을 좀 더 자세히 이야기해 보도록 하겠다.

첫 번째는 조인(JOIN)의 심층 이해와 활용이다. 컴퓨터공학에서 조인의 개념은 배웠지만, 실제 게임 데이터처럼 복잡하게 얽힌 테이블들을 어떻게 효율적으로 조인하여 원하는 정보를 뽑아낼지는 늘 고민이었다. 이 책은 INNER JOIN, LEFT JOIN 같은 다양한 조인 유형을 실제 예시와 함께 명확하게 설명해준다. 덕분에 '특정 아이템을 구매한 유저들의 평균 레벨은?', '특정 퀘스트를 완료한 유저들의 다음 행동 패턴은?' 같은 복잡한 질문에 대한 답을 데이터베이스에서 직접 찾아낼 수 있게 되었다. 조인만 제대로 이해해도 게임 데이터 분석의 절반은 먹고 들어간다고 생각한다.

두 번째는 서브쿼리(Subquery)와 공통 테이블 식(CTE)의 효과적인 사용이다. 복잡한 쿼리를 작성할 때 서브쿼리와 CTE를 어떻게 활용해야 가독성을 높이고 효율적으로 만들 수 있는지 알려주는데, 이게 정말 실무에서 유용했다. 예를 들어, '특정 기간 동안 접속한 유저 중 최고 레벨을 달성한 유저 목록'을 뽑을 때, CTE를 사용해서 단계를 나눠서 쿼리를 작성하니 훨씬 이해하기 쉽고 수정하기도 편하더라. 복잡한 분석 시나리오를 논리적으로 쪼개서 접근하는 방법을 배울 수 있었다.

세 번째는 내게 '데이터 분석의 신세계'를 열어준 윈도우 함수(Window Function)를 활용한 고급 분석이었다. 순위 매기기(RANK), 누적 합계(SUM OVER), 이동 평균(AVG OVER) 같은 기능들을 배우면서, 게임 내 랭킹 시스템을 분석하거나, 특정 아이템의 누적 판매량 추이를 보거나, 유저들의 일일 접속자 수의 장기적인 트렌드를 파악하는 데 정말 큰 도움이 되었다. 윈도우 함수는 게임 지표를 깊이 있게 이해하고, 데이터 기반의 이벤트나 업데이트를 기획하는 데 결정적인 역할을 했다.

네 번째는 데이터 정제 및 변환 기법이었다. 실제 게임 데이터는 생각보다 지저분할 때가 많다. 중복되거나, 누락되거나, 형식이 맞지 않는 데이터들 말이다. 이 책은 이런 불완전한 데이터를 어떻게 깔끔하게 만들고 원하는 형식으로 변환하는지 다양한 SQL 기법으로 알려주었다. 덕분에 내가 직접 데이터를 '요리'해서 분석에 적합한 형태로 만들 수 있게 되었고, 잘못된 데이터로 인해 분석 결과가 왜곡되는 일을 피할 수 있었다.

마지막으로 다섯 번째는 성능 최적화와 인덱스(Index)의 이해다. 아무리 멋진 쿼리라도 느리면 소용없다. 이 책은 쿼리 성능을 어떻게 최적화하고, 인덱스가 왜 중요한지에 대해 깊이 있게 다루더라. 대규모 유저 데이터를 다루는 게임의 특성상, 최적화되지 않은 쿼리는 서버에 큰 부담을 주거나 분석 시간을 한없이 늘릴 수 있다. 인덱스의 개념을 이해하고 나니, 개발팀과 데이터베이스 설계에 대해 논의할 때 훨씬 더 건설적인 의견을 제시할 수 있게 되었고, 게임 서비스의 안정성과 데이터 분석 효율성을 높이는 데 내가 기여할 수 있다는 자신감이 생겼다. (다시 한 번 말하지만 나대면 안된다)


결론적으로, 마크 사이먼의 '실무에서 SQL을 다루는 기술'은 컴퓨터공학적 배경을 가진 게임 기획자에게도 SQL의 이론적 지식을 실제 업무에 완벽하게 접목시킬 수 있도록 돕는 최고의 지침서다. 단순히 SQL 문법을 넘어, 실제 데이터를 다루고 분석하며 인사이트를 도출하는 과정을 체계적으로 배울 수 있었다. 게임 기획자로서 데이터에 대한 깊이 있는 이해와 실질적인 활용 능력을 갈망한다면, 이 책은 그 갈증을 해소하고 한 단계 더 성장할 수 있는 최고의 기회가 될 것이라고 생각하며 추천한다!


#한빛미디어 #실무에서SQL을다루는기술 #SQL입문 #SQL실무


댓글

이 블로그의 인기 게시물

화장실 문이 잠겼을 때 여는 방법

10일. 손님이 왔다가 갔다. 손님이 화장실을 사용했는데, 나중에 손님이 집에 간 뒤 들어가려고 보니까 화장실 문이 안에서 잠겼다. 이런 망할. 일단 급한대로 가까운 지하철역 화장실에 다녀왔다. 현관문에 붙어 있는 열쇠상에 다 전화를 돌렸지만, 새벽 한 시에 와 줄 수 있는 사람은 아무도 없었다. 그래서 그냥 슈퍼가서 손톱가는 것을 사와서 집에 있는 클립과 함께 진지하게 화장실 문따기를 시작했다. 우리집 화장실은 안쪽으로 열리는 타입이라 턱이 있어서 난이도가 좀 있었다. 손톱 가는 것과 클립 펼친 것과 제본 표지였던 플라스틱 접은 것으로 사투 끝에 문을 여는데에 성공했다. 문을 열고 원인을 확인해보니, 보통은 화장실 문은 잠그고서 안에서 문고리를 돌리면 같이 열리는데, 이 문은 안에서 문고리를 돌리면 열리기는 하는데 잠금은 안 풀리는 것이다. 그래서 닫힌 뒤에 밖에서는 열리지 않는 문제가 발생한다. 앞으로 손님이 올 때는 이점을 꼭 당부를 드려야겠다. 진짜 식겁했다. 아무튼 문을 따고 나서 이쪽으로 전직을 해야하는 걸까나 라는 그런 생각을 했다. ㅋㅋㅋ

샷시문, 유리문, 현관문 방화문으로 교체비용, 방화문으로 바꾸는 가격

샷시문 방화문으로 교체. 유리문 방화문으로 교체. 현관문 철문 교체. 현관문 철문 가격. 내가 왜 이런것을 알아보았느냐면, 우리집에는 현관문이 2개가 있다. 1층 현관문과 2층 현관문. 2층 현관문은 보시다시피 알루미늄 샷시에 유리가 끼워져있는 매우 부실한 현관문이다. 물론 1층에도 현관문이 하나 더 있기 때문에 크게 신경쓸 필요는 없지만. 그래도 여기는 지금 안락동집처럼 외부 창고같은 것이 없기 때문에 택배를 받기가 애매해서, 부피가 큰 택배를 받을때 1층 현관문을 열어두기 위해 2층 현관문을 보강할 필요가 있었다. 우리집 문의 크기는 아래와 같다. (cm) 문틀포함 문높이 171 / 문틀포함 문폭 76 문틀비포함 문높이 172 / 문틀비포함 문폭 69 문틀면 폭 5~6 문윗 스틸 폭 10 / 문옆 스틸폭 7 / 문가운데 스틸폭 10 / 문아래 스틸폭 50 문윗유리 가로 54 / 문윗유리 세로 69 문아랫유리 가로 54 / 문아랫유리 세로 30 안락동집 근처 문마트라는 곳에 가서 사이즈와 사진을 보여주고 견적을 받았다. 지식인은 물론 카페와 블로그, 각종 사이트 등에서 나와 같은 경우를 찾아 보고 엄청나게 알아보았으나, 다들 교체비용이 40~50만원이 든다고 하더라. 집근처에 문마트가 있다는 걸 떠올리고 직접 견적을 내러 가보니 문틀 포함해서 시공비까지 27만원이라고 했다. 샷시문 철문으로 교체, 현관문 철문으로 교체하는게 27만원이면 충분하다. 주문하고 맞춤 제작이 들어가기 때문에 시공 완료까지 일주일정도 소요가 된다고 한다. 나 말고도 막막하게 인터넷으로 알아보는 사람들을 위해서 정보 공유차 글을 올려본다. 불안에 떨지말고, 문을 철문, 방화문 교체하는거 크게 비싸지 않다. 한달 월세만큼이면 충분하니 집주인하고 상의해보거나 해서 부산분이라면 교체하는 것도 좋을 것 같다. 물론 철문이라고 해도 문에 틈이 있으면 장도리로 뚫리고, 홀커터로 털릴 수도 있는거라 완전한 안전지대는 없지만, 그래도 마음은 편안하지 않은가. 더...

천주교 성경책 구입

수요일 교리를 마치고도 봉사자님께 질문을 드렸었지만, 천주교는 개신교와는 성경이 다르다. 사실 나는 9월 말에 프리마켓에서 중고로 구입한 '개신교 성경책'이 있다. 그때만해도 내가 몇주 뒤에 성당에 다니게 될 거라고는 상상조차 하지 않았으니까, 교양서 읽듯이 읽어보려고 샀었다. 하지만 '우리말 성경'이라고 해놓고서 번역이 엉망진창이라 이해하려고 노력하다가 포기했다. 제대로 보지 못하고 구석에 처박힌 개신교 성경은 뒤로하고, 천주교 성경이 필요했다. 인터넷에 검색을 해보니 신자의 가정에 비치해야할 물건에는, 성경책, 가톨릭기도서, 성가집, 십자고상, 성모상, 묵주 가 있다고 했다. 사실 교재 공부를 할 때도 성경이 필요해서 성경책을 하나 구입하려고는 했는데, 인터넷으로 찾아보니 달랑 대,중,소에 1단, 2단 이렇게 쓰여져 있는데 무슨 소린지 도통 알 수가 없었다. 지퍼가 있고 없고만 알아들을 수 있었다. 아무래도 곁에 두고 자주 읽을 책이니 직접 보고 결정하기로 마음 먹었다. 천주교 수영성당으로 향했다. 2단으로 된 성경책을 사가지고 왔다. 재미있게도 이 성경책은 모든 곳에서 판매가가 29,000원이다. 오프라인이든 온라인이든. 신기한 일이다. 세로 22cm, 가로는 15.5cm 정도 된다. 2단이지만 폰트가 깔끔하고 읽기 편하게 되어 있다. 굵기도 적당해서 수시로 펴고 읽기에 좋았다. 개신교 성경처럼 화려하지도 장식이 있지도 않지만, 표지는 감촉이 좋고 책장 넘김도 좋고 책갈피 줄도 두 줄이나 있다. 크기도 딱 적당하다. 매우 마음에 든다. 이렇게 나의 첫 신앙물품은 당연하게도 성경책이 됐다. 교회 공용으로 사용하는 성경이 있다니. 이것도 천주교라서 가능한 걸까. 내가 구입한 책은 2017년 5월 1일에 재판된 책이다. 이제 공부 준비는 충분한 것 같다. 책상 위 나와 가장 가까운 위치의 책꽂이에 성경책과 교재를 꼽아 두었다. 언제라도 꺼내서 볼 수 있도록. 사실 성경책은 그날의 독서에...