Text-to-SQL 강의 개요
Text-to-SQL이란?
•
자연어(영어나 한국어)를 SQL로 변환하는 기술
•
AI를 통한 데이터베이스 접근
•
요즘 많은 주목을 받고 있는 분야
•
LLM 등장 이전의 시도들은 대부분 실패했다고 들음
산업계 사례
우버의 QueryGPT
•
미국 카셰어링 서비스에서 제작
•
작년에 만든 초기 버전 (2023년 시작으로 추정)
•
GPT-4 32K 사용
•
결과:
◦
일일 사용자 약 300명 (모두 직원)
◦
약 78%의 시간 단축 효과
한국 사례
•
배달의민족 운영하는 우아한형제들에서 개발
•
RAG text-SQL 활용
•
랭체인으로 작성
•
랭그래프로 전환 준비 중
Text-to-SQL이 중요한 이유
기존 SQL 쿼리의 어려움
•
모든 테이블명과 컬럼명을 알아야 함
•
특히 조인 시 조인할 컬럼의 이름을 알아야 함
•
예시 시나리오: 이커머스에서 마케터가 질의
◦
"어제 서울에서 가장 많이 팔린 상품은?"
◦
필요한 조인: 상품 테이블 + 주문 테이블 + 주소 테이블 + 도시 테이블
◦
4개 테이블 조인 시 모든 컬럼명을 알아야 함
Text-to-SQL의 장점
•
자연어 입력: "어제 서울에서 가장 많이 팔린 상품이 뭐야?"
•
AI가 자동으로 쿼리 생성
•
매우 편리함
실습용 데이터베이스 설정
Supabase 선택 이유
•
무료로 PostgreSQL 사용 가능
•
무료로 2개 DB 생성 가능
•
직접 DB 키 공유 시 장난치는 사람들 때문에 데이터 삭제 우려
설정 과정
1.
회원가입 및 이메일 인증
2.
조직 생성 (personal, free 선택)
3.
비밀번호 복사
4.
지역을 서울로 설정
5.
제공된 스크립트로 테이블 생성
6.
Python 스크립트로 데이터 삽입
데이터 생성 세부사항
•
날짜 범위: 1월 1일부터 이번 달 말까지 랜덤 생성
•
상품 설명과 리뷰 포함
•
작은 LLM 사용 (GPT 4.1 Nano, Cloud Haiku, Gemini Flash 등)
•
insert 파일에서 개수 조정 가능
•
테이블 간의 관계 파악이 중요하므로 많은 데이터는 불필요
•
대안: 강의용으로 업로드한 데이터 사용 (장난 방지)
개발 접근법
•
Text-to-SQL은 데이터베이스 내 테이블 간의 관계를 파악
•
빠른 쿼리를 위해 많은 데이터가 필요하지 않음
•
본격적인 개발 시작 예정