Search

18. Text-to-SQL이란?

섹션
6. Text-to-SQL: 어제 서울에서 가장 많이 팔린 물건은?

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은 데이터베이스 내 테이블 간의 관계를 파악
빠른 쿼리를 위해 많은 데이터가 필요하지 않음
본격적인 개발 시작 예정