개발자를 위한 인덱스 생성과 SQL 작성 노하우

개발자 입장에서 DB 인덱스 처리와
쿼리 작성 노하우를 명쾌하게 알려주는 책

  • 개발 현장에서 바로 통하는 인덱스 생성 및 쿼리 작성 노하우 제시
  • 관리를 쉽게 하고 개발 생산성을 끌어올리는 쿼리 작성의 정석 ‘공정쿼리’
  • 이론과 개념을 뛰어넘는 경험과 검증 기반의 DB 실무 노하우 전달
  • 기초 모델링 개념을 녹여낸 실무 중심의 SQLP, SQLD 준비서
  • DBGuide.net 최고 인기 연재를 책으로
  • 비유와 이야기로 풀어내는 명쾌한 접근, 쿼리작성 문제로 재미있게 공부
  • 개발자와 DB 전문가가 함께 볼 수 있는 DB 실무 가이드 북

책 입체 이미지

저자 이병국 저자 인터뷰로 이동    감수 김기창
분야  IT/ 데이터베이스    형태 190×250mm, 404쪽, 무선제본
정가 32,000원    발행일 2018년 6월 15일   ISBN  978-89-965600-9-8 (03230)
주문 전화 02-507-2340  팩스02-507-2350  메일 [email protected]

 

개발자 입장에서 DB 인덱스 처리와 쿼리 작성 노하우를 명쾌하게 알려주는 책.
데이터와 데이터베이스(DB)의 중요성이 어느 때보다 강조되고 있다. 얼마 전까지만 해도 DB에 대한 깊은 이해는 튜너나 DBA의 영역처럼 여겨졌다. 하지만 데이터 시대의 도래와 함께 상황은 달라졌다. 개발자도 DB에 대한 폭넓은 이해가 요구되고 있다. 이 추세를 반영하듯 DB 및 SQL 튜닝 소개서들이 속속 출간되고 있다.

개발자 입장에서 DB 인덱스 처리와 쿼리 작성 노하우를 제대로 풀어낸, 볼 만한 책 한 권이 나왔다. 『개발자를 위한 인덱스 생성과 SQL 작성 노하우』가 바로 그 주인공. 이 책은 데이터 지식 포털인 DBgude.net에서 3년 이상 연재되면서 큰 인기를 모았던 내용을 재구성한 것이다.

 

‘장보기를 잘하는 개발자가 쿼리도 잘 짠다’

『개발자를 위한 인덱스 생성과 SQL 작성 노하우』는 철저하게 개발자 중심으로 접근한 튜닝 가이드다. DB 전문가 대상의 이론이나 개념 중심의 튜닝에서 벗어나 코딩 시 헷갈리는 인덱스 지점을 어떻게 잡고, 실행계획(plan) 적용 방법을 그림과 비유로 흥미롭게 소개한다.

저자는 책에서 ‘개발자의 관심은 DB 이론이나 개념을 아는 데 있지 않다. 인덱스 포인트를 파악해 쿼리를 짜면 DB 속도는 물론 개발 생산성과 관리까지 한 번에 잡을 수 있다’고 소개하고 있다. 또한 ‘인덱스 포인트를 파악해 상식 선에서 접근해도 개발자 측면에서 SQL 튜닝은 충분히 잘할 수 있다’고 강조한다.

먼저 이 책의 인덱스 소개 방식이 눈길을 끈다. ‘인덱스 생성도’라는 그림이 그것이다. 개발자가 쿼리 작성 시 고민하게 되는 인덱스 생성 포인트를 설명할 때 계속 제시된다. 인덱스 생성도를 그려보면, 복잡한 쿼리 작성 시에도 인덱스 포인트를 정확하게 집어낼 수 있다. ‘인덱스 생성도’는 필자가 개발자 시절에 유독 헷갈리기만 했던 경험에서 나온 것이다. 개발자 입장에서 인덱스는 B의 핵심 개념임에도 어려워하는 사람이 많아서, 필자 스스로 이해했던 과정을 그림으로 도출한 것이 인덱스 생성도입니다.

쉽게 만나기 어려웠던 쿼리 작성 경험과 노하우도 눈에 띈다. 인덱스 생성 지점을 파악해 테이블 접근 순서(실행계획)에 따라 누구나 금방 알아보도록 작성한 쿼리를 이 책은 ‘공정쿼리’라고 소개한다. 반면 작성자 본인만 알 수 있는 쿼리를 ‘나쁜 쿼리’라고 한다. 나쁜 쿼리는 개발 생산성 저하뿐 아니라, 나중에 성능 및 관리 문제까지 야기할 수 있다.

“명절 제수용품을 사려고 주부가 재래시장을 방문하는 예로써 알아보자. 물건을 어떤 순서(How)로 살지 미리 생각한 주부는 그렇지 않는 주부보다 쉽게 장보기를 마칠 수 있다. 개발자들이 작성하는 쿼리도 장보기의 과정과 별반 다르지 않다. ‘개발자로서 나는 똑같은 장소를 몇 번씩 왔다 갔다 하면서 장을 보고 있지는 않나?’ 아니라고 자신 있게 답하려면, 쿼리 작성 시 어떤 경로로 장을 볼지 염두에 둬야 한다. 즉 사야 할 물건(What)뿐 아니라 어떤 순서(How)로 살 것인지에 대한 경로까지 쿼리에 포함해야 하는 것이다. 결국 잘 작성된 쿼리에는 실행계획(plan)과 인덱스 생성 위치(point)가 분명하게 드러난다. 이것이 바로 공정쿼리다. 공정쿼리는 결과 값(무엇)뿐 아니라 이걸 어떻게 보여줄 것인지를 방법(어떻게)까지 명확하게 드러낸 쿼리다.”

[그림 1] 인덱스 생성도로 알아본 ‘나쁜 쿼리’
나쁜 쿼리 이미지

[그림 2] 인덱스 생성도를 기준으로 튜닝한 ‘공정쿼리’
좋은 궈리 이미지

데이터 시대 달라지는 개발자의 역할

DB 속도를 높이고 문제의 지점을 찾는 일은 DB 튜너 또는 DBA의 전담 영역으로 여겨질 때도 있었다. 하지만 시스템 개발 현장은 DBA나 튜너에게 전적으로 의존할 수 없는 것이 현실이다. 심지어 DB 전문가가 없는 곳도 있다.

이 책은 DB 전문가에게 의존하지 않으면서도 개발자 스스로 DB와 호흡을 맞추는 방법을 소개한다. DB에 익숙하지 않은 개발자 입장에서 접근했으므로 어렵지도, 개념적이지도 않다. 인덱스나 튜닝 등 총 37회에 걸쳐 물탱크 구조 생활 주변의 것들과 비유하면서 소개한다. 달력, 마방진, 60갑자 등을 간단한 쿼리로 직접 구현해 보기도 한다.

‘데이터 모델링 기초 지식이 녹아 있는 책’

이 책은 DB의 구조, SQL의 기초, 데이터 모델링 등 DB의 기초나 데이터 이론에 대해서는 별도로 다루지 않는다. 그럼에도 책을 읽고 나면 자신도 모르게 데이터 모델링 개념과 SQL로 제어되는 DB의 원리까지 알게 된다.

필자는 DB 튜닝도 법칙이나 이론이 아닌, 상식선에 가능하다고 소개한다. 어떻게 그게 가능한지를 직접 보여주고 풀어보도록 하는 것이 바로 이 책의 매력이다. 이 책은 오라클 DB를 중심으로 접근하지만, 특정 함수 등을 소개할 때는 SQL Server와 MySQL 등의 DBMS별 차이점도 소개해 준다.

데이터 모델러인 위즈덤마인드의 김기창 대표 컨설턴트는 “이 책의 진정한 매력은 ‘인덱스 생성도’에 있다. 한눈에 들어오는 인덱스 생성도를 따라 책을 읽어가다 보면 인덱스를 저절로 이해하게 된다”고 말했다. 김 대표는 또 “인덱스 생성도에는 개발자 입장에서 필요한 모델링 기초 지식이 녹아 있으므로, 이론이 필요하지 않는 개발자에게 매우 유용한 책”이라고 추천했다.

[그림 3] 매회 주어지는 흥미로운 DB 문제와 풀이
그림3

 

대상 독자

  • DB의 특성을 이해하여 시스템 성능을 끌어올리고 싶은 초중급 개발자
  • DB의 설계∙구현∙관리까지 혼자서 책임져야 하는 개발자
  • 개발∙운영 현장에서 DB 전문가들과 원활하게 협업하기를 바라는 개발자
  • DB 또는 데이터 분석 분야로 진출하고 싶은 개발자
  • 경험으로 알게 된 DB 지식을 분명하게 정리하고 싶은 DBA
  • 실무 지식까지 쌓으면서 SQLP(SQL Professional) 또는 SQLD(SQL Developer) 자격증을 따고 싶은 대학생∙취업 준비생`