Skip to content

ghkddyto/sql-rehab-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQL 다시 잡기 — 재활 공부 노트

평소 JPA·GUI 도구·AI에게 맡기다 보니 잊어버린 SQL 기초를 다시 잡으면서 정리한 노트. SQLD·정보처리기사 시험 범위에 맞춰 주제별 가중치(⭐)와 함정(⚠️)을 표기해뒀으니, 시험을 준비하는 사람도 그대로 쓸 수 있다.

📖 이 노트가 만들어진 사연: SQL을 직접 짜본 게 언제였더라 — AI의 리팩토링 계획을 뒤집은 날 (블로그 'SQL 재활' 시리즈)

라이선스: CC BY-SA 4.0 — 출처를 밝히고 동일 조건으로 공유하면 자유롭게 쓸 수 있다.

목표

  • 손으로 SQL 짜는 감각 회복 (서브쿼리/조인/윈도우 함수까지)
  • SQLD 합격 (총점 60점 이상 + 과목별 40% 미만 과락 없음). 2과목(SQL 기본 및 활용)이 80점 비중 → 여기에 집중
  • 정보처리기사 필기/실기 SQL 파트 무난히 통과

학습 순서 (권장)

처음 읽는 법

SQL을 처음부터 완벽히 외우려고 하면 금방 막힌다. 먼저 아래 감각만 잡고 각 파일을 읽으면 된다.

GUI에서 하던 일 SQL로 하는 일 먼저 볼 파일
테이블 만들기/컬럼 추가 CREATE, ALTER 01
표에서 조건 걸어 행 찾기 SELECT ... WHERE ... 02
엑셀 피벗처럼 합계/평균 내기 GROUP BY, HAVING 03
두 표를 연결해서 보기 JOIN ... ON ... 04
조회 결과를 다시 조건으로 쓰기 서브쿼리, WITH 05
순위/누적합/이전 행 비교 윈도우 함수 06

처음 1회독 때는 문법을 다 외우기보다 **"이 쿼리가 어느 테이블에서, 어떤 행을 고르고, 어떤 열을 보여주는가"**를 먼저 해석한다. 시험 직전에는 함정 표시만 다시 보면 된다.

순서 파일 핵심 자격증 가중치
1 00-실습환경.md 어디서 칠지 정하기 -
2 01-DDL-DML기본.md CREATE/INSERT/UPDATE/DELETE ⭐⭐
3 02-SELECT-함수-NULL.md WHERE, 단일행함수, NULL 처리 ⭐⭐⭐
4 03-GROUP-BY-HAVING.md 집계함수, 그룹화 ⭐⭐⭐
5 04-JOIN.md INNER/OUTER/SELF/ANSI 조인 ⭐⭐⭐ SQLD 단골
6 05-서브쿼리-집합연산자.md 스칼라/인라인뷰/EXISTS, UNION ⭐⭐⭐
7 06-윈도우함수.md RANK/LAG/PARTITION BY ⭐⭐⭐ SQLD 매회 출제
8 07-계층형질의.md CONNECT BY (Oracle) ⭐⭐ SQLD 단골
9 08-트랜잭션-격리수준-락.md COMMIT/ROLLBACK, 격리수준 ⭐⭐
10 09-인덱스-실행계획.md B-Tree, 옵티마이저 ⭐ 정처기 빈출
11 10-모델링-정규화.md ERD, 1NF~BCNF ⭐⭐⭐ SQLD 1과목
12 11-DCL-VIEW-시퀀스.md GRANT, VIEW, SEQUENCE
13 12-PIVOT-정규표현식.md PIVOT/UNPIVOT, REGEXP ⭐ SQLD 공식 범위
EXAM-치트시트.md 시험 직전 1시간용 🔥
📝 EXAM-실전문제.md 자주 틀리는 문제 30개 🔥

표기 규약

  • ⭐SQLD빈출 : SQLD에서 매회 가까이 나오는 포인트
  • ⭐정처기 : 정보처리기사에서 자주 나오는 포인트
  • ⚠️함정 : 시험에서 헷갈리게 내는 부분, 실무에서 사고 잘 나는 부분
  • 💡실무 : 실제 운영 시 알아두면 좋은 팁
  • 표준 SQL 기준으로 쓰되, Oracle / PostgreSQL / MySQL 차이가 있으면 별도 표기
  • SQLD는 Oracle 방언이 자주 섞이므로, 시험 직전에는 Oracle 기준 함정을 우선 확인

재현 데모

노트만으로 감이 안 잡히는 주제는 돌려볼 수 있는 데모로 만든다.

  • demo/nplus1 — JPA N+1과 배치 페치: 같은 코드가 설정 한 줄로 SQL 201개 → 3개 (Hibernate 통계 실측)
  • demo/remaining-stock — 잔량(파생 값) 동적 집계 쿼리 해부: 인라인 뷰 소계 + LEFT JOIN + COALESCE (PostgreSQL 실측, 기대값 주석 포함)
  • demo/with-recursive — WITH RECURSIVE 계층 전수 조사: 샘플 트리에서 '가정을 어긴 노드' 찾아내기 (PostgreSQL 실측)
  • demo/threadlocal-ghost — ThreadLocal 유령 사용자 재현: 스레드풀 1개 + clearContext 누락이면 남의 인증 정보가 남는다 (Spring Boot 실측)
  • demo/audit-tx — REQUIRES_NEW 대조 실측: 같은 트랜잭션이면 감사 기록이 롤백과 함께 증발, 분리하면 생존

진도 체크

  • 00-실습환경
  • 01-DDL-DML기본
  • 02-SELECT-함수-NULL
  • 03-GROUP-BY-HAVING
  • 04-JOIN
  • 05-서브쿼리-집합연산자
  • 06-윈도우함수
  • 07-계층형질의
  • 08-트랜잭션-격리수준-락
  • 09-인덱스-실행계획
  • 10-모델링-정규화
  • 11-DCL-VIEW-시퀀스
  • 12-PIVOT-정규표현식
  • EXAM-치트시트 1회독
  • EXAM-실전문제 1회독
  • 기출문제 3회분

About

SQL 재활 훈련 노트 — JPA에 기대다 잊어버린 SQL 다시 잡기 (SQLD·정보처리기사 대비 겸용)

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors