독서기간_2023년 1월 10일 ~ 2023년 1월 20일
저자_미크
출간일_2016년 1월 30일
😦... 내가 이걸 아직도 안 썼다니...
데이터베이스, 특히 SQL은 간과하기 쉽다. 작은 예제 테이블에서 SELECT, FROM, WHERE 문을 잘 조합하면 원하는 데이터를 조회할 수 있다. 다른 테이블과 관계된 데이터의 조회도 필요한가? 그럼 JOIN을 사용하면 된다.
그런데 테이블 결합 시 발생하는 결과를 생각해본 적 있는가? 카티션 프로덕트가 초래하는 성능 이슈를 아는가? SQL 실행계획을 아는가? 조건 분기, 윈도우 함수를 아는가? 그렇지 않다면 이 책을 읽어보길 바란다. 1000개도 안 되는 데이터베이스 테이블에서 조회만 잘 한다고 SQL을 잘 쓰는 것이 아니다.
신입 개발자 준비하면서 얼마나 큰 데이터를 다뤄봤겠냐 아무리 로직을 깔끔하게 짠들 서버의 성능은 쿼리문 하나로 결정된다. 수억 개의 튜플이 존재하는 테이블 두 개를 조인해서 조건이 일치하는 단 하나의 튜플을 조회할 때 비용은 만만치 않을 것이다. 데이터베이스 엔지니어인 저자는 쉽게 지나칠 수 있는 쿼리의 비용을 강조한다. 또 쿼리는 절차적인 코드가 아니다. 개발자라하면 반복문을 통해 결과를 얻는 것에 익숙해져있다. 이 책에서 반복없이 쿼리를 작성할 수 있도록 도와준다.
SQL이 성능을 좌우한다는 것도, 결합없이도 서브쿼리없이도 데이터를 조회할 수 있다는 것을 알았다. SQL 연습이라고는 프로그래머스 사이트에서 성능 관계없이 쿼리 작성하는 예제가 거의 전부였다. 무지성 결합의 위험성과 GROUPing의 유용성을 알게 되었다. 또 그룹핑 위에 윈도우 함수가 존재한다는 것을... SELECT, FROM 문만을 사용해 획기적인 쿼리를 작성할 수 있다.
또 다시 모르는 게 많다는 것을 알게 해준 책이다^^ 어떤 분야에서든 전문가는 다르구나. 나도 책 쓸 수 있을 때까지 파이팅하겠다.
'독서 > 개발' 카테고리의 다른 글
[서평 23년-21] 스프링 부트 실전 활용 마스터 (0) | 2023.05.15 |
---|---|
[서평 23년-20] 자바와 JUnit을 활용한 실용주의 단위 테스트 (0) | 2023.05.06 |
[서평/23-15] Do it! 플러터 앱 프로그래밍: 오픈 API 활용 + 파이어베이스 + 구글 맵 + 광고 수익까지 (0) | 2023.03.31 |
[서평/23-13] 개발자를 위한 글쓰기 가이드: 예제로 배우는 테크니컬 라이팅 핵심 비법 (2) | 2023.02.21 |
[서평/23-12] 컴퓨터과학으로 배우는 블록체인 원리와 구현 : 수학, 암호학, 네트워크 이론과 실습으로 이해하는 블록체인 (0) | 2023.02.14 |