본문 바로가기
[Review]/Book

[도서 리뷰] 러닝 MySQL

by 해피빈이 2023. 10. 29.

> 진행에 앞서

프로그래밍에 연관된 직업을 가진 사람이라면 SQL은 뗄레야 뗄 수 없는 분야이다.

이것은 비단 프론트엔드나 모바일 개발자라 해도 마찬가지이다.

SQL에 대해 조금의 지식도 없거나 설계를 단 한번도 해보지 않았다면 언젠가는 장벽이 존재한다는 말이기도 하다.

(물론 시스템프로그래머나 일부 특수직군은 예외이나, 그정도는 어느 분야든 존재하는 예외 정도의 비율이라고 해두자)

 

그 중에서도 단연코 MySQL은 네임드 중 네임드이다.

사실 산업직군에서 많이 사용하는 것은 Oracle이 맞다. 하지만 그런 사람이라 할 지라도 MySQL은 접해보지 않을 수 없는 것이 애초에 Oracle은 개인 사용자를 위한 것도 아니기에 개발 공부하면서 접해봤을 SQL은 MySQL이 대중적이라고 보여지기 때문이다.

 

물론 현재는 MySQL마저 Oracle이 인수하면서 인기가 시들어가는 중이라는 생각이 들지만, 그에 따른 대안이 후신인 MariaDB라는 것을 생각해보면 MySQL은 그 영향력을 무시할 수 없다는 생각이 지배적이다.

 

그래서 MySQL에 대한 이 책이 더 기대가 되었다.

 

> 책에 대한 간단한 정보

앞표지

이 책은 오라일리에서 출간한 원서를 번역한 책이다. 오라일리의 책은 항상 기대를 저버리지 않기 때문에 더 기대가 되었다. MySQL과 저 푸른점박이까마귀나비는 어떤 연관이 있는지는 모르겠지만 묘한 매칭이 되어 신기하였다. MySQL을 대표하는 돌고래 심볼도 푸른색 기반이고, 이 나비도 그러했기 때문이 아닌가 하고 생각해봤다.

 

뒷표지

뒷표지에는 다소 아쉬운 점이 이 책의 장점을 제대로 살리지 못했다고 느껴진다. 그냥 MySQL의 대강 여러 부분을 이야기 하고 있다고 표현한 듯 보이지만, 이 책은 MySQL의 모든 부분을 아우르고 있다는 사실을 이 내용만으로 알기 어렵기 때문이다.

 

 

> 인상깊은 부분들

각종 에디션에 대한 설명이 눈에 띄었는데, 이제껏 MySQL은 유료이며 무료를 위해서는 MariaDB 밖에 없다고 생각했기 때문이다. 하지만 이런 배포판에 대한 설명으로 다양한 포크 버전이 존재한다는 사실을 알게 되었으며, 각 특징도 알게 되었다. MySQL이 유료화 되었다 할지라도 여전히 다양한 방법으로 무료로 사용할 수 있는 방법 또한 존재한다는 것은 이전의 매력이 사라지지 않았음을 의미한다.

 

ER 다이어그램 기호

ER(Entity Relationship) 다이어그램은 데이터베이스를 설계하기 앞서 꼭 필요한 과정이다. 다만 매번 그리지 않는다면 이에 대한 지식은 채우기 어려울 수 있는데, 그에 대해 쉽게 요약한 이 기호표를 보며 깜짝 놀랐다. 각 요소를 어떻게 표현할지 한 눈에 보이기 때문이다. 언제라도 필요한 사람은 이런 것을 하나만 외워두자.

 

ACID

트랜잭션이 보장되어야 하는 요소에 대해 이야기 하는 서두이다. ACID는 Atomic, Consistent, Isolated, Durable에 대한 앞글자를 딴 약어이며, 이것을 보장할 수 있는 구조로 작동되어야 한다는 것이다. 어떤 데이터 처리는 서로 다른 프로세스에서 동시 접근할 경우 문제될 수 있기 때문에, 트랜잭션의 단위에 맞춰 데이터 설계 및 처리도 그에 따라 해야 한다는 것이다.

 

메모리 사용에 대한 모니터링

잘 알 수 있는 부분이기도 하겠지만, 그래도 어느정도 DB를 다루다보면 처리량이 많을 경우 효율성을 생각하지 않을 수 없기 때문에 꼭 필요한 프로파일의 한 단계로서 모니터링에 대한 한 부분이다. 메모리가 부족하면 결국 호스트 머신에 영향을 줄 수 밖에 없고, 그렇게 되면 시스템이 중단될 수 있기 때문에 중요하다. 일단 진단을 해야 개선할 수 있으므로 이러한 지식도 챙겨야 한다.

 

로드밸런싱에 대한 한 방법

ProxySQL 로드 밸런서에 대한 설명이다. 앞서 측정했던 결과로 SQL에 대한 부하가 예상된다면, 로드밸런스로 해결하는 편이 좋다. 그렇게 하기 위한 방법까지도 제시하고 있다. 물론 상세하게 파악을 위해서는 다른 자료를 참고해야 할 수도 있으나 개념을 파악하기에는 매우 친절하다. 특히 클라이언트 애플리케이션이 SQL에 접근하기 위해서는 어떤 구조로 접근해야 하는지 그림으로 잘 설명되어 있기 때문에 도움이 되었다.

 

백업 방법

데이터베이스는 물리적인 머신에 종속되어 있다. 이 말인즉슨 물리적인 머신에 의해 언제든 데이터가 유실될 수 있음을 의미하기도 한다. 그래서 백업과 복구는 중요한 섹션인데, 이러한 부분도 알 수 있다. 이 부분은 XtraBackup을 이용하여 백업을 할 수 있음을 알 수 있고, 그 백업도 단순 풀 백업이 아닌 증분 백업이 가능하다는 내용이다. 이정도까지 파악했다면 SQL을 운용하기에 어느정도의 지식은 갖춰진 상태라고 생각한다.

 

 

> 괜찮은 부분

1. 설치부터 아주 상세히 알려준다.

MySQL을 비롯하여 이런 시스템을 학습하는데 의외의 난관은 바로 설치할 때부터 예상치못한 어려움에 부딪히기 쉽다는 것이다. 그래서 일반 책에서는 설치에 대한 부분을 가볍게 다루고 넘어가는데, 잘 된다면 당연히 문제가 없지만 만약 문제가 생긴다면 시작부터 극심한 스트레스에 맞닥뜨리게 된다. 이런 부분을 염두에 두었는지 무려 100페이지나 할애하며 다양한 플랫폼에 대응하여 설명하고 있다. 이런 부분이 매우 세심한 설명이라고 생각된다.

 

2. 한 권으로 A부터 Z까지 마스터할 수 있도록 광범위하게 다루고 있다.

SQL을 학습하기위해 필요한 세부 분야는 다양하다. SQL의 설치, 데이터베이스의 모델링과 설계, 쿼리(DML, DDL, DCL) 작성방법, 사용자 권한 부여 및 제거, 백업 및 복구, 서버 튜닝, 모니터링, 로드밸런싱 등 SQL에 대해서 이름만 들어본 사람이 하나의 서비스를 운영하기까지 필요한 범위의 지식에 대해 폭 넓게 다루고 있기 때문에 모두에게 도움이 된다고 볼 수 있다.

 

3. 다양한 다이어그램 및 캡처를 활용하였다.

글로만 설명하면 이해하기 어려운 부분들이 있다. 단지 설치 페이지가 아니더라도, 각 실행 결과나 ER 다이어그램, 조인시 테이블간의 관계에 대한 부분들이 그것이다. 그러한 부분을 캡처 혹은 도표로 잘 표현했기 때문에 이해가 쉽게된 부분들이 있다. 책의 두께가 다소 두꺼운만큼 포기할 수도 있었을텐데, 독자를 배려한 부분이라는 생각이 들어서 마음에 들었다.

 

> 아쉬운 부분

1. 섹션별 구분이 잘 되어있지 않아 찾아보기 쉽지 않다.

다양한 주제를 다루고 있는 책인 만큼 원하는 섹션을 찾아 볼 경우가 많다. 하지만 이 책은 겉으로 볼 때 해당 부분이 어떻게 나누어져 있는지 어디에 있는지 찾기가 쉽지 않다. 그래서 눈에 띄도록 챕터 혹은 파트별 구분 페이지 표시를 잘 해 놓았다면 좀 더 쉽게 찾을 것 같다는 생각이 들었다. 이 책이 특히 바이블과 같은 두께와 내용을 갖고 있기 때문에 더욱 기대했던 부분인데 그 부분을 채워주지 못하고 있다는 생각이 들었다.

 

2. 전체적으로 1도 인쇄라 쉽게 눈에 띄지 않는다.

첫 번째 항목과 유사한듯 한 부분이기도 한데, 섹션별 구분이야 색상이 필수라고 생각한 부분은 아니었지만, 그래도 전반적으로 2도 인쇄 정도는 되었으면 하는 아쉬움은 있다. 책을 보다보면 중간 중간마다 강조하고 싶은 포인트가 있다고 생각이 드는데, 그런 부분이 잘 눈에 띄지가 않는다. 원서 저작권을 비롯하여 책 두께도 있는지라 인쇄 가격이 올라갈 것을 염려한 결정이 아닌가 하는 생각이 들었지만, 책이 두고 읽기에 좋은 만큼 이 책은 그 가치 지불을 하고 구입하는 사람이 있을 것으로 보이기 때문에, 해당 부분으로 인해 가격이 올라간다 하더라도 좀 더 항목별, 강조 포인트별로 눈에 띄도록 2도 인쇄라도 도입했더라면 좋지 않았을까 생각이 들었다.

 

> 추천 독자

- 개발자

- MySQL을 직접 다루고 있는 실무자

- 전산학 전공 학생

 

> 개인적인 평점

- 가격: 7 / 10

- 내용: 10 / 10

- 디자인: 8 / 10

- 구성: 8 / 10

 

> 정보

저자: 비니시우스 그리파, 세르게이 쿠즈미체프

옮긴이: 김선종

출판사: 한빛미디어

가격: 43,000원

전체 페이지: 731페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형

댓글