📚 교육/자기계발

SQLD 데이터베이스 자격증 합격 로드맵 | SQL부터 고급까지

📅 2025년 9월 17일 ⏱️ 11분 읽기 ✍️ kimyido

SQLD란?

SQL Developer (SQLD)는 한국데이터베이스진흥원이 주관하는 SQL 전문가 자격증입니다. 개발자, 데이터 분석가 필수 자격증입니다.

자격증의 가치

  • 개발 직무 필수 자격증
  • 금융, 보험사 채용 필수
  • 연봉 5-10% 상승
  • 상대적으로 쉬운 자격증 (합격률 50% 이상)
---

SQLD vs SQLP (개발자 vs 전문가)

항목SQLDSQLP
난이도⭐⭐⭐⭐⭐⭐⭐⭐
응시료60,000원80,000원
시간90분180분
합격선60점70점
출제 비중SQL 70%SQL 50%, 성능 50%
합격률약 50%약 25%
취업 가치높음매우 높음
---

SQLD 시험 범위

출제 영역 (2과목)

① 데이터 모델링 및 SQL 기초 (35점)

  • 데이터베이스 개념
  • ER 다이어그램
  • SQL 기본 문법 (SELECT, WHERE, ORDER BY)
  • 함수 (문자, 숫자, 날짜, 변환)
② SQL 활용 (65점)
  • WHERE 절 조건
  • GROUP BY, HAVING
  • JOIN (INNER, LEFT, RIGHT, FULL OUTER, CROSS)
  • 서브쿼리 (Scalar, Inline View, Correlated)
  • 집합 연산 (UNION, INTERSECT, EXCEPT)
  • 윈도우 함수 (ROW_NUMBER, RANK, DENSE_RANK)
---

SQLD 4주 합격 로드맵

1주차: SQL 기초 및 함수

주요 학습 내용:

-- SELECT 기본
SELECT column1, column2 FROM table_name;

-- WHERE 조건
SELECT * FROM employees WHERE salary > 5000;
SELECT * FROM customers WHERE city IN ('Seoul', 'Busan');

-- ORDER BY 정렬
SELECT * FROM products ORDER BY price DESC;

-- 함수들
UPPER('hello')              -- 'HELLO'
SUBSTR('hello', 2, 3)       -- 'ell'
CONCAT('hello', 'world')    -- 'helloworld'
ROUND(12.567, 2)            -- 12.57
TRUNC(12.567, 2)            -- 12.56

2주차: GROUP BY, 집계, 다중 행 함수

-- GROUP BY 기본
SELECT department, COUNT(*), AVG(salary)
FROM employees
GROUP BY department;

-- HAVING 조건
SELECT department, COUNT(*) as emp_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;

-- 집계 함수
COUNT(*), SUM(), AVG(), MAX(), MIN()
COUNT(DISTINCT column)  -- 중복 제거 개수

-- 다중 행 함수 (GROUP BY 필요)
LISTAGG(name, ',') WITHIN GROUP (ORDER BY name)

3주차: JOIN과 서브쿼리

JOIN 종류:

-- INNER JOIN (교집합)
SELECT e.name, d.department_name
FROM employees e
INNER JOIN departments d ON e.dept_id = d.id;

-- LEFT OUTER JOIN
SELECT e.name, d.department_name
FROM employees e
LEFT OUTER JOIN departments d ON e.dept_id = d.id;

-- FULL OUTER JOIN
SELECT e.name, d.department_name
FROM employees e
FULL OUTER JOIN departments d ON e.dept_id = d.id;

-- SELF JOIN
SELECT e1.name, e2.name as manager_name
FROM employees e1
LEFT JOIN employees e2 ON e1.manager_id = e2.id;

서브쿼리:

-- 스칼라 서브쿼리
SELECT name, salary,
       (SELECT AVG(salary) FROM employees) as avg_sal
FROM employees;

-- 인라인 뷰
SELECT e.*, d.dept_name
FROM (SELECT * FROM employees WHERE salary > 5000) e
JOIN departments d ON e.dept_id = d.id;

-- 상관 서브쿼리
SELECT name, salary
FROM employees e1
WHERE salary > (SELECT AVG(salary) FROM employees e2
                WHERE e2.dept_id = e1.dept_id);

4주차: 윈도우 함수 및 집합연산

윈도우 함수 (SQLD 최고난도):

-- ROW_NUMBER: 순번 (중복 불가)
SELECT name, salary,
       ROW_NUMBER() OVER (ORDER BY salary DESC) as rank
FROM employees;

-- RANK: 순위 (동점 시 같은 순위)
RANK() OVER (ORDER BY salary DESC)

-- DENSE_RANK: 순위 (동점 후 다음 순위 연속)
DENSE_RANK() OVER (ORDER BY salary DESC)

-- LAG, LEAD: 이전/다음 행 값
SELECT name, salary,
       LAG(salary) OVER (ORDER BY salary) as prev_salary,
       LEAD(salary) OVER (ORDER BY salary) as next_salary
FROM employees;

-- SUM, AVG 윈도우 함수
SELECT name, salary,
       SUM(salary) OVER (ORDER BY salary) as running_sum
FROM employees;

-- PARTITION BY: 그룹별 윈도우
SELECT department, name, salary,
       ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC)
FROM employees;

집합 연산:

-- UNION (중복 제거)
SELECT name FROM employees WHERE dept_id = 1
UNION
SELECT name FROM employees WHERE dept_id = 2;

-- UNION ALL (중복 포함)
UNION ALL

-- INTERSECT (교집합)
INTERSECT

-- EXCEPT/MINUS (차집합)
MINUS

---

SQLD 실전 문제 예제

유형 1: 다중 조건 조회

Q. 2023년 이후 입사, 급여 5000 이상인 직원 중
   부서별 평균급여가 5500 이상인 부서의 직원 정보

SELECT e.name, e.salary, d.dept_name,
       AVG(e.salary) OVER (PARTITION BY e.dept_id) as dept_avg
FROM employees e
JOIN departments d ON e.dept_id = d.id
WHERE e.hire_date >= '2023-01-01'
  AND e.salary >= 5000
  AND e.dept_id IN (
      SELECT dept_id
      FROM employees
      WHERE salary >= 5000
      GROUP BY dept_id
      HAVING AVG(salary) >= 5500
  );

유형 2: 윈도우 함수 활용

Q. 부서별 급여 순위와 누적 급여 계산

SELECT department_id,
       employee_id,
       salary,
       RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) as dept_rank,
       SUM(salary) OVER (PARTITION BY department_id
                         ORDER BY salary DESC) as running_total
FROM employees;

---

SQLD 자주 묻는 질문 (FAQ)

Q1. 1. 개발 경험이 없어도 SQLD를 취득할 수 있나요?

네, 가능합니다. SQL은 언어가 아니라 쿼리 문법이므로:
  • 비전공자도 충분히 학습 가능
  • 4주 집중 준비로 합격 가능
  • 데이터베이스 개념 이해 필요 (1주일이면 충분)

Q2. 2. 어떤 데이터베이스를 알아야 하나요?

SQLD는 DB-agnostic입니다:
  • Oracle, MySQL, SQL Server, PostgreSQL 모두 범용
  • Oracle SQL이 표준이지만 차이 미미
  • 한 가지 DB만 알면 충분

Q3. 3. SQLD와 SQLP, 둘 다 취득해야 하나요?

  • SQLD: 개발자 필수
  • SQLP: 성능 최적화 필요 시 (선택)
  • 보통 SQLD만 충분

Q4. 4. 시험에서 자주 틀리는 부분은?

  • 윈도우 함수 문법 (OVER절의 정확한 사용)
  • 서브쿼리 종류 구분 (Scalar vs Inline View)
  • JOIN 종류 (어떤 JOIN을 써야 하는지)
  • 집합 연산 (UNION vs UNION ALL)
  • Q5. 5. 시험 당일 환경은 어떻게 되나요?

    • 온라인 시험 (컴퓨터 기반)
    • 실제 SQL을 써서 문제 풀이
    • 정답은 자동으로 판정 (실행 가능 여부)
    ---

    SQLD 고득점 팁

    일일 학습 계획 (3시간)

    1. 개념 학습: 60분 (새로운 주제)
    2. 문제 풀이: 100분 (실습)
    3. 오답 분석: 20분 (틀린 문제 복습)

    모의고사 전략

    • 문제집 1회: 60점 이상 목표
    • 문제집 2회: 70점 이상 목표
    • 문제집 3회: 75점 이상 목표

    시험 당일 팁

  • 쉬운 문제 먼저: 시간 관리 중요
  • 문제 정확히 읽기: "가장 적절한", "~제외하고" 같은 조건 확인
  • 검산하기: 마지막 10분 재검토
  • ---

    SQLD 학습 자료

    추천 교재

  • "SQL 개발자를 위한 가이드" (한국데이터베이스진흥원) - 공식
  • "SQL 자격검정 SQLD 한권으로 합격" - 최신판
  • "SQLD 기출문제 풀이" - 실제 기출
  • 온라인 강의

  • 인프런: SQLD 완벽 대비 (₩50,000)
  • 유데미: SQLD 한 번에 붙기 ($30)
  • YouTube: SQLD 무료 강의 (플레이리스트)
  • 실습 환경

  • Oracle Live SQL: 무료 SQL 실습 환경
  • W3Schools SQL: 온라인 튜토리얼
  • LeetCode Database: 심화 문제 (실무 준비)
  • ---

    결론

    SQLD는 개발자 필수 자격증입니다.

    • 1주차: 기초 (SELECT, WHERE, 함수)
    • 2주차: 집계 (GROUP BY, 함수)
    • 3주차: 결합 (JOIN, 서브쿼리)
    • 4주차: 고급 (윈도우 함수, 집합연산)
    지금 바로 Oracle Live SQL에서 첫 쿼리를 작성해보세요! SQL 마스터로 성장해 데이터 기반 업무를 완벽히 처리할 것입니다.

    ---

    관련 콘텐츠: 교육 가이드

    ✍️
    김이도 편집팀
    정확한 정보 전달을 위해 전문 자료와 공식 통계를 기반으로 콘텐츠를 작성합니다. 최신 정보 반영을 위해 주기적으로 업데이트됩니다.
    📅 최종 업데이트: 2025년 9월 17일 · 📧 문의: 연락하기
    📚 교육/자기계발 카테고리 전체 글 보기 →