
SQLD 오답노트 작성 예시: 틀린 이유를 이렇게 적는다
시험이 가까워질수록 이런 생각 들죠.
“문제는 많이 풀었는데… 왜 자꾸 비슷한 데서 또 틀리지?”
SQLD는 특히 개념(데이터 모델링/정규화/관계) + SQL 문법/해석이 섞여 있어서, 단순히 정답만 체크하면 다음 회차에 똑같이 미끄러지기 쉬워요.
그래서 합격하는 사람들이 공통으로 하는 게 하나 있는데, 바로 ‘틀린 이유까지 적는 sqld 오답노트’예요.
오늘은 “어떻게 적어야 다시 안 틀리는지”에 초점을 맞춰서, sqld 예시까지 통째로 보여드릴게요.
SQLD 오답노트, “정답”보다 “틀린 이유”가 핵심인 이유
오답노트를 쓴다고 하면서도 실제로는 이런 식이 많아요.
- “정답: ③”
- “해설 읽음”
- “다음 문제로”
근데 SQLD는 틀린 패턴이 반복돼요.
예를 들면,
- 정규화에서 이상(Anomaly) 개념이 헷갈려서
- JOIN 결과가 머릿속에서 안 그려져서
- NULL 포함 집계에서 COUNT/AVG가 계속 흔들려서
- GROUP BY/HAVING의 실행 순서를 자주 뒤집어서
이런 “틀리는 습관”을 잡아야 점수가 올라요.
즉 오답노트는 ‘sqld 답안지(정답체크)’가 아니라 ‘내 뇌의 오류 로그’를 쓰는 거예요.
오답노트 작성 전 세팅: 최소 구성 3종이면 끝
오답노트를 거창하게 꾸미지 않아도 됩니다. 대신 구조가 중요해요.
1) 메인 오답노트(sqld 오답노트)
- 틀린 문제를 유형별로 기록
- “왜 틀렸는지”가 중심
2) 요약 서브노트(sqld 요약 서브노트)
- 오답에서 뽑아낸 규칙/패턴만 1~2줄로 압축
- 시험 직전에 보는 “치트키 노트”
3) 단답 카드(sqld 단답)
- 정의/키워드/비교 포인트를 짧게 암기
- 예: “부분함수종속 / 이행함수종속 / 후보키/기본키/대체키 차이”
이 3개가 연결되면 복습 효율이 확 올라갑니다.
합격형 오답노트 템플릿(복붙용)
아래 템플릿 그대로 쓰면 “틀린 이유”가 자동으로 정리돼요.
[문제 정보]
회차/교재/번호:
영역(개념/SQL):
유형(정의/판단/계산/결과예측/문장해석):[내가 고른 답] / [정답]
내가 고른 답:
정답:[틀린 이유(핵심 1줄)]
예) HAVING을 WHERE처럼 생각함 / NULL 집계 규칙 착각 / 카디널리티 해석 오류[내 사고 과정(실수 트리거)]
예) “조건이 있으니 WHERE겠지”라고 자동반응함[정리(다음엔 이렇게)]
규칙:
체크포인트:
한 줄 암기:[서브노트로 이동할 문장(1줄)]
예) “집계 조건은 WHERE가 아니라 HAVING, 단 WHERE는 집계 전 필터”
실전 SQLD 오답노트 작성 예시 6개 (유형별로)
아래는 실제로 많이 틀리는 포인트를 기준으로 만든 sqld 예시예요.
중요: 정답만 보지 말고 ‘틀린 이유 문장’을 어떻게 쓰는지 보세요.
예시 1) GROUP BY / HAVING 헷갈림 (SQL 해석형)
[문제 요지] 부서별 평균급여가 3000 이상인 부서만 조회
내가 고른 답: WHERE AVG(sal) >= 3000
정답: HAVING AVG(sal) >= 3000
틀린 이유(핵심 1줄)
- 집계함수 조건을 WHERE로 처리하려고 함
내 사고 과정(실수 트리거)
- “조건이 있으면 무조건 WHERE”로 반사적으로 판단
정리(다음엔 이렇게)
- 규칙: WHERE는 집계 전에 행 필터, HAVING은 집계 후 그룹 필터
- 체크포인트: “AVG/COUNT/SUM이 조건절에 있으면? → HAVING부터 의심”
- 한 줄 암기: 집계 조건은 HAVING, 원본 행 조건은 WHERE
서브노트 문장(1줄)
집계(AVG/COUNT/SUM) 조건절 = HAVING, 그룹 생성 전 필터 = WHERE
예시 2) COUNT(*) vs COUNT(컬럼) (NULL 규칙)
[문제 요지] NULL이 섞인 컬럼에서 COUNT 결과 비교
내가 고른 답: COUNT(col)도 NULL 포함
정답: COUNT(col)은 NULL 제외, COUNT(*)는 행 수
틀린 이유(핵심 1줄)
- COUNT(col)의 NULL 제외 규칙을 놓침
내 사고 과정(실수 트리거)
- “카운트는 다 세는 거 아닌가?”로 뭉뚱그림
정리(다음엔 이렇게)
- 규칙: COUNT(*)는 행, COUNT(col)은 NULL 제외한 값
- 체크포인트: “NULL이 존재한다고 문제에서 강조하면 집계함수 NULL 규칙이 포인트”
- 한 줄 암기: COUNT(컬럼)=널 빼고 센다
서브노트 문장(1줄)
COUNT(*)=행 수, COUNT(col)=NULL 제외 값 개수
예시 3) OUTER JOIN 결과 행 수 착각 (결과예측형)
[문제 요지] A LEFT JOIN B에서 B에 매칭 없는 A는 어떻게?
내가 고른 답: 매칭 없으면 행이 사라진다
정답: LEFT JOIN이면 A는 유지, B 컬럼이 NULL로 채워짐
틀린 이유(핵심 1줄)
- OUTER JOIN을 INNER JOIN처럼 생각함
내 사고 과정(실수 트리거)
- JOIN=교집합 이미지가 너무 강함
정리(다음엔 이렇게)
- 규칙: LEFT JOIN = 왼쪽(A) 보존, RIGHT JOIN = 오른쪽(B) 보존
- 체크포인트: “보존되는 쪽을 먼저 고정하고, 반대쪽은 NULL 가능”
- 한 줄 암기: LEFT는 왼쪽 생존
서브노트 문장(1줄)
LEFT OUTER JOIN: 왼쪽 테이블 행은 유지, 매칭 없으면 오른쪽 컬럼 NULL
예시 4) 정규화에서 부분함수종속/이행함수종속 혼동 (개념 단답형)
[문제 요지] 2NF, 3NF에서 제거하는 종속성은?
내가 고른 답: 2NF=이행 / 3NF=부분
정답: 2NF=부분함수종속 제거 / 3NF=이행함수종속 제거
틀린 이유(핵심 1줄)
- 2NF/3NF의 제거 대상 종속성을 뒤집어서 암기함
내 사고 과정(실수 트리거)
- “단계가 높아지면 더 어려운 걸 먼저 제거?” 같은 자기 논리로 외움
정리(다음엔 이렇게)
- 규칙:
- 1NF: 원자값
- 2NF: 부분함수종속 제거(복합키 일부에만 종속)
- 3NF: 이행함수종속 제거(A→B→C)
- 한 줄 암기: 2=부분, 3=이행
서브노트 문장(1줄)
2NF=부분함수종속 제거, 3NF=이행함수종속 제거 (2=부분,3=이행)
예시 5) 후보키/기본키/대체키 서술형 단답 (용어 정확도)
[문제 요지] 후보키/기본키/대체키 차이
내가 고른 답: 후보키=유일키, 기본키=대표키, 대체키=예비키(설명 부족)
정답 포인트: 유일성 + 최소성, 그리고 기본키는 후보키 중 선정, 나머지는 대체키
틀린 이유(핵심 1줄)
- 후보키의 ‘최소성’을 빠뜨림 + 선정 관계를 문장으로 못 씀
정리(다음엔 이렇게)
- 후보키: 유일성 + 최소성 만족
- 기본키(PK): 후보키 중 선정된 키
- 대체키: 후보키 중 선정되지 못한 나머지
sqld 단답(암기 카드용)
후보키=유일성+최소성 / PK=후보키 중 선택 / 대체키=남은 후보키
예시 6) 서브쿼리 위치에 따른 의미 착각 (문장해석형)
[문제 요지] WHERE절 서브쿼리 vs FROM절 인라인 뷰 차이
내가 고른 답: 똑같다(표현만 다름)
정답: 의미/최적화/결과 형태가 달라질 수 있고, FROM은 “가상 테이블”로 확장
틀린 이유(핵심 1줄)
- 서브쿼리를 “그냥 안에 넣는 거”로만 생각함
정리(다음엔 이렇게)
- WHERE: 필터 조건(스칼라/IN/EXISTS 등)
- FROM: 인라인 뷰(가상 테이블), 조인/집계 결과를 먼저 만들어 놓고 바깥에서 사용
- 체크포인트: “문제가 ‘가상 테이블’/‘인라인 뷰’라고 말하면 FROM”
서브노트 문장(1줄)
FROM 서브쿼리=인라인뷰(가상테이블), WHERE 서브쿼리=조건 필터(IN/EXISTS 등)
‘틀린 이유’를 잘 쓰는 사람들의 공통 공식 4가지
오답노트는 길게 쓰는 게 아니라 정확하게 쓰는 게임이에요.
아래 4가지를 체크하면 퀄리티가 확 달라집니다.
1) “몰라서” 금지 → 구체 원인으로 바꾸기
- ❌ 몰라서 틀림
- ✅ JOIN 보존 방향을 INNER로 착각
- ✅ COUNT(col) NULL 제외 규칙 누락
2) 트리거(자동반응)를 찾아서 적기
- “조건절=WHERE” 같은 자동반응이 있거든요.
이걸 적어야 다음에 멈춥니다.
3) 다음 행동을 ‘체크포인트’로 고정하기
- “다음엔 조심” 말고
- ✅ “AVG가 조건절에 있으면 HAVING부터 확인” 처럼 행동 규칙으로.
4) 서브노트로 1줄 이관하기
오답노트가 쌓이면 다시 보기 힘들어요.
그래서 오답에서 진짜 규칙만 뽑아 sqld 요약 서브노트로 보내야 합니다.
오답노트 구성 추천: 페이지를 이렇게 나누면 복습이 빨라져요
아래처럼 “정리 위치”를 고정하면, 시험 직전에 흔들리지 않아요.
| 구분 | 목적 | 내용 | 회독 타이밍 |
|---|---|---|---|
| sqld 오답노트 | 실수 원인 교정 | 문제/정답/틀린 이유/체크포인트 | 1~2회독 |
| sqld 요약 서브노트 | 규칙 압축 | 오답에서 추출한 1줄 규칙 | 3~5회독, 시험 전날 |
| sqld 단답 | 용어/정의 고정 | 최소성/유일성/정규화 단계 등 | 매일 10분 |
sqld 답안지(정답 체크) 활용법: “표시”를 이렇게 하세요
문제를 풀고 채점할 때, 답안지에는 정답만 쓰지 말고 표시 규칙을 통일하세요.
- ◎ : 완전 확실(설명 가능)
- ○ : 맞았지만 찜찜(근거 약함)
- △ : 찍어서 맞음(사실상 오답)
- ✕ : 오답
그리고 오답노트에는 △와 ✕만 옮깁니다.
○는 “근거 보완용”으로 짧게만 적고요.
이렇게 해야 오답노트가 비대해지지 않아요.
시험 직전용 “요약 서브노트” 예시(그대로 가져가세요)
아래는 실제로 시험 전에 보면 좋은 1줄 규칙들입니다.
SQL 핵심 1줄
- 집계 조건은 HAVING, 원본 행 조건은 WHERE
- COUNT(*)=행 수, COUNT(col)=NULL 제외
- LEFT JOIN은 왼쪽 생존(매칭 없으면 오른쪽 NULL)
- DISTINCT는 중복 제거(정렬 아님)
- NULL 비교는
= NULL이 아니라IS NULL - EXISTS는 “존재 여부”, IN은 “목록 포함”(NULL/중복 이슈 주의)
모델링/정규화 1줄
- 2NF=부분함수종속 제거, 3NF=이행함수종속 제거
- 후보키=유일성+최소성, PK=후보키 중 선택, 대체키=남은 후보키
- 엔터티=업무상 관리 대상, 속성=의미 있는 최소 데이터 단위
- 관계 차수(1:1, 1:N, N:M)와 선택성(필수/선택) 문장으로 말할 수 있어야 함
자주 하는 실수 TOP7 체크리스트(오답노트에 붙여두기)
- WHERE/HAVING 뒤집음
- JOIN 보존 방향 착각(LEFT/RIGHT)
- NULL 집계 규칙(COUNT/AVG) 헷갈림
- GROUP BY 컬럼 누락/과잉
- 정규화 단계(2NF/3NF/BCNF) 제거 대상 혼동
- 후보키 최소성 빠뜨림
- 서브쿼리 위치 의미(FROM 인라인뷰 vs WHERE 필터) 혼동
이 체크리스트에서 내가 자주 틀리는 2~3개에 형광펜 치고, 그 파트만 오답노트에 더 빡세게 쓰면 점수 올라가는 속도가 빨라요.
Q&A
Q1. 오답노트는 몇 문제 정도가 적당해요?
틀린 문제를 전부 옮기기보다, △(찍맞) + ✕(오답) 중심으로 옮기는 게 효율적이에요.
목표는 “양”이 아니라 같은 유형 재발 방지라서, 오답 개수가 줄어드는 게 오히려 좋은 신호예요.
Q2. ‘틀린 이유’를 뭐라고 써야 할지 막막해요.
가장 쉬운 방법은 이 문장 틀을 쓰는 거예요.
- “나는 (A)를 (B)로 착각했다.”
- “나는 (조건/키워드)를 보면 자동으로 (잘못된 반응)을 한다.”
예: “집계가 나오면 HAVING인데, 조건절만 보면 WHERE로 자동반응했다.”
Q3. sqld 단답은 어떻게 외워야 오래가요?
단답은 길게 쓰면 안 외워져요.
‘정의 1줄 + 구분 포인트 1개’만 적고, 소리 내서 말해보세요.
예: “후보키는 유일성+최소성. PK는 후보키 중 선택, 나머지는 대체키.”
말로 술술 나오면 시험장에서 흔들릴 일이 거의 없어요.
마무리: 오답노트는 ‘공부 기록’이 아니라 ‘실수 방지 시스템’
SQLD는 “어느 날 갑자기 실력이 튀는 시험”이라기보다,
같은 함정에서 덜 빠지게 되는 시험이에요.
오늘 글의 핵심은 하나입니다.
정답을 적지 말고, 내가 틀리는 이유를 ‘문장’으로 고정하세요.
그 문장들이 쌓이면, 그게 바로 여러분만의 sqld 요약 서브노트가 되고, 마지막엔 합격 점수를 밀어줍니다.
댓글