자격증/SQLD

2026 SQLD 출제 경향과 영역별 60점 전략

공감(공부하는감자) 2026. 6. 16. 12:32

안녕하세요, 공부하는 감자입니다 🥔

2026년 SQLD를 준비하면서 기출 경향을 쭉 훑어봤는데, 공부 순서를 잡는 데 도움이 될 것 같아 정리해서 공유합니다. 큰 틀(객관식 50문항·60점 합격)은 그대로지만, 2024년 출제기준 개편이 두 해째 적용되면서 비중이 2과목(SQL) 쪽으로 확실히 쏠려 있어요.

그래서 전략은 단순합니다. 1과목은 과락만 확실히 막고, 2과목의 JOIN·서브쿼리·윈도우 함수·계층형 쿼리 네 덩어리에 시간을 붓는 거예요.

시험 구조부터 — 과락이 제일 무섭습니다

숫자부터 한 표로 보겠습니다.

항목 내용
시행 기관 한국데이터산업진흥원(KDATA)
2026 회차 60회(3/7) · 61회(5/31) · 62회(8/22) · 63회(11/14)
문항 객관식 50문항 (단답형 없음), 90분
배점 1과목 20점(10문항) + 2과목 80점(40문항)
합격 총점 60점 이상 + 각 과목 40% 이상
과락 1과목 8점 미만 / 2과목 32점 미만

총점이 아무리 높아도 과락 한 번이면 불합격입니다. 1과목 10문항 중 최소 4개는 맞춘다는 기준으로, 데이터 모델링을 버리지 마세요.

참고로 2023년까지는 단답형이 섞여 있었는데 2024년 52회부터 선택형 50문항으로 통일됐고, 1과목 명칭도 "데이터 모델과 SQL"로 바뀌면서 성능 이슈가 2과목으로 넘어갔어요. 그 이후 기출에서 보이는 경향은 세 가지입니다.

  • 1과목에서 식별자·관계·정규화를 말로 꼬아 묻는 지문형 문제 증가
  • 계층형 쿼리·윈도우 함수·정규표현식이 매 회차 2~3문제씩 고정 출제
  • NVL·COALESCE·NULLIF, 집합 연산, CASE 같은 실행 결과 예측형 비중 확대

즉 2026 대비의 핵심은 암기가 아니라 "쿼리를 눈으로 실행해보는 훈련"이에요.

2과목 — 점수가 갈리는 곳

JOIN, 그중에서도 ON vs WHERE

JOIN 종류별 결과(INNER는 매칭 행만, LEFT/RIGHT는 한쪽 전체 유지, FULL은 양쪽, CROSS는 m×n, NATURAL/USING은 공통 컬럼 한 번만 출력)는 기본이고, 진짜 함정은 조건의 위치입니다.

-- (1) WHERE에 쓰면 LEFT JOIN이 INNER처럼 동작
SELECT m.member_name, g.grade_name
FROM   members m
LEFT JOIN grades g ON m.grade_id = g.grade_id
WHERE  g.grade_name = 'VIP';

-- (2) NULL 행까지 보려면 조건을 ON으로
SELECT m.member_name, g.grade_name
FROM   members m
LEFT JOIN grades g
       ON m.grade_id   = g.grade_id
      AND g.grade_name = 'VIP';

(1)은 매칭 안 돼서 NULL로 채워진 행이 WHERE에서 걸러져버립니다. 두 쿼리의 결과 행 수를 손으로 직접 써본 사람만 맞힐 수 있게 설계된 문제가 매번 나와요.

서브쿼리 — 위치별 이름과 제약

서브쿼리는 어느 절에 있는지만 보면 이름과 제약이 따라옵니다.

위치 이름 주의점
SELECT절 스칼라 서브쿼리 반드시 1행 1열
FROM절 인라인 뷰 별칭 필수
WHERE절 일반/상관 서브쿼리 상관은 바깥 행마다 재실행

여기서 하나만 더 가져가세요. NULL이 섞일 수 있는 컬럼에는 NOT IN 대신 NOT EXISTS. NOT IN 서브쿼리 결과에 NULL이 하나라도 있으면 전체가 공집합이 됩니다.

윈도우 함수 — 이제는 프레임 절까지

SELECT region, amount,
       ROW_NUMBER() OVER (PARTITION BY region ORDER BY amount DESC) AS rn,
       RANK()       OVER (PARTITION BY region ORDER BY amount DESC) AS rk,
       DENSE_RANK() OVER (PARTITION BY region ORDER BY amount DESC) AS drk,
       SUM(amount)  OVER (PARTITION BY region ORDER BY amount DESC
                          ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS run_total
FROM   sales;

동점 처리는 ROW_NUMBER가 1,2,3,4 / RANK가 1,2,2,4 / DENSE_RANK가 1,2,2,3. 여기까지는 다들 외웁니다.

그런데 최근에는 ROWS BETWEEN ... 프레임 절에서 UNBOUNDED PRECEDING, CURRENT ROW, N PRECEDING/FOLLOWING 차이를 묻는 누적합·이동평균 문제가 올라오고 있어요. 2026 대비 포인트는 여기입니다.

계층형 쿼리 — 네 가지 의사컬럼

PRIOR가 어느 컬럼에 붙느냐로 순방향(부모→자식)/역방향(자식→부모)이 갈리고, LEVEL, CONNECT_BY_ROOT, CONNECT_BY_ISLEAF, SYS_CONNECT_BY_PATH 네 가지는 57회까지 반복 출제됐습니다. ORDER SIBLINGS BY는 형제 노드 안에서만 정렬한다는 것도 함께요.

일반 ORDER BY를 쓰면 계층 구조가 깨집니다.

그룹 확장 함수와 NULL 처리

세 함수의 차이는 결국 "어떤 소계를 만들어주느냐"입니다.

함수 생성되는 소계
ROLLUP(A,B) (A,B), (A), ()
CUBE(A,B) (A,B), (A), (B), ()
GROUPING SETS((A),(B)) (A), (B)만

GROUPING()이 소계 행에서 1, 일반 그룹 행에서 0을 돌려준다는 것도 선지 단골이고요. NULL 쪽에서는 집계 함수의 NULL 무시 여부가 핵심입니다.

COUNT(*)는 NULL도 세지만 COUNT(col), SUM(col), AVG(col)은 건너뛰어요. 그래서 AVG(col)이 "전체 행 평균"이 아닐 수 있다는 함정이 반복 출제됩니다.

SELECT 실행 순서 한 줄

FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY

SELECT절 별칭은 ORDER BY에서만 쓸 수 있다(WHERE/GROUP BY/HAVING에서는 불가) — 실행 순서상 SELECT가 ORDER BY보다 앞이기 때문인데, 이 한 줄에서 매번 한 문제가 나옵니다.

1과목 — 4문항만은 사수

식별자: 주식별자 조건은 유일성·최소성·불변성·존재성 네 가지. 주민번호가 주식별자로 부적절한 이유를 물으면 답은 불변성이 아니라 개인정보 보호·존재성(외국인 미보유) 쪽입니다.

정규화: 한 줄 판별법으로 외우는 게 빨라요.

단계 판별 질문
1NF 한 칸에 여러 값이 들어있지 않은가?
2NF 복합키의 일부만으로 결정되는 속성이 있는가?
3NF PK 아닌 속성이 PK 아닌 속성을 결정하는가?
BCNF 후보키가 아닌데 결정자인 속성이 있는가?

2NF는 복합키가 있을 때만 논의됩니다. 복합키가 없는 테이블은 1NF만 만족하면 자동으로 2NF예요. 이 함정이 거의 매 회차 나옵니다.

반정규화: "성능을 위해 의도적으로 깬다"고 외우되, 시험은 언제 쓰면 안 되는가를 묻습니다. 조회는 빨라져도 갱신 이상이 생기고 무결성 책임이 애플리케이션으로 넘어온다는 게 정답 선지 단골이에요.

자주 틀리는 것들

  1. WHERE col = NULL → 항상 UNKNOWN. IS NULL
  2. NULL 섞인 NOT IN → 공집합. NOT EXISTS
  3. 집계 조건은 HAVING, 행 조건은 WHERE
  4. OUTER JOIN 뒤 WHERE 조건 → INNER로 변신
  5. ORDER BY 없는 ROWNUM → 정렬 전에 번호가 붙음. Top-N은 인라인 뷰로 먼저 정렬
  6. DDL은 자동 커밋 → TRUNCATE·DROP은 롤백 불가, DELETE만 가능
  7. UNION은 중복 제거(+정렬 비용), UNION ALL은 전부 유지

우선순위로 묶으면

지금까지 내용을 출제 비중 순으로 정리하면 이렇습니다.

우선순위 주제 예상 출제
최상 JOIN(ON vs WHERE), 서브쿼리 분류 5~7문항
윈도우 함수, ROLLUP/CUBE 4~6문항
계층형 쿼리, NULL 함수 3~5문항
정규화·식별자·관계 5~7문항
실행 순서, 집합 연산, CASE 3~5문항
정규표현식, 트랜잭션/DDL 이론 1~3문항

이 순서대로만 채워도 60점 합격선은 꽤 안정적이에요. 다만 이론만 읽고는 60점이 애매합니다.

실행 결과를 정확히 계산해야 하는 문제가 늘고 있어서, 결국 회차 단위 풀이로 확인하는 과정이 필요해요. 저는 개념 한 덩어리 끝낼 때마다 문어CBT 모의고사로 그 영역을 점검했는데, 무료라서 회독용으로 돌리기에 부담이 없었습니다.

 

SQLD·정처기·컴활·ADsP 무료 CBT 모의고사

기출 변형 문제, 자동 채점, 회차별 실력 추적까지 가입 없이 바로 풀어보세요.

sqldpass.com

마지막으로 시험장 팁 하나. 2과목 쿼리 문제는 선지부터 보지 말고 쿼리를 한 줄씩 따라가며 중간 테이블을 작게 그려보세요. OUTER JOIN과 윈도우 함수 문제 난이도가 체감상 절반으로 떨어집니다.

2026년 응시하시는 분들 모두 한 번에 끝내시길 바라요.