메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

SQL에 대한 중복 투자는 그만! 이 책 하나로 끝낸다!

8delp***

|

2021-06-20

소문난 명강의 : 김상형의 SQL 정복

DBMS 제품이나 개발툴이 아닌 SQL 언어 그 자체를 배우는 바이블 도서다. 100여 개의 실습 문제를 직접 해결해보고 풀이를 확인하면서 최적의 시간 내에 SQL을 정복할 수 있다.

  • 저자 : 김상형
  • 출간 : 2021-05-01

데이터베이스를 다루는 책이 많이 나와있다. 내가 갖고 있는 책 중에는 오라클, MongoDB, MySQL 등 특정 DBMS에 맞춘 것이나, 모델링 기법, 데이터베이스의 구조 등을 배울 수 있는 데이터베이스의 이론적이고 약간 추상적인 그런 책들도 있다. 그런데 이 책이 독특했던 점은 바로 한 책에서 Oracle, MSSQL, MariaDB 이 세 DBMS를 한 책에 동시에 담았다는 것이다.

데이터베이스가 무엇인지에 대한 개괄적 설명, DBMS의 역사와 현재 추세 등 소개를 먼저 시작하는데 교과서적인 내용 뿐만 아니라 구조에 대한 시각적 설명, 실습을 위한 설치파일 다운로드와 설치 과정까지 빠짐 없이 다루었다. 그런데 여기에 세가지 DBMS를 한꺼번에 배운다라... 또 해당 DBMS에 제격인 클라이언트 프로그램까지 잘 설명하였다.

초반부 설명에도 나와있지만 입문자들은 혼란스러울 수도 있기 때문에 처음에는 오라클 위주로 익히고 지나가라고 한다. 또한 저자가 사용한 SQL 문들이 책에 빠짐 없이 잘 수록되어 있고 너무 기계적인 수준으로 작성해야 하는 길고 반복적인 쿼리문은 저자가 제공하는 기술 지원 페이지에서 .sql 파일로 다운로드가 가능하도록 되어있다고 한다. 그러나 짧고 간단한 SQL문은 직접 손으로 쳐보는 것을 추천하고 있다. 커뮤니케이션으로서의 언어도 그렇지만 컴퓨터 언어 또한 교과서로 10년, 20년 공부한다고 해도 직접 입 밖으로 꺼낸다든지, 손으로 익힌다든지의 과정이 없다면 절대 유창하고 자연스러울 수 없다. 결국엔 Output의 문제가 중요하다는 것이다. 어쨋든 교재의 저자도 권하는 것이니 길고 반복적인 SQL은 복사, 붙여넣기를 이용하되 처음 배우는 입장이라면 더더욱 손으로 직접 SQL문을 따라해보고 그 DBMS에서 나오는 결과까지 바로 눈으로 확인하는 방법이 좋다고 생각한다.

일단 저자가 이 세가지 DB를 다루는 이유에 대해서 SQL을 공부하는데에 들어가는 중복투자를 덜기 위해서라고 한다. 각각의 DBMS의 SQL 문법을 각자 따로따로 배운다고 해보자. DB별로 같은 내용을 SQL 문법과 제품이 다르다는 이유로 반복하여 공부해야 한다. 효율을 생각한다면 공통적인 부분은 한번에 배우고 차이에 대해서만 좀 더 배우자는 것이다. 게다가 Oracle, MSSQL, MariaDB를 선택한 것은 좋은 선택인 것 같다. SQL 문법이 이질적으로 달라지는 DB이기 때문이다. 다만 아쉬운 점은 오라클과 내부 구조는 많이 다르지만 어느정도 오라클과 비슷한 SQL문을 가진 MariaDB(MySQL) 보다는 차라리 PostgreSQL을 선택했으면 어땠을까란 생각을 해본다. 오픈소스라는 점이 MariaDB와 닮았고 MariaDB(MySQL)에 밀리지 않는 점유율을 갖고 있기 때문이다. 그리고 오라클과 비교해서 약간 SQL문에서도 거리가 꽤 있기 때문이다.

이 책은 약 700페이지 가량의 분량으로 가볍지는 않은 양을 커버하고 있는데 그 이유는 입문자와 중급자까지 모두 포괄하려고 했기 때문일 것이다. 설명을 보면 SQL문 실행 후 결과를 바로 실제 SQL 쿼리 툴로부터 나온 것으로 볼 수 있으며, 이런 것까지 과연 설명할 필요가 있을까란 걱정이 들 정도로 세세하고 자세하게 내용을 이해시키려고 한 흔적이 보이기 때문이다. 그래서 입문자 독자들에게는 처음부터 천천히 읽어나가되 어느정도 SQL을 실무에서 써본 경험이 있는 사람은 내 개인적으로도 어렵고 이해는 했더라도 계속계속 지속적으로 리마인드를 해주어야 하는 제8장 모델링 부분부터다. 이 8장부터 본격적으로 DB 설계 때문에 머리를 아프게 하는 '정규화'!!! 가 시작하기 때문이다. 게다가 바로 참조 무결성으로까지 이어진다. 또 조인, 함수, 뷰라는 엄청난 산을 넘어 '데이터웨어하우징' 작업에 반드시 필요한 소계(ROLLUP, CUBE 등), 통계, 피봇 등이 나온다. 그뒤로 이어지는 프로시저, 커서, 트리거 부분까지 가게 되면 SQL이 결코 만만한 언어가 아님을 알게 될 것이다. 그래서 입문자를 벗어난 독자들은 앞은 일단 지나가고 8장부터 끝장까지 공부하는 것을 추천하는 것이다. 일종의 '선택과 집중'의 전술이랄까

그냥 DBMS 설치만 알려주고 쿼리를 SQLPLUS나, 커맨드창과 같은 불편한 UI에서 할 것을 권하거나 아예 클라이언트 도구들이 많으니 자신이 원하는 것을 쓰라며 바로 지나쳐버리는 무책임한 책도 많은데 이 책은 세개의 DB를 다루고 있음에도 각 DB에 맞는 최적의 툴을 알려주고 설치 방법까지 친절하게 알려준다.

워낙 내용이 방대하다보니 입문자는 그 분량에 압도되기 쉬울 것 같은데 끈기를 갖고 읽다보면 데이터베이스에 대한 막연한 두려움, 공포를 갖지 않아도 될 것이다. 요즘 대학교에서는 교수들이 10년 전에 찍었던 강의 영상을 재탕해서 올린다는데 그런 학생들에 대한 존중은 1도 없는 강의보다 오히려 풍부하고 보다 실무에 가깝게 포함시킨 예제로 공부하는게 백배 더 낫고 가성비적으로도 좋다.

나는 배우고 배우고도 조인 부분은 아직도 어렵다. 이번을 계기로 여러번 재독하여 데이터베이스에 대한 깊은 이해라는 선물이 주어졌으면 좋겠다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?