본문 바로가기
review/DEV

책 리뷰 : Learning SQL

by ㅇㄱㅈㄱ 2024. 3. 28.
728x90
반응형

[한빛미디어에서 제공 받은 '나는 리뷰어다' 2021년 4월 이벤트 도서 리뷰입니다]


느낀점

- MySQL을 기준으로 다루고 있어 MariaDB와 더불어 MySQL 사용자에게 도움이 될 것

- SQL을 전혀 모르는 입문자나 초심자 타깃보단 CRUD를 어느정도 할 줄 알고 한단계 더 나아가고 싶은 입문자들에게 어울리는 내용

- 실무에서 사용되는 고급스킬(?)까진 없어서 아쉽지만 적절한 팁들 제공

- 독립적인 장으로 구성되어 필요한 장만 찾아볼 수 있음(물론 연계되는 기술이라면 다른 장 사전습득 필요)


프로그래밍을 배우면 가장 먼저 배우는 스킬

'반복문'과 '제어문'

 

CRUD를 어느정도 할 줄 알게된 뒤로,

SELECT한 '모든' 데이터를 Object에 받아와

서버단에서 '반복문'과 '제어문'을 활용해 데이터를 가공했지만

첫번째 회사를 들어간 뒤로 생각이 완전히 바뀌었다.

 

일단 전체적인 데이터를 뽑아오는것에서 1차적으로 시간이 소모되었고,

그 수많은 데이터를 반복하고 제어하는데에서 2차적으로 시간이 소모되었다.

 

수백, 수천만건의 데이터를 활용하는 곳에서는 어마어마한 시간이 소요되는것,

그 불필요한 시간을 줄이고 서버단에서 쓸모없는 코드를 줄일 수 있는 기술,

SQL이 꼭 필요한 이유이며 정답이 없는 쿼리를 작성하다보면

그 무긍무진한 가능성에 푹 빠지게 된다.

 

오늘은 그 SQL의 매력에 푹 빠지게 만들어 줄 리뷰 서적

러닝 SQL !

(네이버에서 Learning SQL로 검색하니 해외판이 나온다...)

(음... 개구리 사진이 그렇게 맘에 들진 않는다...)

 

O'REILLY의 서적은 '어렵다' 라는 생각을 갖고 있었는데,

이 책은 필요한 기능별로 장을 나눈것 하며 쉽게 따라하며 배울수 있다는 느낌을 받고

다 그런건 아니구나 라는 생각을 하게 되었다.

 

읽으면서

'입문서'일 수도 있고

'초심자'의 레밸업

을 위한 책도 될 수 있다고 느꼈다.

 

일단 다른 입문서와 비슷하게 SQL에 대해 설명하면서 시작하는데,

SQL이 필요한 시스템

SQL의 역사를 구구절절히 늘어놓는게 아닌

왜 SQL을 써야했고 SQL이 사용되었는가에 초점을 맞춰

설명을 하니 흥미롭게 읽을 수 있었다.

 

(간단하게 말하면 '필요에 의해' 이지만... 누구나 구구절절한 역사를 갖고있기 마련이지 않은가...!)

 

1장, SQL의 필요성과 역사에 대해 설명하고

2~3장은 기본적인 입문에 대해 설명한다.

CREATE등 기본적인 데이터 생성에 관련된 DDL을 설명하고,

SQL의 기본문법인 CRUD에 대해 설명한다.

 

하나하나 천천히 따라하면 무리없이 DML(SELECT, UPDATE 등)를 익힐 수 있다.

 

직접 실행할 수 있는 쿼리를 단계별로 보여주며 어떻게 실행할 수 있는지에 대해 도달하게 만들어준다.

쿼리를 보여주는것에서 마음에 들었던것은...

쿼리가 깔끔하게 정렬되어서 나왔다는것....!

 

1. 한줄에 작성

SELECT A, B, C FROM TABLE

 

2. 정렬해서 작성

SELECT A

        , B

        , C

      FROM TABLE

 

위와 아래 중 어떤 쿼리문이 더 알아보기 쉽고

나중에 유지보수하기 쉬운지는 따져보지 않아도 알 수 있다.

(물론 정렬하며 작성하면 한줄에 작성하는것보다 시간이 오래걸리겠지만

나중에 수정할 구문을 찾거나 한 문단이 길어질 경우를 생각하면 애초에 정렬해서 시작하는것이 좋다)

 

중간중간 팁도 나오고

 

각 장의 마지막엔 '학습 점검'이라는 단락으로 직접 생각해보는 구간이 존재한다.

위의 내용들을 보면

기본적인 '입문서'의 느낌을 풍기지만

'입문서'보단 '초급자'의 레밸업을 위한 서적이라고 생각하는 이유는

 

1. 위에서 기본적인 설명들을 하지만 엄청나게 자세하진 않다.

(1부터 100까지 일일히 구구절절 설명하지 않는다는 것)

 

2. 고급 스킬들의 설명

입문을 하면 필요한 기술들에 대해 설명하는것은 동일하지만

SQL을 처음 배우는 사람이 VIEW나 INDEX에 대해 알 필요가 있을까?

필요에 의해서 배우는 사람이라면 고급 스킬에 대해 더 알아야 하겠지만

일반적인 입문자, 신입이라면 CRUD만 알고있어도 훌륭하다고 생각한다.

 

3. 앞에서 한번씩 언급 후 각 장별로 설명

'입문자'를 위한 내용은 앞에서 모두 끝낸다.

다만 후에 필요한 고급 기술들을 한번씩 언급하는데,

구구절절히 이 기술이 왜 필요한지 설명하는게 아니라

'이런 상황에서 이런 기술이 필요하다'는 뉘앙스를 풍기며 짤막하게 끝낸다.

 

그동안 오라클, MSSQL 등의 데이터베이스 서적이 주를 이뤄왔기 때문인진 몰라도

웹 서칭에서 그 두가지의 데이터베이스에 관한 설명이 많았다.

접하기 쉽고, 자유롭게 이용가능하다는 점에서 많은 사람들이 이용하고 있는

MySQL과 MariaDB에 대한 서적이 많이 나오는것을 보니

이 두가지를 가장 많이 이용해왔던 나로썬 매우 반가운 일이다.

 

요즘들어 '그룹화'와 '서브쿼리'에 대해 조금 더 배워야겠다고 생각했기에 더욱 더 반가운 서적이었다.

하지만 실전에서 필요한 모든 경우에 대해서는 나와있지 않았고, 원하던 내용이 없어서 아쉬웠다.

 

입문자와 고급을 향해 가고싶어하는 초심자에게 필요한 모든것들이 담겨있어

조금 더 자신을 레밸 업 시키고 싶은 분들에게 추천한다.

728x90
반응형

댓글