brunch

[서평] SQL 실전 트레이닝

3주 만에 완성하는 실전 SQL 학습 가이드

by 이건승
9791165923273.jpg
이 책은 출판사 비제이퍼블릭으로부터 도서를 제공받아 작성한 글입니다


SQL을 배우고 싶을 때 서점에 가보면 정말 많은 책들이 눈에 띕니다. 그런데 막상 펼쳐보면, 실무에 바로 적용할 수 있는 책은 의외로 많지 않습니다.


이 책 『SQL 실전 트레이닝』은 기존의 책들과 다르게 단순히 문법을 나열하는 것이 아니라, 실제 현장에서 바로 써먹을 수 있는 예제와 흐름으로 구성되어 있어 마치 '실전용 바이블'처럼 느껴졌습니다.


특히 SQL을 처음 배우는 사람뿐 아니라, "나는 기본은 알지만 실무 감각을 더 키우고 싶다"는 분들에게도 든든한 가이드가 되어줄 수 있는 책이라고 생각합니다.



이 책을 효과적으로 학습할 수 있는 3주 플랜


IMG_0136.HEIC


리뷰를 쓰면서, '내가 이 책으로 SQL을 처음부터 다시 공부한다면 어떻게 학습하는 게 가장 효과적일까?'라는 생각을 해보았습니다.


책은 총 18가지 유형과 3개의 SQL 문제 세트로 구성되어 있습니다. 그래서 하루에 하나씩 유형을 학습하고, 마지막에는 하루에 하나의 문제 세트를 푼다면 딱 21일, 즉 3주 플랜이 완성됩니다. 이렇게 따라가다 보면 자연스럽게 SQL의 기본기부터 실전 감각까지 차근차근 익힐 수 있을 것입니다.


IMG_0126.HEIC


책의 서문에도 나오듯, 이 책은 SELECT, FROM, WHERE 같은 가장 기초적인 SQL 문법을 따로 설명하지 않습니다. 그래서 완전 초심자라면 다소 낯설게 느낄 수도 있습니다. 하지만 기본적인 SQL 구조를 인터넷 자료를 통해 한 번만 훑어보면 충분히 따라갈 수 있습니다. 오히려 기본 지식을 조금이라도 갖춘 상태라면, 이 책을 통해 실전 SQL 감각을 빠르게 익히는 데 더 효과적일 것입니다.


게다가 이 책에서 다루는 모든 유형은 저자의 깃허브(GitHub)를 통해 예제 코드가 함께 제공됩니다. 따라서 책만 보고 막히더라도 실제 코드를 직접 실행하고 확인할 수 있어, 학습 과정에서 큰 어려움 없이 따라갈 수 있습니다.

스크린샷 2025-09-07 오전 9.31.24.png 예제 실습 코드 Github



MySQL 실습 환경 구축부터 Github 연동



IMG_0127.HEIC
IMG_0128.HEIC
실습 환경 구축부터 Github 연동까지 단계별로 안내

이 책은 MySQL 실습 환경 구축부터 GitHub 연동까지 단계별로 안내해 주어, 학습자가 실제로 SQL을 실행하고 관리하는 감각을 자연스럽게 익힐 수 있다는 점이 큰 장점입니다.


스크린샷 2025-09-07 오전 9.18.35.png
스크린샷 2025-09-07 오전 9.22.06.png
스크린샷 2025-09-07 오전 11.59.46.png
책의 설명에 따라 실습 환경과 Github 연동 진행


학습 방법 추천


책에서 다루는 각 유형별 학습 방법을 간단히 소개해보겠습니다. 예를 들어, 유형 7에서는 MIN, MAX 함수를 다룹니다. 이 두 함수는 실전에서도 굉장히 자주 쓰이는데요, 대표적으로 사용자의 거래 내역 데이터에서 첫 구매일이나 가장 최근 구매일을 추출할 때 활용됩니다.

IMG_0137.HEIC

책에서는 우선 MIN, MAX 함수의 개념을 도식화 자료로 쉽게 설명해 줍니다. 이어서 이 함수를 적용할 때 필요한 기본적인 쿼리 문법을 함께 제시해 주어, 독자가 바로 실습으로 이어갈 수 있도록 돕습니다.


저자의 GitHub에 방문하면, 해당 유형의 코드를 확인할 수 있습니다. 우선 실습에 필요한 데이터 생성(테이블 생성 및 데이터 입력) 코드를 실행합니다. 그다음, 첫 번째 문제에 대해서 앞서 소개된 기본 문법을 참고하여 요구사항에 맞는 쿼리를 직접 작성해 봅니다. 마지막으로 작성한 쿼리 결과가 책에서 제시한 예시와 일치하는지 비교해 보면 됩니다.

스크린샷 2025-09-07 오후 12.12.13.png
스크린샷 2025-09-07 오후 12.09.52.png
실습을 위한 Setting 코드 실행

MIN, MAX 첫 번째 질문은 각 플레이어(player_id)의 첫 로그인 날짜(first_login_date)를 조회하는 문제입니다. 요구사항이 ‘각 플레이어의 최초 로그인 날짜’이므로, player_id로 GROUP BY 한 뒤 MIN 함수를 사용해 event_date의 최솟값을 구하면 각 플레이어별 첫 로그인 날짜를 얻을 수 있습니다.

IMG_0138.HEIC
스크린샷 2025-09-07 오후 12.21.36.png
주어진 문제를 확인 후에 직접 실습을 통해 쿼리를 작성합니다


해답과 자세한 설명은 책에 잘 나와 있지만, 정답을 보기 전에 반드시 스스로 쿼리를 작성해 보는 것을 권합니다. 또한 헷갈리기 쉬운 포인트(예: GROUP BY 대상, 컬럼 별칭 등)는 책의 해설(오답 코드와 틀린 이유)을 통해 확인해 보면 큰 도움이 됩니다.

IMG_0139.HEIC
IMG_0140.HEIC
책에서는 문제 풀이뿐만 아니라 헷갈리기 쉬운 포인트까지 함께 짚어주어, 학습자가 이해를 깊게 다질 수 있도록 도와줍니다


또 하나 이 책의 특징은 문제 풀이 과정에서의 ‘중간 코드’도 함께 설명한다는 점입니다.


예를 들어, NOT IN 유형에서 ID가 2인 고객(referee_id)이 추천하지 않은 고객(customer_id)의 이름(name)을 조회하는 쿼리를 작성한다고 해봅시다. 문제 풀이의 흐름은 먼저 referee_id = 2인 고객을 찾고, 그 결과를 NOT IN을 통해 전체 고객 목록에서 제외하는 순서로 진행됩니다.


이때 책에서는 중간 단계로, 우선 referee_id = 2인 고객을 찾는 쿼리를 작성해 본 뒤, 이를 서브쿼리로 감싸 NOT IN 절에 넣어 최종 해답을 완성하는 과정을 보여줍니다.


IMG_0141.HEIC
스크린샷 2025-09-07 오후 12.54.12.png
문제 풀이에 필요한 중간 코드를 함께 설명


끝으로, 이 책은 이런 분들에게 추천합니다


실무에서 SQL을 사용해야 하지만 아직 익숙하지 않아 어려움을 겪는 분들이라면 이 책을 강력히 추천합니다. 또한 SQL 코딩 테스트를 준비하면서 다양한 함수 활용을 연습하고 싶은 데이터 분석가 분들에게도 유용할 것입니다.


사실 SQL을 ‘내 것’으로 만드는 가장 좋은 방법은 실무에서 많이 써보는 것입니다. 하지만 초반에는 실제로 쓸 기회가 적거나, 함께 알려줄 사수가 없을 수 있습니다. 그럴 때 이 책은 든든한 길잡이가 되어줍니다. 이 책을 통해 스스로 학습하고, 실무에서 SQL을 활용해 나가면서 점차 자신만의 무기로 만들기를 바랍니다.

keyword