초보 DB개발자에게 좀 더 넓은 시각을 제공하는 책
SQL 레벨업 : DB 성능 최적화를 위한 SQL 실전 가이드
보통 비싼 라이선스 때문에 오라클 같은 엔터프라이즈급 데이터베이스를 접하기가 어려운데, 이 책은 오라클과 100% 호환을 목표로 하는 오픈소스인 PostgreSQL을 사용하여 큰 비용을 들이지 않고도 엔터프라이즈급 데이터베이스를 다루는 기술을 경험할 수 있다. 상당수의 예제를 두 DB에 각각 적용해보고, 수행 결과가 상이한 경우에 대해서도 설명해 일석이조의 경험을 얻을 수 있다. 이 책은 남다른 내공을 갖춘 DB 전문가로 여러분을 이끌어줄 것이다.
- 저자 : 미크
- 번역 : 윤인성
- 출간 : 2016-01-22
[도서리뷰]DB성능 최적화를 위한 SQL 실전가이드_SQL 레벨업(미크 지음, 윤인성 옮김, 한빛미디어)
대상 독자:
기본적인 SQL(SELECT, INSERT, UPDATE, DELETE)을 알고 있는 사람
실행 계획을 살펴보지 않은 데이터베이스 관련 개발자
본인(Reviewer) 소개:
기본적인 DB생성이 가능하고, 기초적인 SQL 언어의 사용경험이 있으며, 조작어에 대한 개념을 알고 있습니다. 관련 개발자는 아니지만, 책에서 소개했던 독자 수준에 아주 걸맞는(?) 수준에서 이 책을 접했다 생각합니다.
전체적인 평:
앞서 설명드렸듯이, 저는 SQL의 기본 지식만을 보유하고 있는 초보입니다. 기초 지식을 이미 습득한 상태에서 DB활용 관련해서 한단계 업그레이드 된 지식을 늘 학습하고 싶었던 터라 이 책을 선택하게 되었는데요. 개인적으로는 탁월한 선택이었다고 생각합니다.
책에 대한 전체적인 느낌은, 반전이랄까요? 겉 표지나 책 크기가 주는 인상은 다소 무겁지 않아 보여 목차를 읽지 않는다면. 가벼운 내용만을 다루는 것으로 오해할 수도 있겠다 싶었습니다. 물론 상세하고 친절한 개념 설명을 통해 내용을 좀 더 친근하게 전달하고자 하는 느낌은 많이 받았습니다.
다음 세 가지는 개인적으로 책에서 좋았다 생각했던 점입니다.
1. 다양한 예시의 활용
첫 번째로 좋았다 말하고 싶은 것은 책이 설명하고 있는 개념에 대한 다양한 예시입니다. "실전 가이드" 답게 다양한 실습 예시를 다루고 있는데요. 실습 예시가 다루는 개념에 대한 구체적인 설명과 함께 다양한 예를 들어 이해를 돕습니다. 책에서 예를 든 내용을 잠깐 언급하자면, "자르기" 기능을 케이크를 나누는 것에 비유하여 설명하였는데요. 이처럼 시각적인 이미지를 떠올릴 수 있는 예를 제공함으로써 독자가 좀 더 쉽게 내용을 이해할 수 있도록 돕는다는 느낌을 책을 읽는 내내 받았습니다. 전체적으로 예시가 많은 만큼 시각적인 이미지로 다양하게 제시되었습니다. 테이블 간의 구조라던지, 알고리즘에 대한 설명이라던지, 텍스트로 구구절절 설명했다면 자칫 지루할 수 있었겠지만 이미지 예시를 통해 재미와 더불어 이해를 더했던 것같습니다.
2. 직접 대화를 나누는 듯한 어체
제가 처음 SQL을 공부하던 때를 떠올려 보면, 당시 딱딱한 교과서 어투의 교재로 공부했던 기억이 납니다. 읽다보면 쉽게 지루해졌기 때문에 주로 직접 정리해가며 암기 위주의 학습에 좀 더 집중하고, 직접적인 실습을 한 후에야 이해를 했던 부분이 많았습니다. 그런데 이 책은 쉽게 대화체로 개념을 설명해주기 때문에 이해를 돕습니다. 차근차근 문장을 읽어나가며, 본문에서 제공하는 실생활의 예와 접목시켜 머리 속으로 개념을 떠올리고 고개를 끄덕이며 읽어나갔습니다. (여기에는 앞서 언급한 다양한 예시의 활용도 한 몫 했습니다.) 이해가 쉬웠던만큼 집중도 잘 되었던 것 같네요.
책에 나오는 모든 문장들의 길이가 길지 않습니다. 짧게 나눠지는 문장 덕에 머리에도 쏙 들어왔고, 카페에서 소리내어 읽다보니 직접 강의를 듣는 듯한 착각도 있었습니다. 다만 너무 문장이 딱딱 끊어진다는 느낌은 받았습니다. 그래서 자연스럽게 이어질 수도 있을 법한 내용이 계속 끊어지며 읽히고, 불필요한 접속어가 반복적으로 사용된 부분도 있었습니다. (쉬운 설명과의 트레이드오프라고 생각합니다. :))
3. 구성
다음은 책의 구성에 대한 내용인데요. 개인적으로 구성에 대한 점이 참 좋았다고 생각합니다. 큰 숲을 먼저 보고 각각의 나무들을 자세히 보는 듯한 느낌인데요. 저의 평소 학습 스타일도 크게 전체적인 그림을 보고 세부적으로 되짚어 나가는 편이라서 그런지도 모르겠습니다. 처음 2장에 걸쳐 기초 SQL 개념을 살펴볼 수 있었는데요. 이 책을 읽기 위한 준비운동이랄까요? 앞으로 읽어나가는데에 필요한 개념들을 되짚어볼 수 있는 계기가 되었던 것 같습니다. 앞서 설명한 내용들을 토대로 뒤에 나오는 각각의 챕터들을 살펴보기 때문에, 이미 한번 언급되었던 문제들에 대한 근거들을 보며 해당 내용을 한 번 더 상기시킬 수 있었던 점이 좋았다고 생각합니다.
개인적으로 다소 어렵게 느껴지면서도 동시에 친절한 설명 덕에 쉽게 느껴진 책입니다. DB개발 입문용으로, 또는 초보자가 막연하게 알고 있는 개념을 구체화하기에 참 좋은 책이라 생각합니다.
책은 전체적으로 크게 10장으로 나뉘어져 있고 세부적인 서브챕터들로 나뉘어지는데요. 각 챕터마다 처음 공부하면서 한번쯤은 생각해봤을 법한 궁금한 내용, 혹은 초보자로서 (혹은 중급자로서) 범할 수 있는 실수에 대한 사항들을 다루고 있고, 마무리로 학습포인트와 연습문제를 제시하여 독자들이 스스로 개념을 생각해볼 수 있도록 유도합니다.
개인적으로 이 책을 통해 얻을 수 있었던 개념은 옵티마이저의 역할, 즉 실행계획인데요. 전반적으로 책의 모든 실습 예제에서 실행계획을 통해 성능 검증을 하는 예시를 제공하기 때문에, 책을 거의 다 읽을 때 쯤이면 "실행계획"이라는 개념에 상당히 친숙해져있음을 느낄 수 있습니다. 이 방법을 통해 성능에 대한 고려, 그리고 트레이드오프에 관해서 생각을 해볼 수 있었던 계기가 되었네요.
DB에 대한 좀 더 큰 그림을 볼 수 있는 시각을 제공하는 책이라고 생각합니다.
추천합니다.
한빛리더스 2기