| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- NAT
- s3
- node group
- aws-loadbalacner-controller
- dns
- route53
- aws ses #aws lambda
- 이렇게 하면 된다
- httpasswd
- 에이전트 구성
- 코드커버리지
- docker
- jenkins
- instances failed to join cluster
- 클러스터 보안 그룹
- saa-c03 #saa #aws certified solutions architect - associate
- Gateway
- fruition
- 스터브
- Pipeline
- Terraform
- assumerole
- 테라폼
- ingestion
- IRSA
- SQL
- 에이전트 유형
- kubernetes
- helm_release
- 추가 보안 그룹
- Today
- Total
cloudwithbass
[서평단] SQL, 이렇게 하면 된다 본문
제이펍 출판사에게 책을 제공받아 작성하는 리뷰입니다.

제가 회사에서 하는 일 중 하나는 개발자가 작성한 쿼리를 튜닝하는 것입니다.
그렇다보니 쿼리를 인덱스에 태우는 방법에만 몰두하느라 이 책의 내용들이 생소했습니다.
이 책의 대부분에선 SQL이라는 언어의 특성과 그 특성을 활용하는 방법에 대해 소개하기 때문입니다.
(물론 쿼리 튜닝에 대한 내용도 11장에 짤막하게 있습니다.)
따라서 이 책을 아래와 같은 분들에게 추천합니다. (저입니다.)
- SQL 기본 문법과 인덱스 정도만 아는 사람
- 그 수준에서 다음 단계로 나아가고 싶은 사람
'집합론' 관점에서의 SQL
처음 SQL을 접했을 때, 프로그래밍 언어만 다루다가 SQL을 사용하니 아주 답답했습니다. 뭔지 모를 이질감이 느껴졌었는데요, 이 책을 읽고서야 그 이유를 깨달았습니다. SQL의 기초 이론 중 하나는 집합론이며, '집합 지향'으로 설계된 언어이기 때문입니다.
SQL의 토대가 되는 이론 중 하나가 집합론이기 때문에 프로그래밍 언어와는 차이점이 있었습니다.
집합 지향 언어를 절차 지향 언어처럼 다루려 했으니 당연히 이질감이 들었을 것입니다. 이 책에서는 SQL 설계 의도에 맞춰 SQL을 강력하게 다루는 방법을 설명합니다. 하지만 이런 사고 방식에 미숙해서인지.. 아직은 집합 지향적으로 다루는 게 어렵습니다. 익숙해질 때까지 반복 학습해보려 합니다.

SQL의 역사
IT의 세계에선 역사를 아는 것이 중요하다고 생각합니다.

이 책의 파트 2에선 RDB의 역사를 배울 수 있습니다.
SQL이 어떠한 목적으로 설계되었는지, 어떤 과정을 거쳐 현재의 SQL이 되었는지 등을 알 수 있습니다.
이런 지식들은 당장엔 도움되지 않겠지만, SQL을 보는 시야를 넓혀줄 것이라고 생각합니다.
그 외 인상 깊은 내용들
이진 논리(True, False)만 지원하는 프로그래밍 언어들과 달리, SQL에서는 unknown이라는 세 번째 진리값을 갖는다는 점
따라서 NULL을 다룰 땐 결과가 직관적이지 않다는 점
그럼에도 엔지니어라면 이런 내용을 확실히 이해해야 한다는 점
그리고 WinMagic => 윈도 함수는 서브 쿼리를 대부분 대체할 수 있다는 점
SQL을 집합처럼 다루는 방법과 윈도 함수를 더 공부해야겠습니다.

'그 외' 카테고리의 다른 글
| ★ 도메인에 노션 페이지 배포기 (Fruition) (3) | 2024.07.14 |
|---|