데이터 맛집의 비밀 레시피: AI로 SQL 쿼리 자동화하기

오늘은 반복적인 데이터 요청에 대응하기 위해, 기존 SQL 쿼리를 임베딩해 자동화한 AI 도구 ‘MySQLTrip’을 소개합니다.

Share
데이터 맛집의 비밀 레시피: AI로 SQL 쿼리 자동화하기

오늘은 반복적인 데이터 요청에 대응하기 위해, 기존 SQL 쿼리를 임베딩해 자동화한 AI 도구 ‘MySQLTrip’을 소개합니다.

반복되는 쿼리 요청, 작은 팀의 큰 도전

마이리얼트립에서 데이터는 의사결정의 핵심입니다. 하지만 데이터 분석팀에게는 끊임없이 들어오는 데이터 분석 요청이 큰 도전이 되곤 해요. 특히 비슷해 보이지만 각기 다른 요청들은 처리하는 데 많은 시간이 필요하죠.

“저희도 비슷한 요청들(BI 를 위한 SQL 작성해달라는)이 되게 많이 들어와요. 그런데 이게 비슷한데 뭔가 비슷하지 않은… 이거를 만들려면 되게 많은 시간이 드는 그런 요청들이 되게 많이 들어옵니다.”

겉으로 보기에는 간단한 요청도 데이터팀 입장에서는 완전히 새로운 작업이 될 수 있어요. 한 칼럼만 추가해달라는 요청이 실제로는 엄청난 작업량을 필요로 하는 경우가 많죠.

“어찌 보면 ‘칼럼 하나만 추가해주세요’ 단순해 보이는 요청인데, 저희 입장에서 생각하면 ‘(그림을 보며)여기가 비어있는데 산을 그려주세요’ 이런 느낌이에요.”

더구나 마이리얼트립은 ‘데이터 맛집’이라고 할 수 있을 정도로 데이터를 적극적으로 활용하고 있어요. 하지만 데이터 분석팀은 단 3명에 불과해 모든 요청을 처리하는 데 병목 현상이 생길 수밖에 없었죠.

이렇게 줄 서서 기다려야 하는 상황, 그리고 각기 다른 요청에 맞춰 계속 새로운 ‘요리’를 만들어야 하는 환경에서 우리는 AI의 도움을 받기로 결정했어요.

AI를 활용한 SQL 쿼리 자동 생성 시스템 개발

반복적인 SQL 쿼리 작성 작업을 효율화하기 위해 ‘MySQLTrip’이라는 AI 도구를 개발했어요. (이름도 AI에게 부탁해서 지었답니다!)

이 도구는 데이터 분석팀이 기존에 작성했던 검증된 SQL 쿼리들을 활용해 새로운 쿼리를 자동으로 생성하는 시스템이에요.

하지만 모든 쿼리를 다 활용할 수는 없었어요. 신뢰할 수 있는 쿼리들만 선별했고, 너무 복잡한 비즈니스 로직이 포함된 것은 제외했죠. AI가 아직은 우리 비즈니스를 완벽하게 이해할 수 없기 때문이에요.

“너무 복잡한 쿼리나 비즈니스 로직이 많이 포함된 것들을 포함하지는 않았어요. 왜냐하면 AI가 아직은 저희 비즈니스를 다 이해할 수 없기 때문이죠.”

시스템 구축을 위해 우선 기존 쿼리들을 카테고리화했어요. 고객 추출, 유입 전환 퍼널, GMV, 커뮤니티, 마케팅 파트너, 예약 후 리드 타임 등의 카테고리로 나누고, 이를 데이터베이스에 저장했죠.

그 다음 단계로 이 쿼리들을 Embedding했어요. Embedding이 무엇인지 쉽게 설명해 드릴게요.

“Embedding 을 간단하게 설명드리면 이렇게 샌드위치, 각각의 음식에 대해서 이 음식이 어디에 존재하고 있는지를 거치보면 점으로 찍어놓은 거라고 보면 될 것 같아요. 그래서 여기는 샌드위치화된 애들은 이쪽에 있고 디저트화된 거는 이쪽에 있고…”

이렇게 음식 종류별로 위치가 다르듯, 각 쿼리도 특성에 따라 벡터 공간에 배치되죠. 그러면 새로운 요청이 들어왔을 때, 그 요청과 가장 비슷한 기존 쿼리를 찾아낼 수 있어요.

이런 방식으로 고객의 데이터 요청과 가장 관련성 높은 기존 쿼리들을 찾아내고, 이를 바탕으로 AI에게 새로운 SQL 쿼리를 생성하도록 요청하는 시스템을 구축했어요.

기대 이상의 성능: ‘MySQL 트립’의 가능성

개발된 SQL 자동화 도구는 예상보다 좋은 성능을 보여주고 있어요. 아직 몇 가지 추가 수정이 필요하긴 하지만요.

이 시스템의 가장 큰 장점은 데이터팀의 업무 효율성을 크게 높인다는 점이에요. 지금까지는 많은 데이터 요청이 줄 서서 기다려야 했지만, 이제 AI가 반복적인 SQL 작성을 도와주면 팀원들은 더 복잡하고 가치 있는 작업에 집중할 수 있죠.

또한 우리가 많은 쿼리를 모두 기억할 필요 없이, 시스템이 가장 적합한 쿼리를 찾아주고 필요에 맞게 변형해 줍니다. 이는 마치 요리사가 모든 레시피를 외울 필요 없이, AI 어시스턴트가 상황에 맞는 최적의 레시피를 추천해주는 것과 같아요.

시스템은 단순히 쿼리를 생성하는 것에 그치지 않고, 에러를 체크하는 기능도 포함하고 있어요. 이렇게 생성된 쿼리는 리대시로 업로드되어 실제로 잘 작동하는지 확인할 수 있도록 했죠.

Embedding 기반 쿼리 검색 시스템: 기존 쿼리를 요리 레시피처럼 활용하다

MySQLTrip에서 가장 핵심적인 건 데이터 스키마나 테이블 명세를 Embedding 하는 것 대신에 우리가 실제로 사용했던 수백 줄짜리 SQL 쿼리 그 자체를 Embedding했다는 점이었어요.

이 쿼리들은 단순 조회가 아니라, 여러 테이블을 조인하거나, 복잡한 조건과 비즈니스 로직이 들어간 실제 분석용 쿼리예요. 기존의 text-to-SQL처럼 자연어를 바로 SQL로 생성하는 방식으로는 이런 쿼리들을 만들기 어려웠죠. 그래서 저희는 반대로, 신뢰할 수 있는 기존 쿼리들을 Embedding해서 검색하고 재사용하는 구조를 선택했어요.

조금 비유를 섞자면, 기존 쿼리들은 수천 개의 요리 레시피라고 할 수 있어요. Embedding은 이 레시피들을 상황에 따라 쉽게 찾을 수 있도록 정리해둔 지도 같은 역할을 해요. 사용자가 “담백한 국물 요리 하나 주세요”라고 하면, AI는 “아, 이거랑 비슷한 레시피 여기 있어요” 하고 찾아주는 식이에요. 그리고 필요에 따라 재료(조건, 필터, 날짜 등)를 바꿔서 새롭게 만들어주는 거죠.

중요한 건 이 시스템이 단순히 쿼리를 ‘생성’하는 게 아니라, 실제로 잘 작동하는 쿼리를 기준으로 삼아서, 재사용성과 정확성을 함께 높이고 있다는 점이에요. 덕분에 저희는 반복 작업에 드는 시간을 줄이고, 데이터팀이 더 중요한 분석이나 설계 작업에 집중할 수 있게 됐어요.

다음 편에서도 이런 AI 도구들이 실제 비즈니스 성과에 어떤 영향을 미치는지, 그리고 또 다른 팀들은 어떻게 AI를 활용하고 있는지 더 많은 사례를 소개해 드릴게요. 마이리얼트립의 AI 혁신 여정은 이제 막 시작되었으니까요!

Read more

AI 추천과 예약 사이의 거리를 좁히는 법: 마이리얼트립이 조코딩 AX 해커톤에 낸 문제

AI 추천과 예약 사이의 거리를 좁히는 법: 마이리얼트립이 조코딩 AX 해커톤에 낸 문제

마이리얼트립은 조코딩AX파트너스가 연 해커톤 「AX 인재전쟁」에 기업 출제자로 참여했습니다. API를 제공하는 데서 나아가, 참가자들이 풀어야 할 문제를 직접 내고 심사했습니다. 문제의식은 단순합니다. AI를 여행에 흔히 쓰게 되면서 정보 탐색은 한결 쉬워졌는데, 정작 사람들은 여전히 여행 계획을 손으로 짭니다. 추천은 넘치는데 '진짜 갈 수 있는 경험'까지 좁혀주는

By 마이리얼트립
가장 중요한 문제에, 가장 잘 맞는 사람을 붙인다

가장 중요한 문제에, 가장 잘 맞는 사람을 붙인다

마이리얼트립의 프로덕트 엔지니어(PE)는 CTO 직속 PS팀(Product Strategy)에 모여 있습니다. 전사에서 가장 중요한 문제에 가장 잘 맞는 PE를 배치하고 한 명의 PE가 문제 정의부터 구현과 배포까지 끝까지 책임지는 조직입니다. 이렇게 한 데는 이유가 있습니다. 회사에서 가장 중요한 문제는 계속 바뀌는데, 사람이 특정 버티컬에 묶여 있으면 그 경계

By 마이리얼트립
돌려쓰던 테스트 환경을, 각자의 환경으로: 배포 병목을 없앤 이야기

돌려쓰던 테스트 환경을, 각자의 환경으로: 배포 병목을 없앤 이야기

PEPE 세션 — 회원주문개발팀 정현수 님 과거 마이리얼트립의 공용 테스트 환경은 쓰려는 사람에 비해 모자랐습니다. 누가 쓰는지 알기 어려워 "지금 써도 되냐"고 서로 물어 가며 차례를 기다리는 경우가 많았고, 내가 작업 중인 사이 다른 사람이 배포하지 않도록 조율해야 했습니다. 이 병목을 환경 개수를 늘리는 방식에서 각자 자기 환경을

By 마이리얼트립
예약에서 끝나지 않는 여행: 한 명이 10여 개 레포를 가로질러 만든 항공 여정 케어

예약에서 끝나지 않는 여행: 한 명이 10여 개 레포를 가로질러 만든 항공 여정 케어

마이리얼트립이 예약한 항공편의 운항 상태를 고객이 앱을 열지 않아도 실시간으로 받아보는 서비스를 선보였습니다. 출발 3시간 전 알림부터 게이트 변경과 지연, 결항, 회항, 출발, 도착, 수하물 상태까지, 비행의 흐름 전체를 고객이 찾기 전에 먼저 안내합니다. 여행은 항공권을 예약하는 순간 끝나지 않습니다. 짐을 싸고 공항으로 향하고 비행기에 올라 목적지에 내려 짐을 찾을

By 마이리얼트립