요기요 : AlloyDB와 BigQuery의 연합 쿼리로 데이터 플랫폼 활용성 확장
Yogiyo에 대하여
위대한상상이 운영하는 음식 배달 플랫폼 요기요는 푸드테크 기술을 기반으로 가장 가까운 곳에서 고객과 레스토랑을 이어줍니다. 주문 상황에 따라 AI 기술을 이용한 맞춤형 배달 서비스를 제공하며 단순히 음식을 가져다 주는 것을 넘어 즐거운 식사 경험을 배송하고자 합니다. 최근에는 식료품과 생필품을 즉시 배송받을 수 있는 장보기 서비스를 더하며 새로운 라이프 스타일을 만들어가고 있습니다.
어떤 어려움을 겪고 계신지 알려주세요. Google Cloud가 도와드리겠습니다.
문의하기요기요는 실시간 분석이 필요한 현업 담당자들에게 즉각적인 데이터를 제공하기 위해 AlloyDB를 도입하고 BigQuery와 연합 쿼리를 통해 데이터 활용성을 높였습니다. AlloyDB가 더해지면서 기존 BigQuery의 데이터 수집 파이프라인이 고도화됐고 매일 처리되는 배치 작업 외에 즉각적인 데이터 수집, 활용 환경이 갖춰졌습니다.
구글 클라우드 사용 효과
- PostgreSQL 호환성으로 분석 속도, 편의성 확보
- 인프라 관리 부담 없이 대규모 데이터셋 신속하게 처리 가능
AlloyDB와 BigQuery 연합 쿼리로 고객 반응 실시간으로 읽는 데이터 플랫폼 구축
요기요는 대한민국의 대표 배달 주문 플랫폼으로 음식 소비 문화를 만들어내는 서비스입니다. 음식 배달을 넘어 우리 동네의 다양한 맛집들의 즐거운 먹거리 경험을 가정으로 옮겨오는 서비스를 만들어가고 있습니다. 단순한 주문 연결을 넘어 인공지능과 데이터 기술을 바탕으로 합리적인 맞춤 배달과 식료품과 생필품 장보기 등을 통해 지역을 연결하는 하이퍼 로컬 커머스 플랫폼으로 진화를 꾀하고 있습니다.
음식 배달 시장은 최근 가장 빠르게 성장한 산업입니다. 우리에게는 일상이 되었지만 배달 서비스의 경쟁은 더 치열해졌고, 새로운 서비스에 대한 시장의 기대도 커졌습니다. 요기요는 소비자와 음식점, 그리고 배달기사 사이를 이어주는 것을 넘어 모두가 만족할 수 있는 서비스를 제공하고자 끊임없이 노력을 이어가고 있습니다.
이용자들의 반응에 예민한 전략, 마케팅 등의 현업에서는 빠르게 바뀌는 시장의 요구사항을 민감하게 파악하는 것에서 더 나은 서비스 경험을 만들어낼 수 있습니다. 그리고 요기요는 데이터 분석을 통해 그 답을 찾아내고 있습니다.
BigQuery 이용한 DW에서 실시간 분석 데이터 플랫폼으로 진화 필요
요기요는 플랫폼 서비스이기 때문에 다양한 형태의 데이터가 생성됩니다. 이 데이터는 언제 주문이 많이 일어나는지부터 계절, 날씨별 음식 선호도나 더 나아가 이용자들이 주문을 망설이는 부분과 음식 배달을 멈추는 순간까지 모든 움직임을 담아내고 있습니다.
요기요는 이렇게 생성되는 데이터의 목소리에 귀를 기울이기 위해 서비스 초기부터 BigQuery를 통한 데이터 플랫폼을 구성했습니다. 요기요는 클라우드 기반의 마이크로 서비스 아키텍처로 구성, 운영되고 있기 때문에 모든 데이터는 각각의 서비스 안에 적재되고 처리됩니다.
이 데이터가 메시지를 서로 주고 받는 가운데에서 다양한 목소리와 인사이트가 나타나기 때문에 요기요는 데이터를 한 곳에 모으고 처리와 분석을 할 수 있는 데이터 레이크가 필요했습니다.
"BigQuery는 매일 발생되는 방대한 데이터를 가장 안전하고 체계적으로 모을 수 있는 수 있는 환경이었습니다. 또한 대부분의 데이터 사용자가 개발자가 아니라 데이터 분석가이기 때문에 빠르고 쉽게 데이터를 추출하고 분석할 수 있는 데이터 웨어하우스 역할도 중요했습니다. BigQuery는 한 마디로 여러 곳에 흩어진 데이터에 일관성을 더하는 ‘표준화된 단일 클라우드 데이터 플랫폼’으로서 최적의 서비스였습니다.”
BigQuery의 가장 큰 역할은 요기요의 수많은 마이크로 서비스에서 생성되는 데이터를 수집하는 것입니다. 대부분의 음식점이 문을 닫는 새벽 시간마다 Composer에 등록된 작업을 통해 자동으로 각 마이크로 서비스의 데이터를 추출하고 서비스 외부의 미리 약속된 데이터들도 함께 가져와 BigQuery의 데이터 레이크 영역에 쌓습니다.
BigQuery는 이 데이터들을 손쉽게 분석할 수 있도록 정제와 변환을 거쳐 체계적인 구조의 EDW 레벨 데이터베이스를 구성합니다. 그 과정에서 데이터는 현업에서 쉽게 활용할 수 있도록 데이터 마트와 요약 테이블로 정리되면서 본격적인 분석이 이뤄질 수 있는 채비를 갖추게 됩니다.
하지만 데이터는 상황에 따라 시간이 지나면 가치를 잃는 경우도 있습니다. 특히 주문과 결제, 배달 등 요기요가 플랫폼으로서 처리해야 할 부분에서 예상치 못한 반응이 나타나면 이를 빠르게 읽고 적절히 대응해야 합니다. 하루에도 수 없이 많은 주문이 이뤄질 뿐 아니라 스포츠 이벤트나 날씨, 소셜 미디어의 흐름 등 음식 주문에 미치는 다양한 요인들이 모두 서비스에 직접적인 영향을 주기 때문입니다.
AlloyDB로 적절한 규모의 실시간 데이터베이스 구성
안희정 실장은 BigQuery의 데이터 분석 기능은 뛰어나지만 쿼리를 기반으로 데이터를 수집하기 때문에 현재 요기요가 활용하고 있는 데이터 파이프 라인에서 실시간 분석을 처리하는 것은 다소 부담스럽다고 말했습니다. 데이터 분석은 특성에 따라서 다각도로 이뤄져야 하고, 이를 더 효과적으로 처리할 수 있는 파이프라인이 필요하다고 판단했습니다. 단순 DW를 넘어 데이터 플랫폼으로 고도화해야 하는 순간이 다가온 것입니다.
"BigQuery의 저장소 API는 데이터 플로우 및 데이터 프록과 같은 여러 다른 시스템에서 클라우드 저장소처럼 BigQuery 저장소를 사용할 수 있는 기능을 제공하고 있다 보니 굳이 데이터 레이크 영역과 데이터 웨어하우스 영역을 다른 시스템으로 분리할 필요가 없었습니다. 이제까지는 모든 데이터가 같은 정책으로 수집되면서 ODS 영역도 BigQuery를 이용했습니다. 하지만 실시간이 필요한 ODS를 조금 더 매끄럽게 가져올 수 있는 방법이 필요했습니다."
BigQuery는 기본적으로 쿼리 요청에 재빠르게 응답하는 환경이기 때문에 실시간 데이터 분석을 위해 요기요는 매일 새벽마다 이뤄지는 쿼리 외에 실시간 분석이 필요한 부분에는 30분, 5분 등 필요한 주기로 별도 쿼리를 요청해서 실시간에 준하는 데이터 분석 환경을 운영해 왔습니다. 가장 좋은 것은 데이터가 생성되는 운영 시스템에서 실시간으로 변경 사항을 전달해서 자동으로 수집되는 분석되는 환경을 만드는 것이지만 쉴 새 없이 돌아가는 서비스 환경에서 당장 데이터 흐름을 바꾸는 것은 쉽지 않은 일이었습니다.. 이 때문에 운영 시스템의 일부 데이터를 짧은 주기의 쿼리 기반으로 BigQuery 에 적재하고 작은 범위의 데이터를 자주 조회하는 비효율적인 경우가 발생하기도 했습니다.
안희정 실장은 현업의 실시간 성 데이터 활용 니즈와 ODS 데이터 수집 시간의 단축을 위해 실시간성 통합 DB 구축으로 방향을 잡았습니다. OLTP성 데이터베이스 관리 시스템이면서도 BigQuery와 매끄럽게 연결해 실시간성 운영 데이터 저장소(ODS, Operational Data Store)로도 활용할 수 있는 환경을 검토했습니다. 그리고 메시지성 데이터 처리에서 실시간 데이터 환경을 구성하는 실마리를 찾아냈습니다.
마이크로 서비스가 많아지면서 서비스간 데이터 이동이 많아지고 실시간 이벤트 처리의 필요성도 커졌습니다. 많은 데이터를 실시간으로 스트리밍하고 처리할 최적의 도구를 카프카라고 판단했고, 이를 관리형 서비스로 제공하는 Confluent Cloud를 도입하기로 했습니다.
"Confluent를 도입하다 보니 이벤트마다 메시지를 주고 받는 것 외에 CDC 방식으로 데이터의 변경사항을 캡쳐하고 이를 동기화할 수 있다는 가능성을 읽었습니다. 실시간 데이터 수집이 필요한 마이크로 서비스에 CDC를 적용해 AlloyDB를 하나의 타겟 DB로 설정했니다."
요기요는 BigQuery를 중심으로 EDW 구축을 해 두었기 때문에 구글 클라우드 데이터베이스 서비스를 통해 실시간 분석 환경이나 실시간 ODS 역할까지 확장하는 것이 적합하다고 판단했습니다.
실시간 DB 구축 계획 초기 단계에서는 여러 마이크로 서비스의 실시간 데이터를 수집하기 위해서는 쓰기 확장성도 갖추고 다운타임이 없는 Google Spanner 도 후보로 검토해보았으나 서드파티 솔루션과의 연계, 비용 및 활용도를 고려하는 과정에서 AlloyDB가 출시되면서 선택을 쉽게 해 주었습니다.
"일반 PostgreSQL로는 실시간 통합 DB를 구축하기에 부족하다고 생각하던 중 출시된 AlloyDB는 확장성, 성능 측면에서 대안이 될 것으로 생각했습니다. AlloyDB는 관계형 데이터베이스 형태로 실시간 처리가 손쉽게 이뤄질 수 있었고 읽기 확장성을 제공해 복잡한 데이터 분석도 매끄럽게 처리할 수 있었습니다."
빅쿼리 중심의 통합 데이터 플랫폼으로 데이터 활용성 높아져
안희정 실장은 AlloyDB는 데이터의 형태와 관리, 운영까지 요기요의 간지러운 부분을 시원하게 처리해 주었다고 평가했습니다. 읽기 처리에 대해 클러스터링을 해 주었기 때문에 빠르게 데이터를 분석할 수 있으면서도 가격 부담이 적었습니다.
이제까지 요기요는 BigQuery를 통한 쿼리와 분석 환경은 북미 리전의 구글 클라우드에서 운영되었습니다. 반면 AlloyDB는 서울 리전에서 운영되고 있어 연합쿼리를 위해 BigQuery를 서울 리전으로 옮길 계획입니다. 때마침 BigQuery의 리전간 데이터셋 복제 기능이 제공되어 현재 테스트를 마치고 서울 리전으로 옮기는 과정을 진행하고 있습니다.
반면 AlloyDB는 서울 리전에 자리를 잡아서 아직은 완벽한 실시간 연동이 이뤄지지는 않습니다. 하지만 구글 클라우드의 서비스 리전 이전이 매끄러워지면서 현재 BigQuery를 국내 리전으로 옮기는 과정이 진행중입니다.
"이전이 완료되고, 곧 예고된 BigQuery와 AlloyDB의 연합 쿼리(Federation query)가 작동하기 시작하면 실시간 데이터와 빅쿼리의 DW 데이터를 연계하여 데이터를 활용하고자 하는 현업 사용자들의 요구 사항에 더 신속하게 대응할 수 있을 것으로 기대합니다."
안희정 실장은 구글 클라우드의 다양한 데이터 도구와 서비스들이 만족스럽다고 말합니다. 단순히 기능적인 부분을 넘어 데이터 활용에 대한 가능성을 다양하게 생각할 수 있을 뿐 아니라 BigQuery를 중심으로 한 연합 쿼리 등 지속적인 업데이트를 통해 데이터 사이의 활용성을 높여주는 부분에 주목하고 있다는 설명입니다.
요기요는 이제까지처럼 데이터를 활용해 다양한 고객 서비스와 마케팅 효율을 높이는 데에 집중할 계획입니다. AlloyDB는 그 과정에서 데이터를 확장할 수 있는 하나의 방법이고, 요기요는 AlloyDB 도입을 통해 BigQuery를 중심으로 한 다양한 형태의 데이터 활용에 대한 가능성을 경험할 수 있었습니다.
"이전이 완료되고, 곧 예고된 BigQuery와 AlloyDB의 연합 쿼리(Federation query)가 작동하기 시작하면 실시간 데이터와 빅쿼리의 DW 데이터를 연계하여 데이터를 활용하고자 하는 현업 사용자들의 요구 사항에 더 신속하게 대응할 수 있을 것으로 기대합니다."
어떤 어려움을 겪고 계신지 알려주세요. Google Cloud가 도와드리겠습니다.
문의하기Yogiyo에 대하여
위대한상상이 운영하는 음식 배달 플랫폼 요기요는 푸드테크 기술을 기반으로 가장 가까운 곳에서 고객과 레스토랑을 이어줍니다. 주문 상황에 따라 AI 기술을 이용한 맞춤형 배달 서비스를 제공하며 단순히 음식을 가져다 주는 것을 넘어 즐거운 식사 경험을 배송하고자 합니다. 최근에는 식료품과 생필품을 즉시 배송받을 수 있는 장보기 서비스를 더하며 새로운 라이프 스타일을 만들어가고 있습니다.