티스토리 뷰
개요
제이펍 IT 전문서 리뷰어 활동으로 “실전 SQL 퀵스타트”를 리뷰한다.
알라딘 링크: http://aladin.kr/p/FqN4d
리뷰 동기
최근 데이터, 데이터베이스에 대한 책, 유튜브를 연달아 보았다.
하나의 주제로 다양한 넓이와 깊이의 콘텐츠를 이어서 보면 그 시너지가 있다. 이 책은 SQL을 분석에 사용해야하는 초급자의 입장에서 챙겨봐야하는 부분들을 다룬다. 또 새로운 관점으로의 접근을 하는 즐거움이 있었다.
- 유튜브: 쉬운코드 님의 데이터베이스 강좌
- 책: 데이터 중심 애플리케이션 설계
특징
이 책은 목표가 선명하다. 그리고, 그 목표를 성공적으로 달성한다.
SQL을 이용하여 데이터베이스에서 원하는 데이터를 추출해내어야 하는 초급자가 빠르게 SQL에 익숙하게 해주는 것이다.
- 초급자를 위한 책이지만 저자는 이 분야에 오래 종사한 전문가인데다 그렇게 다져온 지식을 사람들에게 알려주는 것에도 전문가이다.
- 목표와는 무관한 기술의 역사나 원리는 과감하게 제외하였다.
- 바로 실전이다. 제공한 데이터베이스에서 원하는 값을 얻어내는 방법을 바로 하나씩 해본다.
- 한 걸음 더, 그리고 데이터 분석 체크포인트는 가르쳐주는 것을 따라하는 것을 넘어 직접 생각하고 시도해보는 기회를 준다.
인상적이었던 부분
초급을 위한 책이면서도 저자는 전문가라는 걸 느끼게 하는 부분을 종종 만났다. 다음은 그 일부이다.
문제를 우선 일상에서 우리가 쓰는 자연어로 표현을 해보자. 잘 정리된 문장을 만들고 나면 SQL 질의는 자연히 만들어질 것이다.
쿼리의 목적을 한 문장으로 간결하게 말한다면 어떤 문장이 될까? p45
이 문제를 해결하기 위해서는 쿼리를 일상적인 언어로 바꿔봐야 합니다. p125
서브쿼리를 사용할 때에 저자는 자신만의 컨벤션으로 외부 쿼리의 연산자, 함수, 키워드는 대문자, 내부 쿼리의 경우는 소문자를 쓴다. 이런 소소하지만 세심한 규칙은 전문가들의 특징이다.
연산자, 함수, 키워드는 대소문자를 가리지 않습니다. 필자는 개인적으로 외부 쿼리에는 대문자를 쓰고, 서브쿼리에는 소문자를 쓰는 게 익숙합니다. 이렇게 하면 외부 쿼리와 내부 쿼리를 구별하기 쉽기 때문입니다. p139
서브쿼리와 조인의 상호 호환성과 어느 것을 쓰는 것이 더 좋은가에 대한 전문가의 조언이다. 책을 읽으며 서브쿼리가 편하다 생각했기에 더욱 인상적이었다.
데이터베이스 프로그램의 입장에서는 JOIN 문이 최적화(omtpmizer)를 더 잘 활용하기 때문에 서브쿼리보다는 조인을 선호합니다. 서브쿼리를 만들면 ‘값 중심’으로 생각하게 되고, 이런 방식은 일상적인 사고방식과 비슷하므로 더 쉽게 느껴집니다. 하지만 관계형 데이터베이스를 잘 다루기 위해서는 ‘집합 중심’의 사고방식이 필요하므로 시간이 조금 더 걸리더라도 조인으로 문제를 풀길 권하는 전문가도 있습니다. p148
현재 회사에서 만들어 사용하는 뷰는 이와 같은 컨벤션을 쓰지 않기에 고개를 끄덕였다. 꼭 이렇게 쓰지 않더라도 view_ 와 같이 prefix를 쓰면 어떨까싶다.
뷰 이름은 V_로 시작하는 게 좋습니다. 이런 규칙을 정해두면 누구든 이 코드가 뷰라는 걸 금방 알 수 있습니다. p152
책은 다음 그림과 같이 지면을 아끼지 않고 표를 최대한 상세히 보여주는데 이러한 표 조차 세심하게 고려해 넣은 것이 느껴졌다.
결론
SQL을 처음 접하거나, 아직 익숙치 않은 분들이라면 이 책을 따라가며 하나씩 직접 타이핑해가며 배우기를 권한다. 그리고 책 속의 한 걸음 더, 그리고 데이터 분석 체크포인트까지 놓치지 말고 해보시라(심지어 맨 뒤에 데이터 분석 체크포인트 정답지까지 있다). 군더더기 없이 잘 짜여진 과정이기에 이렇게 하더라도 시간이 많이 걸리지 않을 것이고 어느새 SQL에 익숙해져 있을 것이다.
'book-movie' 카테고리의 다른 글
책: 처음 시작하는 FastAPI (0) | 2024.07.09 |
---|---|
2024년 전반기 독서 후기 (0) | 2024.07.08 |
책: 도메인 주도 설계 핵심 (0) | 2024.05.20 |
책에 관한 세 문장 - 황보름님의 매일 읽겠습니다 (0) | 2024.05.19 |
개발자 필독서 - 데이터 중심 애플리케이션 설계 (0) | 2024.05.16 |
- Total
- Today
- Yesterday
- clean agile
- Gin
- 제이펍
- 독서후기
- Bug
- 2023
- websocket
- OpenAI
- 티스토리챌린지
- intellij
- strange
- API
- 체호프
- go
- bun
- 노션
- 인텔리제이
- ChatGPT
- github
- 오블완
- 클린 애자일
- 잡학툰
- agile
- Shortcut
- folklore
- 영화
- solid
- 독서
- golang
- notion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |