LLM이 만든 SQL을 믿고 실행하기까지: A2A 기반의 대화형 BI 애플리케이션 개발기

5 days ago 12

들어가며 안녕하세요. Game Platform실의 이형중, 김민희, 정소영입니다. 저희 조직은 게임 퍼블리싱에 필요한 다양한 기능을 개발하고 운영하는 역할을 맡고 있습니다. 저희는 ‘자연어 질문 → SQL 생성 → 실행/시각화’까지 이어지는, 이른바 대화형 BI 애플리케이션(ChatGamesight)을 만들고 있습니다. 사용자는 데이터 테이블을 직접 찾아 들어가거나 대시보드를 이리저리 탐색하지 않아도, 궁금한 내용을 질문 형태로 던지고 결과를 바로 확인할 수 있습니다. 여기서 BI(Business Intelligence)란 조직에 쌓인 데이터를 지표, 대시보드, 리포트 형태로 정리해 지금 무슨 일이 벌어지고 있는지를 빠르게 판단할 수 있게 돕는 체계입니다. 다만 기존에는 지표 정의와 배경 맥락이 여러 곳에 흩어져 있어, 질문이 생길 때마다 담당자가 정의를 다시 확인하고 쿼리를 작성해야 했습니다. 그 결과 비데이터 직군은 답을 얻기까지의 허들이 높았고, 데이터 담당자는 반복 문의와 컨텍스트 스위칭 비용을 꾸준히 떠안는 구조가 되기 쉬웠습니다. 이런 배경에서 질문만 하면 답이 나오는 BI를 만들고자 LLM을 도입했을 때, 처음에는 SQL을 그럴듯하게 생성해 주기만 하면 될 것 같아 보였습니다. 하지만 실제 데이터 환경에 얹어 운영을 도입하려고 하니, 중요한 건 질문-응답의 한두 번 성공이 아니라 ‘운영 가능한 신뢰’라는 것을 곧바로 체감했습니다. 운영 환경에서는 ‘가끔 틀리는 답’과 ‘가끔 위험한 쿼리’가 결국 애플리케이션 전체의 신뢰를 무너뜨리기 때문입니다. 이번 글에서는 이 과정에서 마주친 문제와, 대화형 BI에 운영 가능한 신뢰를 더하기 위해 설계한 구조와 안전장치를 공유하고자 합니다. 대화형 BI 애플리케이션을 운영하며 마주한 과제 먼저 원활한 이해를 돕기 위해 저희가 개발해 서비스하고 있는 대화형 BI 애플리케이션의 동작 흐름에 대해 소개하겠습니다. 대화형 BI는 겉으로는 ‘질문하면 답한다’로 보이지만, 내부적으로는 질문 해석, 지식 검색, SQL 생성, 실행/시각화, 답변 생성 단계가 촘촘히 연결됩니다. 이 흐름을 실제 운영 환경에 적용하면서 가장 크게 부딪힌 문제는 두 가지였습니다. 하나는 사내 데이터의 의미를 모델에 어떻게 전달할 것인가였고, 다른 하나는 모델이 생성한 SQL을 권한, 개인정보, 리소스 관점에서 어떻게 안전하게 실행할 것인가였습니다. 문제 1: LLM은 사내 데이터의 의미를 모른다 스...

Read Entire Article