본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Text-to-SQL(TEXT2SQL, NL2SQL)은 사용자가 자연어로 한 질문을 데이터베이스가 실행할 수 있는 SQL 질의문으로 바꾸어, SQL 을 모르는 사람도 데이터를 조회할 수 있게 하는 기술이다.

"지난달 서울 지점 매출 상위 5개 상품은?" 같은 질문을 받으면, 시스템은 데이터베이스 스키마(테이블·컬럼·관계)를 참고해 다음과 같은 SQL 을 만들고 실행해 결과를 돌려준다.

SELECT p.name, SUM(s.amount) AS total
FROM sales s JOIN product p ON s.product_id = p.id
WHERE s.branch = '서울' AND s.sold_at >= '2026-09-01' AND s.sold_at < '2026-10-01'
GROUP BY p.name ORDER BY total DESC LIMIT 5;

초기에는 규칙·템플릿과 의미 파싱으로 접근했고, 이후 시퀀스-투-시퀀스 신경망을 거쳐, 지금은 대형 언어 모델(LLM)이 스키마 설명과 예시를 받아 SQL 을 생성하는 방식이 주류다.

단계 내용
질의 이해 질문의 의도, 조건, 집계·정렬 요구를 파악한다
스키마 연결(Schema Linking) 질문의 낱말을 실제 테이블·컬럼·값에 대응시킨다. 대형 스키마에서는 관련 테이블만 골라 넣는다
SQL 생성 LLM 이 스키마·예시 질의(few-shot)를 담은 프롬프트로 SQL 을 만든다. 업무 용어 사전과 예시를 검색해 넣으면(RAG) 정확도가 오른다
검증·교정 문법 검사와 실행 시험, 오류 메시지를 다시 넣어 고치는 자기 교정, 결과 행 수·값의 타당성 확인
실행·응답 읽기 전용 계정으로 실행하고, 결과를 표·차트·자연어 요약으로 돌려준다
  • 셀프서비스 BI·사내 데이터 조회 — 현업 담당자가 대시보드에 없는 지표를 자연어로 바로 묻는다. 데이터 팀에 보내던 단순 추출 요청이 줄어든다
  • 고객 상담·업무 챗봇 — 상담원이나 고객이 "내 최근 3개월 결제 내역" 같은 질문을 하면 챗봇이 계정 범위 안의 데이터를 조회해 답한다
  • 데이터 분석 보조 — 분석가가 초안 SQL 을 받아 고쳐 쓰고, 복잡한 조인·윈도 함수 작성 시간을 줄인다
  • 공공 데이터 개방 — 시민이 통계 데이터베이스를 자연어로 검색한다
과제 대응
모호한 질문·업무 용어("매출"이 공급가인지 부가세 포함인지) 비즈니스 용어 사전, 시맨틱 레이어, 되묻기
큰 스키마와 비슷한 컬럼명 스키마 연결·테이블 검색, 컬럼 설명 메타데이터 정비
그럴듯하지만 틀린 SQL(환각) 실행 결과 검증, 사람 검토, 정답 질의 세트로 정확도 평가(Spider·BIRD 같은 벤치마크)
보안·권한 읽기 전용 계정, 행·열 수준 접근 통제, 생성 SQL 의 DML·DDL 차단, 개인정보 마스킹. 프롬프트로 권한을 우회하는 프롬프트 인젝션에 대비
성능 비싼 전체 테이블 스캔을 막는 실행 계획 점검과 실행 시간 제한