| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 회고
- kotlin
- 문제풀이
- CJ UNIT
- 정보처리산업기사
- 알고리즘
- softeer
- 데이터베이스
- 코딩봉사
- 코딩교육봉사
- 파이썬
- 소프티어
- 백준
- SW봉사
- SQL
- BFS
- 백준 알고리즘
- python
- 1과목
- 프로그래머스
- 백준알고리즘
- 코틀린
- java
- 도커
- MYSQL
- programmers
- docker
- 공부일지
- C++
- 자바
- Today
- Total
JIE0025
[서평] SQL 실전 트레이닝 : 데이터 추출 과정 이해를 돕는 책! 본문

오랜만에 책을 자세히 서평해보려고한다.
< SQL 실전 트레이닝 >
내가 갖고 있던 SQL학습의 비효율을 해결해준 고마운 책이다
가장 먼저
내가 어떤 사람이고, SQL과 관련해 어떤 경험이 있는지 설명하려한다.
첫째.
내 상황과 수준을 알면, 책을 고를 때 참고할 수 있고
이 책의 장점을 더 잘 이해할 수 있을 것이라 생각하기 때문이다.
둘째.
내 글을 읽는 사람들이 나와 비슷한 사람이라면 (취준생이거나, 실무에 들어온지 얼마 안된 신입/주니어)
내가 책을 탐험해나간 과정과 발자취를 함께 따라오며 흡수했으면 하는 마음에서이다.
✅ 나의 과거 : SQL을 접하고 취업하기 까지
1️⃣ SQL을 대학생 시절 수업으로 처음 접했다.
당시에 수업 학점을 A0 A+을 받았지만
개념에 대한 시험을 잘 본것일 뿐 SQL문법으로 실제 데이터를 여러번 뽑아본 경험은 부족했다.

2️⃣ 졸업 이전에 SQLD를 취득 했다.

이떄는 공부 하는 방법에 대하여 잘 몰랐던 시절이라
개념을 달달 외우고, 시험용 문제들을 열심히 풀어보기만 했다.
반복적으로 문제를 풀어서 합격은 했지만
높은 점수는 받지 못했다.
3️⃣ 코딩테스트 대비를 위해 문제를 풀기 시작했다.
간단한 SELECT는 풀 수 있었지만 난이도가 조금 높아지면 어떤 문법을 사용해야할지 몰랐다.
결국 다른 사람들의 풀이를 참고하면서
스스로 풀어내는 힘은 부족한 상태로 다양한 문제만을 접하게 되었다.


✅ 나의 현재 : 총 경력 1년 9개월차 의 SW엔지니어
현재는 취업한지 1년 개발자, 9개월 미들웨어로 성장하고 있는 SW 엔지니어이다.
IT 기술에 대한 호기심이 많아서 퇴근 후에나 주말에 여러가지 기술이나 CS지식 등을 마구마구 공부하는 경향성도 있다.
최근에 미들웨어를 통해 WEB/WAS/EAI .. + 얕은 경험들과 지식들 (OS/네트워크/보안 등) 인프라적인 경험이 늘어나고 있었다.
다만 이 과정에서 개발/SQL 과는 살짝 거리가 생길 수밖에 없었다.
그래서 나는 완전히 벗어나지 않으려고
- 개인 프로젝트를 살짝씩 건들거나
- 기회가 되면 개발자 사내 SQL 튜닝 교육도 들었다.
- 개발선배님이 업무중 발생한 DB 이슈를 함께고민했다.
- DBA에게 궁금한 내용 질문하기
등 개발과 SQL(DB)에 대한 관심을 완전히 놓고 있지는 않았다.
최근에 9월 중 고객사의 요청으로 인프라관리시스템 기능 추가 및 유지보수를 잠시 해드렸는데
개발을 오랜만에 하는데도 새로운 배움이 있고 더 많은게 보이기 시작했다.
이러한 과정으로 SQL 공부의 필요성을 다시 느꼈다.
" 조금 더 데이터를 잘 뽑을 수있게 연습을 해야겠다. "
마침 연습을 잘 할 수 있을법한 책을 마주하게 되어
이 책을 천천히 공부해보고 리뷰를 남긴다.
✅ 목차 확인하기

이 책의 2개의 챕터를 공부했다.
모두 Join과 관련된 내용이다.
작년 실무에선 1개의 테이블만으로 데이터를 관리했었기 때문에
사실상 조인을 사용한 경험이 취업 이전의 상태로 머물러 있었다.
몇개월동안 SQL을 다루지 않던 상황에서 이 주제를 공부한다면
개념을 간단하게 복습할 수도 있고, 더나아가 문제 풀이 실력이 좋아지는지 점검 할 수 있는 훌륭한 기회가 될것이라 생각했다.
✅ 본문의 흐름

1️⃣ 개념 설명
가장 먼저 주제에 맞는 문법과 개념을 아주 간단하게 설명해주고 시작한다.
예를 들어 INNER JOIN을 살펴보자.
## 책내용
INNER JOIN은 두 개의 테이블을 공통된 컬럼으로 결합하여
두 테이블에 모두 존재하는 데이터만 선택하는 SQL 조인 유형입니다.
최종적으로 조인 조건을 만족하는 행만 반환됩니다.
간단하게 설명하고 그림이 함께 존재한다.
개념을 읽고 그림을 보면서 나는 가장 핵심적인 개념을 익힐 수 있었다.

왼쪽 테이블 첫번째 컬럼에 1,2 가 있고
오른쪽 테이블 첫번째 컬럼에 1,3,4 가 있다
첫번째 컬럼으로 기준을 삼아 공통으로 존재한다면
관련 데이터를 함께 테이블로 보여주는 것
그림에선 1이 공통으로 존재하기 떄문에 1과 관련된 모든 데이터가 나왔구나!
문법도 바로 보여주기 때문에 복기가 된다.

SELECT FROM table1 // 첫번째 테이블
INNER JOIN table2 // 두번째 테이블 두 테이블을 INNER JOIN한다.
ON table1.column_name = table2.column_name; // 테이블1의 컬럼과 테이블2의 컬럼의 내용이 같을 때 조인한다.
2️⃣ 난이도 별 문제
개념을 익힌 후에는 문제가 나온다.
한 챕터당 2-4문제 까지 수록되어있다.
첫번째 문제는
방금 공부한 문법의 사용방법을 적용하는 쉬운 문제이다.
챕터의 첫번째 문제를 통해 기본적인 테이블 보는 방법과 문법의 사용법을 익힐 수 있다.

나는 가장먼저 문제를 보고 한것이 데이터를 빠르게 이해하는 것이었다.
오랜만에 테이블을보고 데이터를 보려니 눈에 확 들어오는 편이 아니어서
테이블 구조랑 예시 테이블이 같이 그려줘야겠다 생각이 들었다.
예시테이블을 빠르게 손으로 그려보면서
data type이나 PK 등 테이블구조의 정보를 적어주었다.
두개를 동시에 합쳐서 보면 조금더 빠르게 문제에서 제공하는 테이블을 이해할 수 있었다.
<챕터2 LEFT OUTER JOIN 문제를 보며 적어본 데이터 >

3️⃣ 정답 풀이 (과정 설명)
이제 문제를 이해했으니 혼자서 쿼리를 끄적여 보게 된다.
정답풀이에선 단순히 답만 보여주고 끝내는게 아니라
반복해서 개념을 익힐 수 있도록 다시 Inner Join에 대한 구체적인 개념의 설명이 존재한다.

첫번째 문제에선 복습 효과를 내고,
두번째 문제 부터는 더 어려운 개념이 포함되어있기 때문에 더 깊은 사고를 할 수 있도록 그 과정을 도와준다.
▶️ 함께 알아둬야 하는 개념 추가 설명
이 책의 친절한 특징이 또 한번 드러나는 부분이 있다.
INNER JOIN 2번째 문제 정답 풀이에선
까먹고 있었을 수도 있는 SQL 작성 순서와 실행순서에 대한 설명이 있다.
사소한 부분일수도 있지만
어떤 개념이 필요한 시점에 추가적으로 공부할 수 있게 넣어두어서
기본기를 탄탄하게 복습하면서 읽을 수 있다는것도 장점이다!



✅ 오답 풀이
난이도가 올라간 문제에선
답을 도출해나가는 과정을 더욱 더 자세하게 보여준다.

테이블과 SQL문을 통해 단계별로 1단계 -> 2단계 -> 3단계 처럼 데이터 추출하는 과정을 차근차근 따라오게 한다.
위에서 언급한 SQL 실행 순서를 다시 복기할 수 있게 된다.
ex )
1단계 가장 쉽게 생각해서 SQL문을 작성하면 간단하게 이런 데이터가 나온다
2단계에서 이 문법을 써서 이런 데이터를 도출한다
이런 뉘양스로 자세한 내용을 기반으로 설명을 해주기 때문에 정말 재미있다.
개발자들이 쿼리를 작성하면서
틀릴수 있는 예시도 함께 보여주어서
이렇게 작성하면 어떤 문제가 발생하는지도 함께 알 수 있다.
추가로 다른 해결 방법도 알려주기 때문에
한 주제에 대해 깊고 다양한 생각을 할 수 있게 된다.


이렇게 2개의 챕터만을 공부했음에도 복습도 굉장히 잘 되었고, 새로운 시야/ 깨달음도 있었다.




✅ 누구에게 추천하는가?
SQL 문법 자체를 모르는 완전 입문자는 이책을 읽으면 안된다고 생각한다.
대신
- 문법을 막 배워 기본기를 익힌 상태
- 문제 풀이를 많이 안해본 사람
- 문제를 끝까지 풀어본 경험이 부족한 사람들
즉 SQL 개념은 알지만 문제를 풀 면 막히는 사람들이 읽으면 좋다.
이 책을 통해 실전 감각을 깨우고
더 많은 문제를 풀어보고 싶다는 감정을 느끼기만 해도 충분하다 생각한다.
✅ 마무리 글
지금은 시간이 부족해서 책을 한번에 다 읽을 수는 없지만
실무 문제를 풀면서 생각날때마다 틈틈히 공부해
SQL실행 과정을 잘 숙지하여 데이터를 잘 뽑아내는 개발자로써 성장하고 싶다!
언젠가 책을 모조리 다 읽어버려야지!! 😁
'커뮤니티 활동 > 리뷰' 카테고리의 다른 글
| [서평] 그림으로 이해하는 네트워크 구조와 기술 (1) | 2023.08.23 |
|---|---|
| [서평] Do it! 알고리즘 코딩테스트 (자바편) (0) | 2022.04.11 |