기술철학
우리가 던지는 비즈니스 질문과 데이터베이스가 이해하는 언어(SQL) 사이에는
본질적인 의미의 간극이 존재합니다.
예를 들어, “어제 가입한 신규 사용자 중 특정 상품을 구매한 사람들의 연령 분포는?”
이라는 질문은, 데이터베이스 입장에서는 JOIN, WHERE, GROUP BY
같은 구조적 구문으로 번역되어야만 이해할 수 있습니다.
이러한 간극을 메우는 것이 바로 Text-to-SQL 기술의 본질입니다.
인간의 언어를 데이터가 이해할 수 있는 형태로 변환하는 의미 기반 번역기를 구축하는 것이죠.
전체 흐름은 다음과 같습니다:
[사용자] → [① 사용자 UI] → [② 백엔드 서버] ↔ [③ LLM API] → [④ Redash API] → [⑤ BigQuery]
① 사용자 UI: 사용자가 자연어 질문을 입력하는 전용 웹 인터페이스
② 백엔드 서버 (오케스트레이터): 전체 흐름을 제어하는 두뇌. LLM 호출 및 Redash API 연동 담당
③ LLM API (번역기): 백엔드로부터 질문 + 스키마 정보를 받아 정밀한 BigQuery SQL로 변환
④ Redash API (실행 및 시각화): 생성된 SQL을 Redash로 전송하고 결과를 시각화
⑤ BigQuery (데이터 소스): 실제 쿼리가 실행되는 데이터 웨어하우스
이 구조의 성공은 LLM이 데이터 스키마를 얼마나 잘 이해하고 자연어 개념을 정확히 SQL로 매핑하느냐에
달려 있습니다.
예를 들어, WHERE DATE(signup_timestamp) = CURRENT_DATE() - 1
같은 쿼리를 정확히 생성하도록 LLM을 프롬프트 엔지니어링이나
라이트 파인튜닝을 통해 유도해야 합니다.
이는 단순한 기술 구현을 넘어
의미 기반 해석 능력을 요구하는 작업입니다.
쿼리 검증 및 비용 최적화: 생성된 SQL의 성능과 비용을 백엔드에서 검증하는 로직 필요
질문 모호성 해결: 예) “인기 있는 상품” 같은 표현을 해석하기 위한 정책 수립 필요
데이터 거버넌스와 보안: 백엔드는 사용자 권한을 확인하고 데이터 접근을 통제하는 관문 역할 수행
Text-to-SQL 기술이 가져오는 변화는 단순한 효율 향상을 넘어 문화의 전환을 의미합니다.
"어떻게" 질문해야 하는지(SQL을 작성하는 기술)를 몰라도 되는 순간, 사람의 가치는 "무엇을" 그리고 "왜" 질문할 것인가로 이동합니다.
기술은 문법을 처리하고, 사람은 맥락과 전략을 다룹니다.
이 여정의 궁극적인 목적은 기술 배경과 무관하게 모든 구성원이 자유롭게 데이터 기반 호기심을 탐색할 수 있는 조직 문화를 만드는 것입니다.
그리고 그 호기심이, 조직을 한 걸음 더 나아가게 할 다음 질문을 만들어낼 것입니다.