데이터의 시대, 우리 곁에는 매일같이 방대한 정보가 흐릅니다. 기업의 성패는 데이터를 얼마나 잘 활용하느냐에 달려있다고 해도 과언이 아닙니다. 다만 데이터와 소통하기 위해서는 SQL(Structured Query Language)이라는 전문 언어를 구사해야만 했습니다. 이는 비전문가들에게는 커다란 장벽으로 다가왔습니다. 그런데 만약 우리가 일상적으로 사용하는 말로 데이터와 대화할 수 있다면 어떨까요? 이러한 상상을 현실로 만들어주는 기술이 바로 NL2SQL입니다.
NL2SQL은 ‘Natural Language to SQL’의 약자로, 이름 그대로 우리의 일상적인 언어를 데이터베이스가 이해할 수 있는 언어인 SQL로 자동 변환해주는 기술입니다. “지난달 우리 플랫폼에서 가장 많이 팔린 상품 10개가 뭐야?”라고 질문만 하면 AI가 자동으로 SQL을 생성하고 원하는 데이터를 찾아내는 것입니다.
NL2SQL 어떻게 발전해왔을까?
NL2SQL 기술의 발전은 긴 여정을 거쳐왔습니다. 초기에는 사전에 정의된 규칙과 키워드를 기반으로 작동하는 규칙 기반시스템이 주를 이루었습니다. 이후 인공지능과 딥러닝 기술이 발전하며 문장의 문맥과 의미를 깊이 이해하는 모델로 진화했고, 최근 LLM, 즉 GPT와 같은 모델이 등장하면서 기술은 폭발적인 성장을 이루었습니다. 이전보다 훨씬 더 다양하고 정확하게 자연어를 SQL로 변환할 수 있게 되었습니다.
NL2SQL은 어떻게 작동할까?
본사에서 개발한 NL2SQL 기술이 실제로 어떤 문제를 해결할 수 있는지 사례를 통해 NL2SQL의 원리를 살펴보겠습니다.
-
자연어 질문 입력
사용자가 “SAT 시험에서 수학 평균 점수가 400점 넘는 학교 중에서 완전히 원격으로 운영되는 학교는 몇 개입니까?“과 같은 질문을 입력합니다.
-
의도 파악 및 스키마 연결: 모델은 질문의 핵심 의도(‘학교는 몇 개’을 알고 싶어 함)와 제약 조건(‘수학 평균 점수가 400점 넘는’, ‘완전히 원격’)을 분석합니다. 동시에, 데이터베이스의 구조(스키마) 정보를 참고하여 ‘school’(학교) 테이블의 ‘Virtual'(원격) 컬럼, ‘satscores'(SAT점수) 테이블의 ‘AvgScrMath'(수학 평균 점수) 컬럼 등 질문과 관련된 테이블과 컬럼을 찾아냅니다.
-
SQL 쿼리 생성: 분석된 의도와 스키마 정보를 바탕으로, 모델은
SELECT COUNT(DISTINCT T2.School) FROM satscores AS T1 INNER JOIN schools AS T2 ON T1.cds = T2.CDSCode WHERE T2.Virtual = 'F' AND T1.AvgScrMath > 400;과 같은 SQL 쿼리를 생성합니다. -
데이터베이스 질의 및 결과 반환: 생성된 SQL 쿼리를 데이터베이스에 실행하여 결과를 얻고 이 결과를 사용자에게 자연어, 표 등으로 이해하기 쉬운 형태로 제공합니다.

출처: BIRD SQL Dev Set california_schools DB, satscores table

SQL Query 실행 결과
LLM Input: SAT 시험에서 수학 평균 점수가 400점 넘는 학교 중에서 완전히 원격으로 운영되는 학교는 몇 개입니까?
(NL2SQL 모듈 실행)
LLM Output: SAT 시험에서 수학 평균 점수가 400점 넘는 학교 중에서 완전히 원격으로 운영되는 학교는 4개입니다.
이처럼 자연어로 된 질문을 그대로 입력하고 자연어로 된 답변을 받을 수 있습니다. 사용자 입장에서는 NL2SQL이 실행되고 있다는 사실조차 모르는 정도로 답변이 자연스럽고 빨리 출력됩니다.
활용 분야 및 이점
NL2SQL은 다양한 산업 분야에서 데이터 접근의 장벽을 허물고 새로운 가치를 창출하고 있습니다.
-
비즈니스 인텔리전스(BI): 경영진이나 마케터가 데이터 분석가 없이도 직접 판매 실적, 고객 동향 등을 실시간으로 파악하고 신속한 의사결정을 내릴 수 있습니다.
-
금융: 금융 분석가들은 복잡한 SQL 쿼리 없이도 특정 기간의 거래 내역, 위험 관리 지표 등을 빠르게 조회하고 분석할 수 있습니다.
-
의료: 연구원이나 의사들이 방대한 환자 데이터를 기반으로 특정 질병의 패턴이나 치료법의 효과 등을 손쉽게 분석하여 연구 및 진료에 활용할 수 있습니다.
-
소매 및 이커머스: 상품 담당자는 특정 상품의 재고 현황, 고객 리뷰 분석 등을 통해 재고 관리 및 마케팅 전략을 효율적으로 수립할 수 있습니다.
NL2SQL 도입의 가장 큰 이점은 데이터 접근성 향상입니다. 기술적 지식이 없는 사람도 누구나 데이터에 쉽게 접근하고 활용할 수 있게 되어 데이터 민주화를 실현할 수 있습니다. 이는 곧 업무 효율성 증대와 비용 절감으로 이어집니다.
기업의 데이터, 어떻게 안전하게 대화할까?
GPT같은 초거대 LLM은 NL2SQL의 성능을 크게 향상시켰습니다. 하지만 기업이 이러한 공개 상용 모델을 활용하는 데에는 매우 중요한 문제가 있습니다. 바로 데이터 보안입니다.
상용 모델의 API를 이용한다는 것은 사용자의 질문뿐만 아니라 분석에 필요한 데이터베이스 구조(스키마)와 기업의 민감한 내부 데이터를 외부 서버로 유출될 수 밖에 없습니다. 고객 정보, 재무 데이터, 영업 비밀 등이 외부로 나가는 순간, 기업은 소중한 데이터 유출 리스크와 규제 위반 문제에 직면하게 됩니다.
바로 이 문제를 해결하기 위해, 우리는 외부 클라우드에 의존하지 않는 ‘On-Premise NL2SQL 모델’을 직접 개발하고 있습니다. On-Premise 모델은 기업의 내부 서버나 프라이빗 클라우드에 직접 설치합니다. 이는 다음과 같은 명확한 이점을 가지고 있습니다.
-
완벽한 데이터 통제: 사용자의 질문부터 데이터베이스 스키마, 최종 결과까지 모든 데이터가 기업 내부망을 벗어나지 않습니다.
-
내부 환경 최적화: 기업의 고유한 데이터베이스 구조와 내부 용어에 맞춰 범용 모델보다 더 높은 정확도와 성능을 발휘할 수 있습니다.
따라서 온프레미스 NL2SQL은 기업이 데이터 유출 걱정 없이 마음껏 데이터와 대화할 수 있는 가장 안전하고 확실한 솔루션이 될 것입니다.
넘어야 할 산
NL2SQL 완벽한 것은 아닙니다. 여전히 해결해야 할 과제들이 남아있습니다.
-
자연어의 모호성: “인기 있는 상품”과 같이 사람마다 해석이 달라질 수 있는 모호한 표현을 정확히 이해하는 것은 여전히 어려운 문제입니다.
-
복잡한 데이터베이스 구조: 수천 개의 테이블이 복잡하게 얽혀있는 대규모 데이터베이스의 구조를 정확하게 파악하고 올바른 SQL을 생성하는 것은 높은 기술력을 요구합니다.
-
정확성 및 신뢰성: 잘못된 SQL 쿼리는 잘못된 분석 결과로 이어져 비즈니스에 큰 손실을 초래할 수 있습니다. 따라서 생성된 SQL의 정확성을 보장하는 것이 매우 중요합니다.
이러한 문제들을 완화하고자 본사에서는 자체 기술을 꾸준히 개선해 나가고 있습니다.
미래를 향한 끊임없는 진화
NL2SQL의 미래는 매우 밝습니다. 본 기술은 더 길고 복잡한 문맥을 이해하도록 계속 발전되고 있습니다. 앞으로 NL2SQL은 단순히 SQL을 생성하는 것을 넘어 생성된 결과를 분석하여 사용자에게 필요한 인사이트를 먼저 제안해주거나 대화의 맥락을 기억하여 후속 질문에 더 정확하게 답변하는 등 더욱 지능적인 데이터 분석 도구로 진화할 것입니다.
데이터가 곧 경쟁력인 시대, NL2SQL은 우리와 데이터 사이의 마지막 장벽을 허물며 누구나 데이터 전문가가 될 수 있는 새로운 시대를 열고 있습니다. 이제 우리는 데이터에게 말을 걸고, 그 속에서 새로운 기회를 발견하게 될 것입니다.
