[SQLD 시험 D-10] 남은 10일, 합격을 위한 최종 정리와 공부 루틴
요즘 블로그에 SQLD 1과목, 2과목 공부한 내용을 요약 정리해서 차곡차곡 올렸어요. 벌써 시험이 10일밖에 남지 않았다는 게 실감이 나지 않아요. 사실 아직 부족하다는 생각이 들기도 하고, 한편으로는 “그래도 정말 많이 했구나” 싶은 마음도 들어요. 이제부터는 그동안 쌓아온 요약본을 보면서, 마지막까지 정리하고 복습하려고 해요.

SQLD 시험, 구조부터 다시 보기
SQLD 시험은 크게 두 개의 과목으로 나뉩니다.
- 데이터 모델링의 이해: 데이터 모델링 개념, 엔터티/속성/관계/식별자/정규화/반정규화 등
- SQL 기본 및 활용: SQL 구문, 함수, 조인, 서브쿼리, 윈도우 함수, DML/DDL/DCL/TCL 등
내가 정리한 학습 순서와 실전 포인트
[1단계] 핵심 개념부터 다지기
1과목 : 데이터 모델링의 이해
- 데이터 모델링이란?
- 현실 세계를 단순화/추상화/명확화해서 데이터로 표현하는 과정이에요. 단순히 DB를 구축하는 것뿐만 아니라, 업무를 분석하고 구조화하는 데도 꼭 필요하다고 생각해요. 데이터 중복, 비유연성, 비일관성을 피해야 한다는 점이 중요해요.
- 세 가지 관점과 세 단계
- 관점: 데이터(무엇), 프로세스(어떻게), 데이터-프로세스 상관(연관성)
- 단계: 개념적(전사적/가장 추상적), 논리적(정규화), 물리적(실제 성능, 가용성)
- 스키마
- 외부(사용자), 개념(통합), 내부(저장) 스키마가 있고, 논리적/물리적 독립성 개념을 꼭 알아두었어요.
- ERD 작성 순서
- 엔티티 → 속성 → 식별자 → 관계 → 관계명 → 필수/선택 여부까지 순서대로 익혔어요.
- 엔티티, 속성, 관계
- 엔티티: 2개 이상 인스턴스/속성, 다른 엔티티와의 관계, 식별자 필수
- 속성: 하나의 속성값, 원자성, PK/FK/일반 속성, 도메인
- 관계: 논리적 연관성, 1:1/1:M/M:N, 선택 사양 파악
- 식별자
- 유일성, 최소성, 불변성, 존재성을 기억하면서, 주/보조/내부/외부/단일/복합/본질/인조 식별자 유형을 따로 정리했어요.
- 정규화 & 반정규화
- 1정규형(원자값), 2정규형(완전 함수 종속), 3정규형(이행 종속 제거)
- 장점: 무결성, 일관성, 유연성, 독립성
- 단점: 성능 저하, 조인 증가
- 반정규화: 성능 향상을 위해 데이터 중복/통합/분리(테이블 병합, 분할, 컬럼 추가 등)
2과목: SQL 기본기와 실전 활용
SELECT 절 구조와 실행 순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
실제 실행 순서로 암기했어요.
WHERE & HAVING 절
- WHERE: 조건에 맞는 행 필터링 (집계함수는 HAVING에서만)
- HAVING: 그룹별 조건 필터링
- 비교/조건 연산자 (AND, OR, IN, BETWEEN, LIKE, NOT, NULL)
함수
- 문자형(LOWER, UPPER, SUBSTR, LENGTH, REPLACE, TRIM 등),
- 숫자형(ABS, MOD, ROUND, TRUNC, FLOOR, CEIL),
- 날짜형(SYSDATE, EXTRACT, ADD_MONTHS 등),
- 변환 함수(TO_NUMBER, TO_CHAR, TO_DATE 등)
그룹 함수와 집계
- COUNT, SUM, AVG, MIN, MAX
- ROLLUP, CUBE, GROUPING SETS
NULL 함수와 조건 분기
- NVL, NULLIF, COALESCE, NVL2
- CASE, DECODE (조건 분기 처리)
조인
- EQUI JOIN, NON EQUI JOIN, INNER, OUTER(LEFT/RIGHT/FULL), NATURAL, CROSS
- 실전에서는 ON, USING, JOIN 조건별 차이까지 구분
서브쿼리
- 단일행, 다중열, 다중행, 스칼라, 인라인뷰, 상호연관 서브쿼리
집합 연산자
- UNION(중복제거), UNION ALL(중복포함), INTERSECT(교집합), MINUS(차집합)
윈도우 함수
- ROW_NUMBER(), RANK(), DENSE_RANK()
- LAG(), LEAD(), FIRST_VALUE(), LAST_VALUE()
- OVER(), PARTITION BY, ORDER BY 활용
TOP N, 계층형 질의, 셀프 조인
- TOP, LIMIT, ROWNUM
- START WITH, CONNECT BY
DML/DDL/DCL/TCL
- DML: INSERT, UPDATE, DELETE, MERGE
- DDL: CREATE, ALTER, DROP, TRUNCATE (DELETE와 DROP, TRUNCATE 차이 꼭 구분)
- DCL: GRANT, REVOKE
- TCL: COMMIT, ROLLBACK, SAVEPOINT (ACID: 원자성, 일관성, 고립성, 지속성)
2단계: 문제 풀이 및 오답 정리
- 다른 블로그나 커뮤니티에서 제공하는 기출문제, 연습문제를 모아서 반복해서 풀기
- 최소 3회 이상 반복해서 풀어보고, 틀린 문제는 ‘왜 틀렸는지’를 분석해서 오답노트 적기
- 오답 노트는 시험 직전까지 계속 업데이트하고, 정규화 vs 반정규화, 식별자 관계 vs 비식별자 관계 등 헷갈리기 쉬운 부분은 따로 정리해서 여러 번 반복하기
- 부족한 개념은 유튜브 SQLD 강의나 요약 영상을 참고해서 추가로 복습하기

3단계: 약점 보완 및 최종 점검
- 2단계에서 만든 오답 노트, 핵심 요약 노트만 빠르게 훑기
- 새로운 내용을 추가로 암기하기보다는, 헷갈리는 포인트나 내가 자주 틀린 부분만 반복 복습하기
- 시험 당일 컨디션을 위해 최종 준비물(신분증, 수험표, 컴퓨터용 사인펜)도 미리 챙기기
남은 기간 동안은 제가 세운 3단계 플랜을 믿고, 조급해하지 않고 차근차근 준비해보려고 해요.
공부가 잘 안 풀릴 때도 있지만, 끝까지 포기하지 않고 내가 할 수 있는 만큼 최선을 다한다면 분명 좋은 결과가 있을 거라고 믿어요.
같이 공부하는 분들도 각자의 루틴을 만들어서, 자신의 페이스대로 차분히 준비하셨으면 좋겠어요.
저 역시 이번 도전을 통해 한 단계 더 성장하는 경험을 남기고 싶어요.
모두 원하는 결과를 얻을 수 있기를 진심으로 응원합니다!
남은 기간 파이팅입니다 :)