책을 읽기 시작하며
이번에 리뷰할 책은 한빛미디어에서 출판한
'이것이 ~이다' 시리즈 중 하나인 "이것이 MySQL이다-MySQL 설치부터 PHP연동까지 한번에!" 라는 책이다.
필자 개인적인 필요에 의해 구입했던 본 시리즈 책이 "이것이 자바다"와 "이것이 우분투 리눅스다"인데, 이번 MySQL까지 총 3번째 이것이 시리즈다 책을 펼쳐보게 되었다.
개인적으로 이것이 자바다는 자바 람다를 포함한 전반적인 자바 기초를 한번 다시 훑기 위해서, 리눅스는 업무에서 일부 필요한 부분을 참고하기 위해 구입하였는데 두 시리즈 모두 적당히 필요한 개념과 적당히 실무에 적용할 수 있는 밸런스를 갖추고 있는 책이라고 생각했다. 어떤 내용이든 완벽하고 모든 내용을 커버할 수 있는 책은 사전 그 이상의 두께의 책이 나와야만 하고, 모든 실전을 커버할 수 있는 책은... 이것도 마찬가지가 아닐까. 전반적으로 이것이 ~다 시리즈는 그 중간에서 적절한 균형을 갖추고 있는 시리즈란 생각이 든다.
현재, https://dev.mysql.com/downloads/ 에서 다운 가능한 MySQL의 버전은 5.7.21(커뮤니티 버전)인데, 책에서 다루는 버전 또한 5.7.x 이므로, 최신 버전으로 학습 및 테스트 하는데 도움이 될 것이다.
대상 독자
데이터베이스에 대한 기본적인 지식이 있는 독자라면 읽어내는데 무리가 없을 것 같다.
학부생이면서 데이터베이스 관련 수업을 들었거나 듣고 있는 학생이라면 매우 유익하게 도움이 될 것이고, 사전과 같은 도움도 줄 수 있는 책이라고 생각한다.
그저 MySQL을 설치하고 실행하고 다루는 법을 설명한 것이 아니라, 그 이전에 DBMS가 무엇을 의미하는지, 종류에는 무엇이 있는지, 그 중에서도 MySQL은 어떤 녀석인지 순으로 설명하고 있기 때문에 개념을 다지고 한 스텝 한 스텝 나아갈 수 있을 것이다.
책의 구성
책은 크게 4개 파트와 1개의 부록 파트 나뉜다.
Part 1. MySQL 설치 및 DB 구축과정 미리 실습하기
Part 2. MySQL 기본
Part 3. MySQL 고급
Part 4. MySQL과 PHP 프로그래밍의 연동
부록. Linux 환경에서 MySQL 설치
[Part 1. MySQL 설치 및 DB 구축과정 미리 실습하기]
DBMS의 역사, 종류, MySQL에 대한 기본적인 설명(이론)을 한다.
홈페이지에서도 찾을 수 있는 내용이기는 하지만... MySQL의 버전별 제공 기능까지 표로 보여주고 있다. 일반적으로, 개인적 용도로 사용하는 경우 커뮤니티 버전이 제공하는 기능 그 이상을 요하는 경우는 거의 없을 것이다.
설치 안내 과정이 매우 인상적이다. 일부 그냥 텍스트 몇줄로 혹은 그 텍스트 없이도 넘어갈법 한데, 시스템이 x86인지, x64인지 확인하는 방법부터, 그에 맞는 MySQL 다운로드, 그리고 설치까지 총 12페이지에 걸쳐 모든 과정을 스크린샷하여 배치해두었다. 이정도로 친절한데 못따라온다면... 그런 사람은 설마 없겠지라고 감히 확신한다 :)
설치 이후에는 GUI기반 프로그램을 바탕으로 샘플 DB구축을 통한 테이블 생성, 데이터 입력 등에 대한 정보를 다룬다. 설치 화면 못지않게 거의 모든 화면에 화살표까지 친절하게 표기되어 있어, 따라하기 너무 쉽다는 느낌을 받았다.
챕터 3장에서는 MySQL과 응용프로그램(여기서는 Visual Studio)과 어떻게 연결하는지도 알려주어 조금 더 실질적인 접근을 시도했다.
조금 더 페이지를 할해아여 Eclipse 와 연동법도 설명해주면 좋았을걸 하는 생각에 미치니 조금 아쉽기도 하다. 하지만 이렇게 아쉬워하면 한도 끝도 없는 법...
부족한 부분은 Google에서... 단어 몇개만 나열해도 금방 나올 것이다.
[Part 2. MySQL 기본]
챕터 4장에서 짧게나마 데이터베이스 모델링을 다루는 부분은 매우 좋다. 실습할 수 있도록 단계를 나눠두고 독자가 하나하나 직접 해볼 수 있도록 되어있는데, 초보 독자에게 매우 중요한 부분이다. 이 부분을 삭제하고 단순히 프로그램 사용법 및 SQL만 설명한다고 해도 그러려니 하겠으나, 독자에게 직접 DB 모델링에 대한 개념 및 실습을 하게 함으로써 보다 명확한 이해에 많은 도움이 된다. 이를 통해 다이어그램으로 표현하는 단계까지 설명하고 있는데, 모델링 케이스가 적은 것은 조금 아쉽다. 물론 모델링을 깊게 파려면 그것만 책을 수십권 보아도 부족하겠지만, 2~3페이지 정도만 더 설명해주면 어땠을까 하는 아쉬움이 남는다.
챕터6부터는 SQL기본 으로 들어감으로써, 이제 본격적으로 스크립트를 작성한다는 느낌이 좀 날 것이다.
SELECT, WHERE, GROUP BY, HAVING 등 기본적인 쿼리 구문들, 그리고 INSERT, UPDATE, DELETE 등의 데이터 변경 등에 대해서도 배운다.
챕터7은 SQL고급 파트로, 조인, 유니온을 비롯해 본젹 SQL 프로그래밍까지 설명하고 있다.
[Part 3. MySQL 고급]
MySQL 고릅은 테이블과 뷰, 인덱스, 스토어드 프로그램, 전체 텍스트 검색과 파티션 등 총 4개 파트로 구성되어 있다.
특히 인덱스에 대한 설명이 상세한 편이다. 인덱스의 성능비교와 인덱스를 생성하는 경우와 그렇지 않은 경우까지 설명하고 있어, 처음 인덱스의 개념을 접하고 사용할 때 많은 도움이 될 것이다. 초보자라면 고급파트는 다소 난해한 내용일 수도 있는데, 여기부터 다소 어렵다고 느낀다면 앞선 Part 2. MySQL 기본까지를 한번 더 리뷰하고 확실하게 이해하고 넘어가면 좋겠다. Part 2까지만 완벽해도 대학 전공 학부 수업(데이터베이스 과목)의 커리큘럼 정도는 충분히 커버한다. 기본을 완벽히 이해하고 고급으로 넘어가도 늦지않다.
[Part 4. MySQL과 PHP 프로그래밍의 연동]
고급파트이면서, 선택적인 파트이기도 하다. php에 관심이 없거나 php언어를 모르거나, 웹 개발과 관련이 없다거나 하면 모를 수도 있고, 또 굳이 보지 않아도 될 파트이다. 왜 php와의 연동을 선택했는지는 모르겠지만 아무튼 웹 프로그래밍에서 흔하게 사용되는 php를 선택하여 집필되었다. 굳이 이유를 찾으면 가장 심플하게 예제코드를 보여줄 수 있기 때문이 아닐까 싶기는 하다. 개인적으로는 jsp 와 연동을 넣어주거나, 추가로 같이 실어주었으면 더 좋았을것 같다.
책의 장점
앞서서도 이야기 했지만, 가장 큰 장점은 친절함이다. 웬만한 프로세스는 다 스크린샷하여 책에 실려있다. 다운로드, 설치, 실행, 각 메뉴별 작동방법까지 이렇게까지 다 그림을 넣어야하나 싶을 정도로 많은 부분을 차지한다. 아마 이미지 몇개 빼고 텍스트로 대체했으면 책의 부피가 지금보다는 훨씬 줄었을 것이다. 이것이 장점이면서 단점이 될 수도 있을 것 같다.
또 다른 장점은 각 챕터에서 실습 코너를 넣어두었다는 것이다. 그저 챕터 마지막에 이런거를 해보세요 라는 일반적인 실습코너가 아니다. step별로 해볼 수 있게끔 되어있고 거기에 필요한 이미지, 쿼리, 결과 등도 상세하게 작성되어 있다.
더불어, 부분부분 비타민 퀴즈 라고 하여, 실습과는 별개로, 그러나 실습 후 풀어볼 수 있는 퀴즈가 제공되어 지면에 다 할애할 수는 없으나 경험해보았으면 하는 그런 퀴즈들을 제공하는 점도 장점이다. 필요에 따라 그냥 넘어가는 경우도 있겠지만 되도록 모든 실습과 퀴즈를 경험해보면, 이론으로는 부족한 부분을 채워나갈 수 있을 것이다.
몇 가지 아쉬운 점은, jsp나 이클립스와의 연관 설명이 없거나 부족한 부분, MySQL을 GUI기반에서만 설명하고 Command Line 으로는(꼭 필요한건 아니어도) 설명하지 않는 점, 초보자에게 맞추어져 있다보니 직장에서 대규모 시스템을 개발/운영한 경험, 다양한 sql을 사용해본 중고급 사용자들에게는 내용이 다소 얕은 부분이 일부 단점이 될 것이다. 그러나 데이터베이스에 처음 입문(그게 어떤 DBMS이든)하는 자와 전공으로 DB를 막 학습했거나 하고자 하는 분들에게는 매우 친절한 길잡이가 될 것이다.