메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

대여 가능

전자책

종이책

실무에서 SQL을 다루는 기술

PostgreSQL부터 MySQL, SQLite까지

  • 저자마크 사이먼
  • 번역조은옥
  • 출간2025-06-30
  • 페이지488 쪽
  • eISBN9791169219631
  • 물류코드11963
  • 난이도
    초급 초중급 중급 중고급 고급
4.5점 (8명)
좋아요 : 7

“쿼리는 아는데, 실무 적용이 어렵다면?”
현업 시나리오를 따라가며 실전 감각을 키우는 SQL 설계, 최적화, 분석 노하우


이 책은 온라인 서점 운영이라는 시나리오를 바탕으로, 하나의 샘플 데이터베이스를 중심에 두고 고객 등록부터 장바구니, 주문 및 결제, 배송까지의 실무 흐름을 따라 SQL을 단계적으로 익히는 실전 중심의 구성을 따릅니다. 기본 SQL 문법을 짚고 넘어간 뒤, 효율적인 데이터베이스 설계와 고급 쿼리 작성법, 테이블 간 관계 설정, 공통 테이블 표현식(CTE), 서브쿼리, 윈도우 함수 등 실전에 바로 적용할 수 있는 SQL 활용법을 폭넓게 다룹니다. SQL 기초를 다진 사용자라면, 이 책을 통해 데이터 추출, 관리, 분석 역량을 한 단계 더 끌어올리세요!
 

주요 내용

  • [DB 설계와 성능 최적화]: 효율적인 데이터베이스 설계를 위한 테이블 구조 개선 및 인덱스 최적화 기법
  • [고급 SQL 실전 활용법]: CTE, 서브쿼리, 윈도우 함수 등 고급 SQL 기능의 실전 활용법
  • [테이블 관계와 JOIN 활용]: 테이블 간 관계를 설정하여 복합 데이터를 다루는 방법
  • [데이터 분석 및 자동화 전략]: 뷰와 집계 쿼리를 이용한 데이터 분석 및 결과 저장 전략

 

마크 사이먼 저자

마크 사이먼

수학 교사로 커리어를 시작했지만, 고등학생보다 컴퓨터를 다루는 것이 훨씬 쉬워 IT 컨설팅 및 교육 쪽으로 빠르게 방향을 전환했습니다. 여러 프로그래밍 및 코딩 언어를 다뤄왔으며 현재는 웹 개발과 데이터베이스 언어에 집중하고 있습니다. 일을 하지 않을 땐 주로 음악을 듣거나 악기를 연주하고, 책을 읽거나 그냥 돌아다닙니다.

조은옥 역자

조은옥

‘관계(Relations)’의 가치를 커뮤니케이션 전략에 담아내는 IT 종사자. 경영과 PR(Public Relations)을 전공하고 광고회사에서 디지털 마케터로 첫 커리어를 시작했다가, 세상의 변화를 이끌어가는 IT 기술을 동경해 IT 업계로 발을 들였습니다. 디벨로퍼 릴레이션(Developer Relations)을 통해 국내외 IT 기업의 기술조직에서 개발자의, 개발자에 의한, 개발자를 위한 전략을 고민해 왔으며, 현재는 개발자뿐만 아니라 전 직군 구성원을 대상으로 일 문화와 소통 경험을 만들며 조직문화를 가꾸고 있습니다. 번역서로는 『오라클 레벨업』, 『기업의 성공을 이끄는 Developer Relations』(이상 한빛미디어)가 있습니다.

 

CHAPTER 01 준비하기
_1.1 샘플 데이터베이스에 대해
_1.2 설정하기
_1.3 알 수도 있는 내용

 

CHAPTER 02 테이블 디자인 작업
_2.1 정규화된 테이블 이해하기 
_2.2 독립적이어야 하는 열 
_2.3 데이터베이스 무결성 개선하기
_2.4 인덱스 추가하기
_2.5 복습하기 
_2.6 앞으로 다룰 내용

 

CHAPTER 03 테이블 관계와 JOIN
_3.1 관계 훑어보기
_3.2 일대다 관계
_3.3 일대일 관계
_3.4 여러 값
_3.5 또 다른 다대다 관계의 예
_3.6 관련 테이블에 데이터 삽입하기
_3.7 복습하기
_3.8 앞으로 다룰 내용

 

CHAPTER 04 계산된 데이터로 작업하기
_4.1 계산의 기본 개념
_4.2 계산 더 자세히 들여다보기
_4.3 CASE 표현식
_4.4 복습하기
_4.5 앞으로 다룰 내용

 

CHAPTER 05 데이터 집계
_5.1 기본 집계 함수
_5.2 집계 이해하기
_5.3 일부 값 집계하기
_5.4 계산된 값으로 그룹화하기
_5.5 그룹 연결하기
_5.6 GROUPING SETS로 요약 데이터 추가 요약하기
_5.7 히스토그램, 평균, 최빈값, 중앙값
_5.8 복습하기
_5.9 앞으로 다룰 내용

 

CHAPTER 06 뷰와 관련 도구 활용하기
_6.1 뷰로 작업하기
_6.2 테이블 반환 함수
_6.3 뷰로 할 수 있는 일들
_6.4 데이터 캐싱과 임시 테이블
_6.5 계산 열
_6.6 복습하기
_6.7 앞으로 다룰 내용

 

CHAPTER 07 서브쿼리와 공통 테이블 표현식(CTE)
_7.1 상관 서브쿼리와 비상관 서브쿼리
_7.2 SELECT 절에서의 서브쿼리
_7.3 WHERE 절에서의 서브쿼리
_7.4 FROM 절에서의 서브쿼리
_7.5 WHERE EXISTS 사용하기
_7.6 LATERAL JOIN(CROSS APPLY)과 관련 기능
_7.7 공통 테이블 표현식으로 작업하기
_7.8 복습하기
_7.9 앞으로 다룰 내용

 

CHAPTER 08 윈도우 함수
_8.1 윈도우 함수 작성하기
_8.2 집계 함수
_8.3 집계 윈도우 함수와 ORDER BY
_8.4 윈도우 함수 소계
_8.5 순위 함수
_8.6 ntile로 작업하기
_8.7 이전 및 다음 행 다루기
_8.8 복습하기
_8.9 앞으로 다룰 내용

 

CHAPTER 09 공통 테이블 표현식(CTE) 더 알아보기
_9.1 CTE를 변수로 활용하기
_9.2 CTE에서 집계 함수 사용하기
_9.3 CTE 매개변수 이름
_9.4 다중 공통 테이블 표현식 사용하기
_9.5 재귀적 CTE
_9.6 테이블 리터럴 다루기
_9.7 복습하기
_9.8 앞으로 다룰 내용

 

CHAPTER 10 트리거, 피벗 테이블, 변수 등 더 많은 기법 알아보기
_10.1 트리거 이해하기
_10.2 데이터 피벗팅
_10.3 SQL 변수 다루기
_10.4 복습하기
_10.5 마치며

 

APPENDIX A 문화적 참고 사항
APPENDIX B DBMS별 차이
APPENDIX C 파이썬에서 SQL 사용하기

하나의 시나리오로 배우는 SQL 실무의 모든 것
다양한 DBMS를 넘나드는 실전형 SQL 트레이닝


SQL의 기본을 익혔다고 해서 곧바로 실무에서 활용할 수 있는 것은 아닙니다. 실무에서는 다양한 요구 사항에 따라 데이터를 가공하고 분석하는 능력이 요구되며, 그 과정에서 SQL 문법 이상의 사고력과 응용력이 필요합니다. 이 책은 바로 그 ‘실무 감각’을 길러 주는 훌륭한 가이드입니다.
 

이 책은 단순한 문법 설명이나 기능 나열을 넘어, 온라인 서점 운영이라는 구체적인 시나리오를 통해 SQL을 실제로 어떻게 활용할 수 있는지 보여줍니다. 고객 등록부터 장바구니, 결제 및 배송까지의 실무 흐름 속에서 데이터를 다루는 과정을 따라가며 자연스럽게 실전 경험을 쌓을 수 있습니다. PostgreSQL, MariaDB, MySQL, SQLite, Oracle, MSSQL 등 다양한 DBMS를 아우르며, ANSI SQL을 기준으로 한 DBMS 간의 차이점과 실무 적용 팁도 함께 제공해 보다 실질적인 학습이 가능합니다.
 

SQL 초급자를 위한 책은 많지만, 이처럼 실무 중심의 관점에서 고급 기능까지 체계적으로 익힐 수 있도록 구성된 책은 드뭅니다. 입문자는 물론 SQL을 일상적으로 다루는 실무자까지 넓은 독자층이 곁에 두고 참고할 수 있는 책입니다. 실무 역량 향상의 발판이 되어 줄 이 책을 자신 있게 추천합니다.
 

누구를 위한 책인가요? 

  • SELECT, FROM, WHERE 등 SQL 기본 문법은 알지만, 실무 프로젝트 앞에서 막막한 분
  • JOIN은 알지만, 복잡한 데이터를 다룰 때 어떤 JOIN을 써야 할지 확신이 없는 분
  • SQLD 자격증은 취득했지만, 실제 데이터를 다루는 경험이 부족한 주니어 개발자 및 데이터 분석가
  • 여러 DBMS를 다루어야 하는 환경에서 표준 SQL 작성 역량을 키우고 싶은 분

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

 

1. 이 책은 어떤 책인가?
서두에서 기초 SQL 지식을 간략히 설명하고, 데이터 '가져오기 → 가공 → 분석' 흐름으로 이어진다.
특히 뷰, CTE, 윈도우 함수, 트리거, 피벗 테이블 등을 정리해 예제로 익힐 수 있다는 게 포인트다.

2. 어떤 부분이 특히 흥미로웠나?
윈도우 함수와 CTE(Common Table Expressions) 이건 학부생 수업에서는 잘 안 다루는 기능인데,
뷰, 서브쿼리, CTE 등 모듈형 쿼리 작성법으로 단계별 가공 흐름을 이해하고 복잡한 SQL을 구조화할 수 있게 설명하고 있다.

트리거, 피벗 테이블, 변수 활용같은 부분도 수업에서 다루지 않는 요소들이라 이 책을 통해 좀 더 알게 되었다.

3. 추천 대상은 누구인가?
학부 데이터베이스 기초 과정을 막 수료한 학생이나,
SQL 초심자 혹은 주니어 개발자가 실제 쿼리를 작성하는 법을 익히기에 좋을 것 같다.
이 책 읽고 프로그래머스 SQL 코딩 테스트 문제들 쭉 풀어보면 아주 좋을 듯.

반면에,
인덱스 설계, 실행 계획 분석, 쿼리 튜닝, DB 내부 구조 최적화 같은 성능 최적화 중심의 주제를 기대한다면 내용이 다소 부족하다.
인덱스 관련 언급은 거의 없는데다, 실행 계획 분석이나 리소스 최적화는 다루지 않기 때문이다.

사실 나는 이런 부분을 기대했던 터라 살짝 실망하긴 했지만 전반적으로 나쁘지는 않은 책이라 생각한다.
제목처럼 이 책은 이론과 성능 최적화 사이, SQL 활용에 초점을 맞추고 있는 단계의 책이다.

학부 DB 전공 수업 >> SQL 활용 (이 책) >>>>>>> DB 내부 구조 및 동작 방식 + 인덱스, 파티셔닝, 샤딩

실무에서 성능 측정, 인덱스 튜닝, 고급 DB 엔진 특성 이해가 목적이라면 
이 책보다는 Real MySQL이나 친절한 SQL 튜닝 같은 책이 더 알맞을 듯 하다.

하지만 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 문법을 넘어, 실제 데이터를 다루고 분석하며 인사이트를 도출하는 과정을 체계적으로 배울 수 있었다. 게임 기획자로서 데이터에 대한 깊이 있는 이해와 실질적인 활용 능력을 갈망한다면, 이 책은 그 갈증을 해소하고 한 단계 더 성장할 수 있는 최고의 기회가 될 것이라고 생각하며 추천한다!

 

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

 

 

총평

- 책의 난이도  : ★★★☆
- 추천 별점     : ★★★★
- 추천 독자     : 백앤드 개발자 혹은 DBA로 SQL을 자주 다루는 자
- 지은이         : 마크 사이먼 지음 / 조은옥 옮김
- 출판사         : 한빛미디어
 


 
이번에 리뷰할 책은 실무에서 SQL을 다루는 기술입니다.

 

책 제목처럼 실무에 초점을 맞추고 있으며, 부재처럼 PostgreSQL, MySQL, SQLite 그리고 뿐만 아니라 MS SQL까지 다루고 있습니다.

 

즉 SQL을 사용하는 데이터 베이스에 대해서 어떻게 SQL을 효율적으로 사용할 수 있는지 알아보는 책입니다.

 

책의 특징

1. 실무에 초점을 둔 책

말 그대로 이 책은 실무에 초점이 맞춰진 책입니다.

기본적인 SQL 책은 문법에 초점이 맞춰져있기 때문에 단순한 시나리오에 대해서 이렇게 쿼리를 짤 수 있다고 주로 문법적으로 학습하게 됩니다.

 

하지만 이 책은 실무에 초점이 맞춰진 책이기 때문에 보다 실무적인 관점에서 어떻게 해야 워크로드에 효율적이고 관리에 용이한지 좀 더 초점을 맞추고 서술되어 있고, 팁도 제공하고 있습니다.

 

 

 

2. 같은 내용으로 다양한 DBMS를 다루는 책

다양한 SQL 솔루션에 대해서 대비합니다. MySQL, MSSQL, SQLite 등 다양한 DB에 대한 내용에 맞게 설명해주어서 누구든지 해당 책을 활용할 수 있도록 하였으며, 비교도 가능하도록 서술되어 있습니다. 운영자 입장에서 정말 좋은 책이라고 생각됩니다.

 

 

책의 구성

챕터 1에서는 준비하기로 데이터베이스에 대한 아주 기본적인 내용과 SQL 기초에 대해서 학습합니다.

 

챕터 2 테이블 디자인 작업에서는 데이터베이스의 테이블을 설계하는 작업을 진행해봅니다.

정규화된 테이블, 독립적인 열, 데이터베이스 무결성, 인덱스 변경 등 테이블을 설계하는 방법을 알아봅니다. 

 

챕터 3 테이블 관계와 JOIN에서는 테이블 JOIN에 대해서 더 심층적으로 학습해봅니다.

일대다 관계, 일대일 관계, 다대다 관계 이렇게 다양한 유형에 대해서 어떻게 JOIN을 하도록 설계해야하는지 확인해봅니다.

 

챕터 4 계산된 데이터로 작업하기에서는 다양한 데이터 형 변환 및 CASE 표현식에 대해서 학습해봅니다.


챕터 5 데이터 집계에서는 집계 함수 및 데이터를 그룹화하고 평균값 등 다양한 계산을 하는 방법을 학습해 봅니다.

 

챕터 6 뷰와 관련된 도구 활용하기에서는 뷰를 통해 가상 테이블을 만들어보고 해당 내용을 통해서 인터페이스로 활용하거나 외부 애플리케이션과 연동하는 등 다양한 방식으로 활용해 봅니다.

 

챕터 7 서브쿼리와 공통 테이블 표현식에서는 SELECT / WHERE / FROM 절에서 서브쿼리를 활용하는 방법과 공통 테이블 표현식 구문을 학습해봅니다.

 

챕터 8 윈도우 함수에서는 윈도우 함수가 무엇인지 순위함수가 무엇인지 등을 학습하고 배워봅니다.

 

챕터 9 공통 테이블 표현식(CTE) 더 알아보기 에서는 CTE를 변수로 활용하고, 집계함수 등 다양한 방식으로 표현식을 사용해봅니다.

 

챕터 10 트리거, 피벗 테이블, 변수 등 더 많은 기법 알아보기에서는 데이터 피벗팅, SQL 변수 활용 등 다양한 방식으로 데이터를 다뤄봅니다.

 

이 외에도 부록을 통해서 파이썬으로 SQL 활용하기나 DBMS 별 차이 등을 소개하는 등 다양한 내용들을 소개하고 있습니다.

총평

이처럼 이 책은 DB에 맞게 SQL을 학습하는데 적합한 책입니다. 정말 많은 기법들을 실무적 지식으로 어떻게 풀어나갈지에 대해서 깊게 고민한 책이라고 생각합니다.

 

지금까지는 SQL 문법 책들은 많이 보았지만 이렇게 실무적인 관점에서 SQL을 서술해 준 책은 정말 귀하다고 생각합니다. 이 책은 이미 SQL을 아는 엔지니어를 대상으로 쓰여진 책이기 때문에 처음 공부하는 분들은 더 쉬운 SQL 기본 문법 책을 읽고 오시는것을 추천드리며, 이미 잘아는 사람이라면 이 책을 읽어보실 것을 추천드립니다.

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

 

 

1. 이 책을 선택한 동기

프론트엔드 개발자로써 DB를 직접 다룰 일이 없어 SQL을 잘 몰랐었어요. 그럼에도 백엔드를 잘알고 싶은 욕구도 있었고, 특히 사이드 프로젝트를 할 때 supabase를 주로 사용하기 때문에 SQL를 익히고 싶었죠. SQL을 몰라도 테이블 에디터를 이용해서 만들 수도 있었지만, 결국은 SQL로 구성되기 때문에 더 효율적으로 테이블을 관리하기 위해서는 역시 SQL을 알아야겠다는 생각이 들었어요.

 

cursor를 쓸 때 SQL로 알려주기도 하고, supabase mcp를 사용할 때도 역시 SQL로 작성합니다. 답변에 대해서 옳고 그름을 판단하기 위해서는 SQL 문법에 익숙해질 필요가 있었고, 질문을 다시 할 때도 역시 SQL을 잘알아야 필요한 답변을 얻어낼 수 있겠다는 생각도 들었습니다. 때문에 이번 기회에 제대로 SQL을 익히기 위해 '실무에서 SQL을 다루는 기술'을 읽기 시작했어요.

 

2. 어떤 책인지

'실무에서 SQL을 다루는 기술'은 조재연 저자가 쓴 실무 중심의 SQL 가이드북입니다. 이 책은 단순한 SQL 입문서가 아니라, 실제 업무에서 마주치는 복잡한 데이터 문제들을 SQL로 해결하는 방법을 체계적으로 다루고 있어요. SELECT, INSERT, UPDATE, DELETE 같은 기본 문법은 이미 안다고 가정하고, 그 위에서 실무에서 진짜 필요한 고급 SQL 기법들을 단계별로 설명합니다.

 

책의 구성을 보면 윈도우 함수, 서브쿼리, 조인 최적화, 집계 함수 활용법 같은 고급 문법부터 시작해서, 실제 비즈니스 시나리오에서 자주 등장하는 데이터 분석 패턴들(순위 매기기, 이동평균, 전년 동기 대비 등)을 다뤄요. 마지막에는 쿼리 성능 최적화와 실행 계획 분석 같은 실무에서 꼭 필요한 내용까지 포함되어 있습니다.

 

특히 PostgreSQL, MySQL, SQL Server, Oracle 등 주요 DBMS별 문법 차이와 특화 기능들을 함께 설명해주는 점이 인상적이었어요. supabase(PostgreSQL)를 사용하는 저에게는 PostgreSQL 관련 내용을 바로 실습해볼 수 있어서 더욱 유용했습니다.

 

3. 특히 인상적이었던 점

가장 인상깊었던 건 윈도우 함수를 설명하는 방식이었어요. ROW_NUMBER(), RANK(), LAG(), LEAD() 같은 함수들을 단순히 문법으로만 설명하는 게 아니라, "월별 매출 순위를 구해보자", "전월 대비 증감율을 계산해보자" 같은 실제 비즈니스 상황과 함께 제시해주니까 '아, 이럴 때 이걸 쓰는구나!'라는 게 바로 이해되었어요.

 

또 하나 인상적이었던 건 복잡한 조인 쿼리를 단계별로 분해해서 설명하는 방식이었습니다. 처음에는 간단한 INNER JOIN부터 시작해서, 점점 복잡한 다중 테이블 조인과 서브쿼리가 결합된 형태까지 차근차근 빌드업해가는 과정이 정말 체계적이었어요.

 

그리고 CTE(Common Table Expression, WITH 절)를 활용한 복잡한 쿼리 구조화 방법도 눈에 띄었습니다. 기존에는 하나의 긴 쿼리로 모든 걸 처리하려고 했는데, CTE를 사용해서 단계별로 데이터를 가공하고 최종적으로 결합하는 방식을 보니까 훨씬 가독성 있고 유지보수하기 쉬운 코드를 작성할 수 있겠다는 생각이 들었어요.

 

4. 덕분에 무엇을 배웠는가

첫째, supabase에서 복잡한 쿼리를 직접 작성할 수 있게 됐습니다. 이전에는 테이블 에디터로만 데이터를 다뤘는데, 이제는 SQL 에디터에서 직접 복잡한 집계 쿼리나 조인 쿼리를 작성할 수 있게 되었어요. 특히 사용자 행동 데이터를 분석할 때 윈도우 함수를 활용해서 세션별 첫 방문 시간, 마지막 액션 등을 한 번의 쿼리로 구할 수 있겠다는 생각이 들었어요.

 

둘째, cursor나 AI 도구들이 생성해주는 SQL 쿼리를 이해하고 수정할 수 있게 되었어요. 이전에는 AI가 작성해준 쿼리를 그대로 복사해서 사용했는데, 이제는 쿼리의 의도를 파악하고 필요에 따라 수정하거나 최적화할 수 있을 것 같아요. 특히 WHERE 절의 조건을 바꾸거나 ORDER BY를 추가하는 정도는 자신있게 할 수 있게 되었습니다.

 

셋째, 데이터베이스 설계에 대한 이해도가 높아졌습니다. SQL을 제대로 배우다 보니 정규화, 인덱스, 외래키 같은 개념들도 자연스럽게 이해하게 되었어요. 테이블을 설계할 때 단순히 필드만 추가하는 게 아니라, 쿼리 성능을 고려해서 인덱스를 설정하거나 적절한 데이터 타입을 선택할 수 있게 되었죠.

 

5. 좋았던 점

1. 실무 시나리오 중심의 설명

각 개념을 설명할 때 추상적인 문법 설명에 그치지 않고, 실제 업무에서 마주칠 수 있는 구체적인 상황을 제시해준 점이 정말 좋았어요. "이달의 상위 10% 고객을 찾아라", "전년 동월 대비 매출 증감율을 구해라" 같은 현실적인 요구사항을 SQL로 어떻게 해결하는지 보여줘서 학습 동기가 계속 유지됐습니다.

 

2. 점진적 학습 구조

간단한 개념부터 시작해서 점점 복잡한 내용으로 넘어가는 구성이 정말 체계적이었어요. 예를 들어 집계 함수를 설명할 때도 단순한 COUNT, SUM부터 시작해서 GROUP BY, HAVING, 그리고 윈도우 함수와의 조합까지 자연스럽게 연결되는 흐름이 좋았습니다.

 

3. DBMS별 문법 차이 설명

PostgreSQL, MySQL, SQL Server, Oracle 등 주요 DBMS별로 문법 차이를 함께 설명해준 점도 큰 장점이었어요. 현재 저는 사이드 프로젝트를 위해 supabase(PostgreSQL)를 주로 사용하는데, PostgreSQL 특화 기능들도 별도로 설명되어 있어서 바로 실습해볼 수 있었어요.

 

4. 성능 관점에서의 접근

단순히 결과를 얻는 방법만 알려주는 게 아니라, 같은 결과를 얻는 여러 가지 방법 중에서 어떤 게 더 효율적인지, 실행 계획은 어떻게 다른지까지 설명해줘서 실무에서 바로 적용할 수 있는 지식을 얻을 수 있었습니다. 특히 인덱스 활용 전략이나 조인 순서 최적화 같은 내용이 유용했어요.

 

 

6. 아쉬운 점

1. 기초 문법에 대한 설명 부족

책 제목에 '실무에서'라고 되어 있어서 어느 정도 예상했지만, 정말 기본적인 SQL 문법은 안다고 가정하고 시작합니다. SELECT, FROM, WHERE 같은 기본 문법부터 차근차근 배우고 싶은 완전 초보자에게는 진입장벽이 있을 수 있습니다. 처음 몇 장은 따라가기가 좀 버거웠습니다.

 

2. 실습 환경 구축 가이드 부족

각 DBMS별 설치나 실습 환경 구축에 대한 가이드가 부족했어요. Github 저장소를 예제로 제공해주긴 했지만, SQL에 익숙하지 않다면 어떻게 구축을 해서 어떻게 테이블을 생성하고 DB를 만들어갈 수 있는지 막막할 수 있습니다.

 

3. 최신 SQL 표준 반영 부족

책에서 다루는 내용은 대부분 안정적이고 검증된 기법들이지만, 최근에 추가된 SQL 표준이나 각 DBMS의 최신 기능들에 대한 언급은 상대적으로 적었어요. 특히 JSON 데이터 처리나 새로운 윈도우 함수들 같은 최신 기능들도 다뤘다면 더 완성도 높은 책이 되었을 것 같습니다.

 

7. 이 책을 읽은 덕분에 기대되는 변화

이 책을 읽고 나서 데이터를 바라보는 관점이 많이 달라졌습니다. 앞으로는 사이드 프로젝트에서 supabase를 훨씬 활용도 높게 사용할 수 있을 것 같습니다. 복잡한 대시보드나 통계 페이지를 만들 때 프론트엔드에서 모든 계산을 처리하는 게 아니라, SQL로 필요한 데이터를 미리 집계해서 받아올 수 있게 될 것 같았어요.

 

또한 백엔드 개발자와의 협업에서도 더 구체적이고 정확한 소통이 가능해질 것 같습니다. "~한 데이터가 필요해요"라고 막연하게 요청하는 게 아니라, "~ 조건으로 조인해서 이런 집계 결과를 주세요"라고 구체적으로 요청할 수 있게 되었어요. 심지어 간단한 쿼리는 직접 작성해서 제안할 수도 있을 것 같아요.

 

특히 실질적으로 활용할 수 있는 것은 cursor나 AI를 사용할 때 데이터 설계 관련 질의를 할 때 더 효과적으로 활용할 수 있게 된 점입니다. 이제는 AI가 생성한 SQL 쿼리를 이해하고 검증할 수 있으니까, 더 정확한 질문을 하고 더 좋은 결과를 얻을 수 있을 것이라 생각해요. SQL을 모를 때는 AI가 작성해준 쿼리가 맞는지 틀렸는지도 몰랐는데, 이제는 어느 정도 판단할 수 있게 되었으니까요!

해당 도서는 SQL에 대한 이론적인 부분 보다도, 실제 쿼리 작성에 대한 예제와 소개, 테이블 디자인, 각종 쿼리 작성 방법에 대해 상세하게 설명해주고 있습니다!

쿼리 관련해서는 기본적인 JOIN부터 계산 데이터, 데이터 집계, 뷰(VIEW), 서브쿼리나 CTE, 추가적인 윈도우 함수 등과 트리거, 피벗 테이블, 변수 등등 고급 내용에 대해서도 설명하고 있습니다.

다양한 예제 쿼리와 함께 소개를 해주고 있는게 가장 좋았던 것 같아요.

이 책의 가장 큰 특징은 다양한 DBMS를 동시에 다룬다는 점이다. PostgreSQL, MariaDB, MySQL, SQLite, Oracle, MSSQL 등 대표적인 데이터베이스 시스템들이 포괄적으로 설명되어 있으며, 각 DBMS 간 차이점을 비교해볼 수 있는 기회를 제공한다. 이를 통해 표준 SQL을 기반으로 실무에서 DBMS를 넘나들며 유연하게 대처할 수 있는 능력을 키울 수 있다. 단일 DBMS만 다루는 책에서는 얻기 힘든 장점이다.

또한 SQL을 배우는 여정이 매우 유기적으로 설계되어 있다. 단순한 SELECT나 WHERE 절에서 시작해, 정규화와 무결성, JOIN, 계산식, 집계, CTE, 트리거, 피벗 테이블 등 고급 기능까지 이어지며 점차 난이도를 높여간다. 입문자가 체계적으로 따라가기에도 적합하고, 실무에서 중급 이상의 쿼리를 작성해야 하는 사람에게도 충분한 깊이를 제공한다.

필요한 선수 지식
요구 학력 : 관련학과 대졸 이상(실무에 관련된 내용)
예제 코드 : SQL
난이도 : ★★★☆☆


책의 구성 중 마음에 들었던 주제
Chapter 02 테이블 디자인 작업
샘플 데이터베이스 구조를 통해 정규화의 필요성과 원칙을 단계별로 짚어준다. town, state, postcode처럼 서로 의존적인 주소 필드를 예시로 들어, 다중 값을 어떻게 분해·정규화하여 테이블과 컬럼을 설계할지 구체적인 과정을 보여 준다.

 

Chapter 06 뷰와 관련 도구 활용하기
이 책에서 설명한 뷰와 관련 도구는 크게 뷰(View)·테이블‑값 함수(TVF)·계산 열과 임시·공통 테이블, 권한·인덱스 전략의 세 축으로 구성된다. 공통 로직을 모듈화해 코드 재사용성과 가독성을 높이고, 복잡한 계산 결과를 메모리에 저장하여 성능을 끌어올리는 방법을 집중적으로 설명한다.

 

Chapter 09 공통 테이블 표현식(CTE) 더 알아보기
보통 학부생 시절에 배웠던 데이타베이스 시스템과 같은 개념서에서는 CTE라는 말 대신 서브쿼리라고 쓰여있던 것 같다. CTE를 임시 변수처럼 활용해 다단계 계산과 조건 분기를 깔끔하게 분리하고, 복잡한 로직을 순차적으로 읽히는 SQL로 재구성하는 실전 기법을 제시한다.

 

APPENDIX B DBMS별 차이
표준 SQL에서 벗어난 각각의 DBMS에서 사용하는 사투리들을 정리해서 알려준다. SELECT 제한(LIMIT vs TOP), 자동 PK(AUTO_INCREMENT vs SERIAL/IDENTITY) 같은 대표 차이를 표로 정리하고, 날짜·문자·윈도 함수, NULL 정렬, 따옴표 규칙 등 주요 호환성 쟁점을 짚어 준다.

 

읽고 난 후

백엔드 프로그래밍과 DBMS는 떼려야 뗄 수 없는 관계다. 실무에서 사용하는 DBMS가 다양(PostgreSQL, MariaDB/MySQL, MSSQL, SQLite, Oracle)한 만큼 책상위에는 Oracle 서적 하나, MySQL 서적 하나씩 구비해둔다. 일반적인 SQL 서적은 특정 DBMS를 겨냥하여 해당 내용들을 설명한다. 하지만 이 책은 같은 결과를 다른 DBMS에서 어떻게 구현하는지 설명하는 몇 안되는 책이다.

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

 

SQL 자격증을 준비해 본 적도 없고, 그동안 알고 있는 SQL이라고는 정처기에서 잠깐 다룬 내용이나, 입문서를 따라 치며 익힌 CRUD 수준에 그쳤습니다. 개발을 하다 보니 실무에 필요한 SQL은 내가 아는 것보다 훨씬 더 복잡하다는 걸 느끼게 되었습니다.

 

제목에서부터 '실무'라는 단어가 눈에 들어온다. 이론보다는 실제로 써먹을 수 있는 SQL을 배우고 싶은 나에게 필요한 책이 아닐까 싶었습니다.

 

그동안 접한 대부분의 입문서는 기본 문법이나 특정 DBMS에 한정된 설명이 많아 아쉬움이 있었는데, 이 책은 확실히 한 단계 더 나아갑니다.

 

실제로 읽어 보니

내가 기술서를 고를 때 중요하게 보는 건 예제가 충분한가인데요.

아무리 설명이 잘 되어 있어도 직접 따라 해볼 수 없으면 금세 까먹기 때문입니다.

이 책은 데이터를 다루는 여러 표현식들을 예제와 함께 보여줘서 차근차근 따라하면서 배울 수 있었습니다. (분량이 꽤 되기 때문에 시간을 제법 투자해야 하지만)

 

특히 인상 깊었던 건 CTE였다. 이런 게 있다는 것도 처음 알았는데, 심지어 복잡해 보여서 뛰어넘고 싶었지만 차근차근 따라해보니 대충 감이 잡혔습니다. (내 것으로 만들려면 더 연습해야겠지만...)

 

MySQL, PostgreSQL, Oracle 등 다양한 DBMS를 다루며 각각의 차이를 설명해주는 구성도 매우 유익했는데요. 그동안 MySQL만 써왔는데, PostgreSQL로 환경을 바꾸는 중이라 이 책의 내용이 특히 흥미롭고 도움이 되었습니다.

 

다른 리뷰들에서 SQLD를 따고 나서 실무 공부하려고 이 책을 본다는 후기가 많았는데 

이 책으로 감각을 익히다 보면 자격증 준비를 하는 데도 도움이 될 것 같다는 생각이 듭니다.

(그렇다고 해서 이 책이 자격증 교재를 대신할 수는 없습니다)

 

추천 독자

완전 초보자 입장에서는 이 책의 모든 부분을 이해하기는 어려울 것 같습니다.

입문서로 쓰기 보다는 다른 분들의 리뷰처럼 자격증은 땄는데 정작 실무에서 어떻게 활용할지 감이 안 잡히는 분들, SQL 실력을 한 층 업그레이드 하고 싶은 현업자들이 보면 매우 도움이 될 것 같습니다.


 

실무용 레퍼런스로 책장에 두기 좋은 책

이런 책은 처음부터 끝까지 쭉 읽어보는 것도 좋지만, 실무 중 필요한 내용을 빠르게 찾아보기에도 좋아서 한 권쯤 책장에 두면 유용합니다.

지금 당장은 책에 담긴 내용을 모두 활용할 수는 없지만 앞으로 마주치게 될 문제들에 대한 해결책을 미리 엿볼 수 있다는 점에서 큰 도움이 된 책이었습니다.
 

정가 26,400원
판매가
26,400원
총 결제 금액 26,400원
dropdown arrow
  • 소장/대여 옵션 선택
  • 소장
  • 365일
    30% 할인
  • 180일
    40% 할인
  • 90일
    50% 할인
  • 30일
    60% 할인

마이한빛 > MY 콘텐츠에서 웹뷰어로 바로 이용가능한 상품이며 배송되지 않습니다.

리뷰쓰기

닫기
* 상품명 :
실무에서 SQL을 다루는 기술
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
실무에서 SQL을 다루는 기술
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
실무에서 SQL을 다루는 기술
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?