이 책을 읽게 된 이유
이 책은 한빛미디어에서 진행하는 `나는 리뷰어다 2021`에 참여하게 되어 읽게 됐습니다. 3월 리뷰처럼 이번 4월 리뷰에도 좋은 책들이 많았고, 저는 많은 책들 중 `러닝 SQL`, `몽고DB 완벽 가이드 3판`, `이것이 안드로이드다 with 코틀린(개정판)`을 선택했었습니다.
SQL이든 NoSQL이든 데이터베이스 공부는 필요하다고 생각했기에 선택했습니다. 최근 선형대수학, 통계학, 파이썬 라이브러리 공부 등을 한다고 조금 미뤄졌었지만, 데이터 분석 또는 머신러닝 분야에서 사용할 수 있을 거란 생각에 나중에는 꼭 공부해보고 싶었던 분야 중 하나였습니다.
코틀린은 나중에 졸업작품을 만들 때 안드로이드 앱 개발이 필요할 수 있다고 생각하니 공부를 해보고 싶었고요. 특히 최근에는 코틀린이 안드로이드 이외에 백엔드에도 쓰이고 있다고 들어서 선택했습니다.
이 책들 이외에도 클라우드 네이티브, 이것이 데이터 분석이다, 배워서 바로 쓰는 14가지 AWS 구축 패턴 등 좋은 책들이 많았습니다.
위와 같은 이유들이 있었지만 결국에는 `러닝 SQL`이 선택되어 대략 2주간 이 책만 보면서 공부했습니다.
책 소개
이 책은 제목에서도 보셨다시피 SQL을 공부하는 책입니다. MySQL, ORACLE DATABASE, IBM DB2, Microsoft SQL Server, PostgreSQL 같이 SQL은 종류가 많지만, 이 책은 이 중 MySQL을 중점으로 설명합니다. 가끔 MySQL 이외의 SQL 예제들이 나오기도 합니다.
SQL 예제들은 테이블을 직접 생성하여 사용하기도 하지만, 대부분 sakila database를 사용합니다. sakila database를 다운받아 환경을 구성하는 것을 어려워하는 사람들을 위해 이 책의 원서 출판사인 O'REILLY에서 운영하는 [Katacoda]라는 실습 환경을 제공해줍니다.
이외에도 환경을 구축할 수 있는 사람은 스스로 환경을 구축하여 책의 예제를 따라 하며 실습을 진행할 수 있습니다. 개인적으로 저는 WSL2(Windows Subsystem for Linux 2)를 사용하여 MySQL 환경을 구축했습니다. 처음에는 Windows에서 MySQL을 사용하려 했으나 이 책은 터미널에서 쿼리를 작성하는 환경을 사용하기 때문에 Workbench를 사용하지 않고 터미널에서 실습을 진행했습니다.
이 책은 455 페이지로 꽤 두꺼운 책이지만 Chapter가 18까지 있어 조금씩 보기 좋습니다. 하루에 한 Chapter씩 본다고 하면 18일이면 다 읽을 수 있죠. 한 Chapter가 끝날 때마다 `학습 점검 실습 문제`가 있어 Chapter의 내용들을 점검할 수 있는 구성으로 이루어져 있습니다. 이부분이 전 가장 마음에 들었습니다. 보통 이런 책들은 실습 예제만 있지만 문제들이 있다는 것이 공부한 내용들을 점검하기에 좋았습니다.
또한, 실습할 수 있는 코드가 많으며, 예제 코드마다 설명이 조금씩 있습니다. 상황마다 사용하는 코드들이 많이 제공되어 있기에 참고하기에 좋습니다. SQL을 작성하면서 어려운 부분이 있을 때 참고하면서 읽기에도 좋습니다.
대상 독자
개인적으로 이 책은 SQL을 적어도 한 번은 공부해본 분이 읽으셨으면 좋겠습니다. 물론 이 책은 두껍기도 하여 초보자를 위한 책이기도 합니다만, 읽으면서 '친절하다'는 느낌은 받지 못했습니다.
예를 들어 어떤 Chapter에서 설명하고자 하는 주제가 있지만, 그 주제와 조금 벗어난 다른 Chapter의 코드들을 맛보기로 보여주는 경우가 있었습니다. 그럴 때마다 맛보기로 실습을 해보긴 하지만, 무슨 의미인지도 모르고 실습했었습니다. 그러나 위에서도 말했듯이 실습할 수 있는 코드들과 그 각각의 코드들에 대한 설명이 조금씩 있었기에 실습하면서 공부하는데 매우 큰 도움이 되었습니다.
또한, Katacoda를 이용하는 방법 이외에 환경을 구축하는 부분에서도 a to z처럼 모든 것을 알려주는 것이 아니라 간략하게 설명이 되어 있습니다. 프로그래밍을 어느 정도 공부해본 독자들은 스스로 찾아 공부하는 습관들이 있어서 대략적인 설명이 있으면 알아서 환경 구축을 하고 실습을 진행할 수 있겠지만, 일반 독자들에게는 어려울 것이라고 생각합니다.
만약 SQL을 한 번도 공부해보시지 않으신 분이라면 이 책은 SQL 코드를 분석하고 공부하는 용으로 쓰고 설명 부분은 다른 책도 참고하면서 공부하셨으면 좋겠습니다. 전 코딩 테스트를 위해서 구글링으로 SQL을 공부했던 경험이 있어 이번에도 이 책을 읽으면서 구글링과 함께 공부했습니다.
요약
`SQL을 완전히 처음 공부하시는 독자라면 다른 책도 같이 읽으면서 공부하시고, SQL을 공부해본 독자라면 이 책의 코드들을 모두 실습해보는 방향으로 읽으시면 도움 될 것이라고 생각합니다.`
어디까지나 제 생각일 뿐이니 참고만 해주시길 바랍니다.