LLM을 활용한 SQL 학습 자동화: 문제 생성부터 채점까지
Applications of Large Language Models to SQL Learning
TL;DR Highlight
o4-mini 기반 에이전트가 SQL 연습 문제를 자동 생성하고, 학생 제출물을 사람 채점자 수준으로 채점해준다.
Who Should Read
SQL 교육 콘텐츠를 만들거나 코딩 과제 자동 채점 파이프라인을 구축하려는 교육 플랫폼 개발자. 또는 LLM 기반 에이전트로 코드 평가 시스템을 설계하는 백엔드 개발자.
Core Mechanics
- 실무 데이터 정제 시나리오 기반으로 SQL 연습 문제 + 교육 메타데이터(난이도, 개념 태그 등)를 자동 합성
- 단순 단일 프롬프트 대신 '연산자 계획 → SQL 생성' 다단계 파이프라인으로 정답 SQL을 생성하면 정확도가 크게 오름
- OpenAI o4-mini 제로샷(예시 없이 바로 추론)으로도 지도학습으로 훈련된 SOTA 파이프라인에 근접한 성능 달성
- 학생 제출 SQL을 rubric(채점 기준표) 기반으로 평가하고, 부분 점수와 개선 피드백까지 자동 생성
- 실제 수업에 배포해서 4개 시험 문항, 326개 제출물을 6명의 채점자와 비교한 결과, 많은 문항 유형에서 사람 채점과 동등한 신호 제공
Evidence
- 다단계 reference-answer 생성기가 단일 프롬프트 baseline을 '크게(substantially)' 상회, SL 기반 SOTA에 근접
- 실제 수업 326개 제출물 × 6명 인간 채점자 비교에서 LLM 채점이 대부분 문항 유형에서 경쟁력 있는 결과
- 제로샷(zero-shot) 설정에서 o4-mini가 감독 학습 없이도 SOTA급 성능 달성
How to Apply
- SQL 교육 플랫폼 구축 시, 문제 생성 단계에서 '어떤 연산자(JOIN, GROUP BY 등)를 쓸지 계획 → 해당 연산자로 SQL 작성' 순서로 LLM을 두 번 호출하면 단일 프롬프트보다 품질이 높아진다.
- 자동 채점 파이프라인을 만들 때, 단순 정답 일치 대신 rubric(부분 점수 기준)을 JSON으로 정의하고 LLM에게 각 기준 충족 여부를 판단하게 하면 사람 채점 수준의 피드백을 얻을 수 있다.
- 코딩 과제 자동화가 필요한 경우, 문제 합성 → 레퍼런스 정답 생성 → 채점 3단계를 독립 에이전트로 분리하면 각 단계를 독립적으로 개선하거나 교체할 수 있다.
Code Example
# 다단계 SQL 레퍼런스 정답 생성 프롬프트 예시 (o4-mini 기준)
# Step 1: 연산자 계획
planning_prompt = """
다음 SQL 문제를 풀기 위해 필요한 연산자 목록을 계획하세요.
문제: {problem_description}
테이블 스키마: {schema}
사용할 연산자를 순서대로 나열하고, 각각 왜 필요한지 설명하세요.
JSON 형식: {"operators": [{"name": "JOIN", "reason": "..."}, ...]}
"""
# Step 2: 계획 기반 SQL 생성
sql_gen_prompt = """
다음 연산자 계획을 바탕으로 실행 가능한 SQL을 작성하세요.
문제: {problem_description}
스키마: {schema}
연산자 계획: {operator_plan}
요구사항:
- 표준 SQL 문법 사용
- 모든 계획된 연산자 반영
- 주석으로 각 절의 목적 설명
"""
# Step 3: Rubric 기반 채점
grading_prompt = """
학생 SQL 제출물을 아래 rubric에 따라 채점하세요.
정답 SQL: {reference_sql}
학생 제출: {student_sql}
Rubric:
- 올바른 테이블 JOIN (2점)
- GROUP BY 절 정확성 (2점)
- WHERE 조건 완전성 (2점)
- 컬럼 선택 정확성 (2점)
- 쿼리 실행 가능 여부 (2점)
각 항목 점수와 이유, 개선 방법을 JSON으로 반환하세요.
{"scores": [{"criterion": "...", "score": N, "feedback": "...", "suggestion": "..."}]}
"""Terminology
Original Abstract (Expand)
We present a Large Language Model (LLM)-assisted SQL learning system that closes the loop from problem discovery to grading. Grounded in real-world data-wrangling scenarios, our agentic workflow (i) synthesizes industry-style practice problems with pedagogical metadata, (ii) produces executable reference SQL via a multi-step operator-planning pipeline, and (iii) grades student submissions against rich rubrics while explaining partial credit and surfacing actionable feedback for revision. We evaluate two core capabilities. First, on a large corpus of realistic SQL problems, our zero-shot, multi-step reference-answer generator, implemented with OpenAI's o4-mini, substantially outperforms a single-prompt baseline while approaching the state-of-the-art pipelines trained with supervised learning. Second, in a classroom deployment, we compare LLM-assisted grading with human graders across four exam questions, encompassing 326 submissions evaluated by six graders. The results indicate that LLMs can provide grading signals competitive with those of human graders for many question types. Overall, the system is designed for responsible educational use through real-world problems, generated reference solutions, and grading assistance. Together, these features enable scalable practice generation and grading, which improves student learning while augmenting instructor capacity.