본문 바로가기

DATA SCIENCE/Review

Monthly Book Review 03 : 혼자 공부하는 SQL

#한빛미디어의 신간 <혼자 공부하는 SQL> 서평 이벤트에 당첨되어 책을 제공받아 작성한 리뷰입니다.

 

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=282031508 

 

혼자 공부하는 SQL

아무런 사전 지식 없는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’, ‘어떻게’ 학습해야 할지조차 모르는 입문자의 막연한 마음을 살펴, 과외 선생님이 알

www.aladin.co.kr

 

00. 리뷰 요약

1. 책의 내용은 SQL 전반에 걸친 내용이 빠짐없이 잘 정리되어 있어, 여러 차례의 반복학습을 통해 역량을 키우기 적합하다.

2. 다만 모든 내용을 다 담으려 하다보니 책의 구성적 측면에서 아쉬움이 많고, 자칫 환경설정 등의 작업 과정에서 흥미를 잃거나 독자의 목적과 다소 무관한 내용들을 먼저 접하게 되어 정작 중요한 부분을 접하지 않게 될 수도 있다.

 

- 이 책의 제목에 왜 '혼자 공부하는'이 들어갔는지 생각해봐야 한다.

- 이 책은 입문자에게 처음 SQL을 시작하기에 좋은 책은 아닐 수 있다. 책의 순서가 처음부터 무언가를 해보며 자신이 만든 결과물을 확인하며 재미를 붙여갈 수 있는 구조가 아니기 때문이다.

- 반면 10시간을 들여 SQL을 가장 확실하게 익힐 수 있는 책으로 이 책을 꼽을 수 있을 것 같다. 기본적으로 SQL 전반에 걸친 과정을 꼼꼼하게 제시하고 있고, 이들을 간단하게라도 실습해볼 수 있는 구조를 가지고 있다.

- 나는 특히 공부할만한 책이라 생각하는 책은 못해도 3번 이상은 읽는 편인데, 이 책도 그러한 방식으로 읽기에 충분하다. 처음에는 빠르게 훑어보고, 두 번째는 실습해볼 수 있는 것들을 따라해보며 이해하고, 세 번째는 다시 책을 정독하며 이해못한 부분을 이해하고 추가적으로 더 공부할 부분 등을 체크한다. 이 책은 이러한 과정을 거치기에 충분히 가치가 있는 책이고, 처음 접하는 사람들이 체계적으로 공부하기 좋은 책이다

 

01. 추천하는 대상

1. SQL에 대해 기초를 탄탄히 다지고 싶은 사람(10시간 이상의 학습 시간을 들여)

2. 현업에서 SQL을 통한 데이터 ETL을 해보고 싶은 사람

 

- 위에서 설명한 것처럼 이 책은 가볍게 SQL이라는 것을 접해보려는 사람을 위해서는 추천하지 않습니다. 기본적으로 처음의 몇 단원 동안 사용자가 직접 무언가를 해보며 작업하고, 그 결과를 만끽할 수 있는 구조가 아니기 때문이다.

- 하지만 만약 기본적인 수준이라도 제대로 실력을 쌓고 싶은 사람이라면 추천할만한 책입니다. 한 번 SQL을 익힌 상태에서 자주 사용하지 않아 한 번씩 정리가 필요한 사람, 업무의 과정에서 SQL을 이용해 직접 데이터 ETL을 해보고 싶은 직장인, SQL에 대한 개념이나 사용처 등을 어느정도 이해하고 있는 학생이라면 각자 방식에 맞는 학습 방법에 따라 충분한 이득을 볼 수 있는 책이라고 판단된다.

 

02. 책의 구성

- 이 책의 구성은 크게 네 가지로 구성되어 있습니다.

- 만약 자신 본래의 직무 과정에서 데이터 분석을 위해 직접 회사의 DB에서 데이터를 ETL하고 싶은 사람에게 실질적으로 초반부를 차지하고 있는 1~2에 해당하는 챕터는 재미없고, 특별히 도움이 되지 않는 챕터일 것이다. 이런 분들에겐 중후반부부터 먼저 접하시는 것을 추천한다. 중후반부에 어떤 식으로 작업할 수 있는지 등이 필요할 것이다. 참고로 실무에서 DELETE, DROP, TRUNCATE와 같은 명령어를 사용하는 것은 매우매우 주의해야 합니다. 어지간하면 사용하지 않는 것을 추천합니다.

-만약 처음 SQL을 접해 진득하게 공부하고 싶은 분이라면 당연히 처음부터 시작하는 것이 좋습니다. 다만 처음부터 모든 과정을 이해하고 독파하겠다라기 보다는 처음에는 간단히 눈으로만 쓱 읽어보고, 그 후에 하나씩 따라해보는 식으로 진행하는 식으로 여러 번 반복하는 방식을 추천드립니다.

 

03. 책의 내용

- 개인적으로 이 책의 가장 큰 장점이자 단점은 모든 개념을 동등하게 소개했다는 것입니다. 이로 인해 다른 책들에서는 짜투리라고 생각됐던 개념들이나 직접적으로 ETL과 관련되지 않아 배제된 내용들까지도 체계적으로 정리되어 있습니다. 즉, 여러 책들을 통해 부분적으로 배워야 했던 내용까지도 하나로 잘 정리되어 있다는 것이 가장 큰 장점인 셈.

- 그렇다면 왜 이런 부분이 단점이 될까? 위에서도 언급한 바 있듯, SQL의 모든 기능들은 동일하게 중요하진 않다. 예를 들어, 이미 있는 데이터를 지우거나 스키마를 버리는 등의 작업은 자칫하면 회사의 자산에 손해를 끼칠 수도 있다. 이로 인해 개개인에게 문책이 가해질수도, 회사 차원에서도 큰 피해를 얻을 수도 있다. 따라서 만약 저기에 있는 기능을 자체적으로 충분한 연습과 숙달없이 함부로 사용했다간 회사 자원 및 자산을 남용하게 될 수도 있는 것.

- 이러한 이유로 여러번 말했듯 이 책을 한 번만 읽을 사람에겐 추천하지 않는다. 나의 경우엔 이미 SQL에 대해 경력이 있음에도 불구하고 한동안 사용할 기회가 없어 전체적으로 내용을 복기하기 위해서 두 번 이상을 읽었다. 당연히 처음 공부하거나 더 제대로 학습이 필요한 사람은 그 이상의 학습이 필요할 것으로 보입니다.

 

04. 아쉬운 점 & 개선점

- 이 책의 내용은 실제 SQL을 학습하고, 배우는 프로세스에 초점이 맞춰져 있어 만약 SQL 입문자가 이를 통해 학습하려면 적어도 처음 몇 시간 동안 다소 의미없어 보이는 프로그램 설치 및 오류의 반복, DB를 만드는 과정의 반복을 거쳐야 할 것입니다. 이러한 과정들은 처음 접하는 사람들에게 당연히 다소 지루하고, 의욕을 떨어뜨릴 수 있는 요소입니다. 또한 여러 DB에 대해 설치하고 가르치는 법을 모두 정리해놓았는데, 이 또한 아무것도 모르는 입문자에겐 저 모든 과정을 일일히 해야하는 것으로 비춰질 수 있어 이러한 부분들을 부록 느낌으로 빼놓는 것이 낫지 않을까하는 생각이 듭니다.

- 또한 위에서 이미 언급한 바 있듯, 이 책을 접할 타겟 독자들을 여러 가지 형태일 것입니다. 그저 SQL을 가볍게 접해보고 싶은 사람, 독학을 통해 자격증을 따고 싶은 사람, 실무에 부분적으로 적용해보고 싶은 사람, SQL test를 준비하고 싶은 사람 등. 하지만 그런 사람들 모두가 이 책의 모든 과정을 항상 처음부터 끝까지 읽을 필요는 없습니다. 따라서 이 책의 구성을 충분히 이해하고 학습자의 프로필에 맞는 학습 플랜 등을 추천해주면 더 낫지 않을까 싶습니다.