Search
Duplicate

[사례연구] Foodics, +2만2천명 실시간 고객 경험 및 기업가치 증대

문서번호 : 11-461575
“SingleStore DB를 통해 플러그 앤 플레이(plug and play) 방식으로 고객에게 필요한 모든 기능 제공을 할 수 있어서, 주 업무인 고객 서비스에 집중할 수 있었습니다.”
- 모하메드 레드완, Foodics 엔지니어링 책임자
레스토랑 비즈니스는 이윤이 적기 때문에 모든 데이터 포인트가 의사 결정에 중요한 요소입니다. 레스토랑 오너가 성능으로 인해 가시성이 떨어지거나 보고서를 작성하는데 시간이 너무 오래 걸린다면 문제가 발생할 수 있습니다. Foodics는 레스토랑들에게 효율성과 수익성을 제공하기 위해 2014년에 설립되었습니다.
Foodics는 기업과 레스토랑의 실시간 리포팅, 재고/주문 관리 및 직원 관리 방식에 혁신을 제공하고 있습니다. 클라우드 기반 POS(Point of Sale) 및 레스토랑 관리 시스템을 제공해서 레스토랑 관리가 매우 용이해졌습니다. 이 시스템은 레스토랑들이 그들의 사업을 관리하고 원활하게 성장할 수 있도록 돕기 위해 고안되었으며, 모바일 기반으로 영어와 아랍어로 서비스를 제공하고 있습니다.
빠르게 성장 중인Foodics는 사우디 리야드에 본사가 있으며 현재 35개 마켓에 서비스를 제공하고 있습니다. 22,000개 이상의 레스토랑, 푸드트럭, 카페, 패스트푸드 체인점들이 수익과 고객과의 관계 증대를 위해 Foodics를 사용하고 있습니다. 회사는 연간 50억 개 이상의 주문을 처리하고 있고, 570명 이상의 직원 규모로 성장했으며 2022년 최신 시리즈 C 펀딩 라운드에서 1억 7천만 달러를 투자 받았습니다.

도전/목표

Foodics는 사업주와 관리자를 위한 대시보드 분석 기능을 제공합니다. 고객은 지점별 비즈니스 수행 방식, 지불 방법, 제품 및 기타 기준에 따라 빠른 인사이트를 얻을 수 있습니다. 비즈니스의 모든 측면에 대해 쉽게 필터 적용, 서로 다른 측정항목 그룹화, 분석 차원(dimensions) 변경을 통해 정확하고 빠르게 결과 분석이 가능합니다.
Foodics는 초기에 고객 서비스 및 청구를 위해 CitusDB를 사용했고 부족한 기능에 대해 MySQL를 통해 보강했습니다. CitusDB는 분석 용도로 사용을 하고, 트랜잭션은 최초 MySQL로 처리했고 이후에는 상용 PostgreSQL로 분리해서 처리했습니다.
Foodics는 CitusDB의 안정성 문제에 봉착했습니다. 한 달에 4번 이상 장애가 발생되었고 한번 발생한 장애는 3시간 가량 지속되었습니다. 동시 사용자도 최대 200명까지만 제한 되었습니다. 당시 Foodics는 5,000명의 고객을 보유하고 있었지만 잦은 서비스 중단과 실시간 분석 기능 부재로 고객 이탈이 가속화되고 있었습니다. 하지만 이러한 상황을 타개할 수 있는 기술적 지원을 데이터베이스로부터 원활히 받지 못했습니다. 5000명의 사용자 만으로도 데이터베이스 관련 문제가 발생하는 것은 Foodics가 앞으로 목표로 하는 성장에 걸림돌이 될 것이 분명했습니다. (Foodics는 2021년 시리즈 B 펀딩에서 2천만 달러를 투자 받았었지만 시스템 관련 문제가 성장을 제한함으로 향후 투자 확보가 불투명했습니다.)
“기반 기술의 호환성과 사용의 편의성 때문에 타 벤처 기업과 마찬가지로 MySQL 기반으로 서비스를시작했습니다. 이것을 통해 잠시 동안 소기의 목적 달성을 했지만, 우리가 향후 성장하고 확장해야 하는 목표를 이루기에는 MySQL이 너무 부족했습니다.” - 모하메드 레드완, 엔지니어링 리더, Foodics
사용하기 쉬웠지만 실시간 분석 기능이 부족했던 MySQL 대신에 리포팅 엔진의 분석 데이터를 저장하기 위해 PostgreSQL을 선택했습니다. 병렬처리와 데이터 복제를 지원하는 single-tenant 구조인 PostgreSQL매니지드 서비스를 적용했었습니다.
하지만 PostgreSQL에는 수직확장과 수평확장에 문제가 있었습니다. 특히 수평확장시에 데이터 리벨런싱하는데 너무 많은 시간이 소요되어 고객 서비스에 많은 영향을 미칠 수 밖에 없었습니다. 고객이 증가하고 서비스 활용도가 많아 짐에 따라 여러 PostgreSQL 노드에서 데이터 리벨런싱하는 데 엄청난 시간과 노력이 필요했습니다.
이러한 어려움 외에도 Foodics의 AWS기반의 다양한 에코 서비스를 사용해서 어플리케이션이 매우 복잡했고 문제 발생에 따른 해결도 용이하지 않아 AWS 에코 서비스를 제거하려고 노력했습니다.

기술 요구 사항

모든 문제 해결을 위한 데이터베이스 요건
단일 통합 데이터 저장소 제공
컬럼 기반 저장소가 있는 성능 분석 엔진
(준)실시간에 가까운 분석을 위해 빠른 데이터 수집 및 빠른 읽기 성능 제공
모든 고객에 대해 단일 데이터베이스를 사용하는 다중 테넌트 아키텍처
대규모 고객(수만 명이상) 수용 가능한 아키텍처 제공
초당 100개이상으로 생성되는 리포트 지원 & 전체 고객 1%이상에게 동시성 제공
매달 수십억 건의 주문과 500만 건의 거래를 처리할 수 있는 능력
스케일업 및 스케일아웃의 확장이 가능한 아키텍처 제공(Foodics의 가속화된 성장 전략에 따라)
다운타임이 거의 없는 고가용성
"Foodics 서비스는 고객에게 24시간 연중무휴로 열린 공간이어야 합니다. 그래서 서비스를 중단하거나 보고서의 지연이 용납될 수가 없습니다. 그리고 한 번에 얼마나 많은 고객이 이 데이터베이스를 사용하고 있는지와 상관없이 원활하게 보고서를 작성할 수 있는 동시성이 필요했습니다. 내부에 다양한 데이터 저장소를 갖고 있어서 사용자가 필요에 따라 각각의 저장소에 접속해야만했습니다. 이에 통일된 이야기를 위해 이 모든 데이터를 한 곳으로 모으고 싶었습니다. 이는 모든 사용자가 가능한 한 빨리 데이터 저장소에 접속해서 원하는 데이터를 면밀히 분석 할 수 있게 한다는 것입니다. 이를 통해 고객은 데이터 중심 의사 결정을 더 빨리 내릴 수 있을 것입니다."- 모하메드 레드완, 엔지니어링 리더, Foodics

SingleStore을 사용하는 이유

Foodics는 PostgreSQL의 대안으로 다양한 데이터베이스를 검토하기 시작했습니다. Fanthom Analytics의 공동창업자이자, SingleStore 고객인 Jack Ellis가 작성한 세계에서 가장 빠른 웹 사이트 분석이라는 훌륭한 블로그 게시물을 발견했고, 그 기사에는 그들이 찾던 기능 이상의 것들을 설명해주었다고 합니다.
Foodics가 검증한 SingleStore의 혜택과 기능은 아래와 같습니다.

사용 편의성 및 호환성

레드완에 따르면 그들은 작은 팀이기 때문에 데이터베이스를 튜닝하는데 시간을 낭비하고 싶지 않았고, 있는 그대로 잘 동작하는 데이터베이스를 원했다고 합니다. 이러한 이유로 이 팀은 AWS에서 운영중인 SingleStoreDB Cloud를 사용했습니다. SingleStore를 사용하면 plug and play를 통해 사용자에게 필요한 모든 기능을 제공할 수 있습니다. 이를 통해 고객에게 서비스를 제공하는 등 그들이 실제로 해야 할 일에 집중할 수 있습니다.
또한 SingleStore은 MySQL과 동일한 와이어 프로토콜을 사용하며 유사한 SQL구문을 지원하므로, Foodics는 완전히 새로운 기술을 배울 필요가 없었습니다.

멀티클라우드 유연성

Foodics는 AWS 생태계를 기반으로 구축되지만 SingleStore를 통해 다른 클라우드로 이동하거나 멀티 클라우드 인프라를 사용할 수 있는 유연성을 갖추고 있습니다.

성능

읽기뿐만 아니라 UPSERTS와 같은 다른 워크로드를 위해 데이터 웨어하우스의 확장이 가능하고 모든 쿼리 실행에 1초 이하의 속도로 빠른 성능을 제공합니다.

현 업무에 부합한 실제 검증

Foodics는 2021년 6월부터 SingleStore 고객으로 AWS에서 S-32 구성을 갖춘 SingleStore DB Cloud를 사용하고 있습니다. 초기 개념 검증의 일환으로 Foodics는 SingleStore 플랫폼을 부하 테스트를 실행해 향후 몇 년 동안 신뢰할 수 있는 미래형 데이터베이스임을 확인하고자 했습니다.
부하 테스트는 아래의 사항이 포함되었습니다.
100억개의 행(Row)을 생성
조건부 집계 및 서브 쿼리가 포함된 복잡한 쿼리 실행
5년 이상의 장기 데이터 보고서 작성
읽기/쓰기 동시 처리 부하
대량의 동시 접속자 처리 부하
"우리는 기사에서 본 SingleStore의 혜택이 실제임을 확인하고 싶었습니다. 사실 테스트 전에는 거의 불가능해 보였습니다." - 모하메드 레드완, 엔지니어링 리더, Foodics
참고로 Foodics는 2014년부터 운영되어 왔기 때문에 아주 많은 데이터를 갖고 있어서 빅데이터 단계에 도달했고, 해당 데이터를 옮기기 위해서 다양한 방법을 연구했습니다. 이런와중에 SingleStore은 꾸준히 Foodics를 지원해 왔습니다.
Foodics의 인프라가 복잡하기 때문에 SingleStore의 마이그레이션 옵션을 사용하는 대신에 자체 마이그레이션 방법을 사용했습니다. 이 팀은 다양한 클러스터 크기에 대한 워크로드를 테스트하는데 많은 시간을 들여서, 결국에는 CPU와 파티션 비율을 16:1로 해서 S-32를 선택했습니다. 이 결정을 내린 가장 큰 요인은 증가하는 고객비율을 기반으로 높은 동시성을 지원했기 때문입니다.

검증 결과

SingleStore를 통해 Foodics는 클라우드 기반 POS와 레스토랑 관리 플랫폼을 강화했습니다.
이 시스템은 또한 Foodics Pay와 Casher App을 통합하여 고객에게 빠르고 안전한 체크아웃 환경을 제공합니다.
SingleStore의 샤딩 및 병렬 처리를 통해 쿼리 실행을 위한 높은 처리량과 빠른 응답 시간을 확보할 뿐만 아니라 필요에 따라 워크로드를 확장할 수 있습니다. SingleStore는 실시간 스트리밍 수집 및 초고속 쿼리를 통해 time-to-insight를 획기적으로 가속화합니다. 또한 서비스와 지원은 기술 못지않게 Foodics에게 중요합니다.
“SingleStore의 가장 좋은 점은 고객에 대한 기술지원입니다. 기술지원 팀은 문제를 해결할 때까지 고객에 대한 지원을 계속합니다. 이것은 SingleStore의 매우 특별한 점이며 우리가 그들과 함께 성장할 수 있다는 확신을 받았습니다.”- 모하메드 레드완, 엔지니어링 리더, Foodics

CX 향상 및 이탈 감소 (무한 확장성과 100%에 가까운 가동 시간을 통해)

Foodics는 SingleStore를 선택함으로써 200명의 동시 사용자 제한에서 사실상 무제한의 동시성으로 전환했습니다. 현재 SingleStore는 수만 명의 동시 사용자를 지원합니다. 또한 Foodics는 이제 99.99%의 가용성을 제공하므로서 더 안정적인 서비스를 제공하고 있습니다. Foodics는 이제 확실한 고객 반응 제공을 통해 고객의 이탈을 줄이고 새로운 고객을 확보하여 성장을 가속화하고 있습니다. 실제로 Foodics는 향후 성장률의 2배정도로 SingleStore를 구축했습니다. 이를 통해 Foodics는 수익을 향상시킬 뿐만 아니라 플랫폼과 고객 기반 성장함을 통해 추가 자금 투자를 받을 수 있는 위치를 확보했습니다.

미래형 플랫폼에서 실시간 고객 반응 제공(기존 대비 100배이상 성능)

SingleStore를 채택 후에 Foodics는 동일한 비용으로 기존대비 100배이상의 성능을 확보했습니다. SingleStore의 기술 및 고객 지원 팀은 Foodics가 데이터베이스 투자에서 최대한의 가치를 얻을 수 있도록 모든 단계에서 지원했습니다.

고객의 Time-to-Insight 단축(60% 빨라진 쿼리 성능을 통해)

SingleStore 적용을 통해 복잡한 분석 쿼리의 평균 쿼리 응답 시간이 200ms에서 80ms로 감소되었습니다. 고객층은 현재 실시간 정보에 입각한 비즈니스 결정을 순간 순간에 더 잘 내릴 수 있게되어 변화하는 시장 동향에 신속하게 대응할 수 있게 되었습니다.
on demand webinar : (SaaS 어플리케이션 과부화) Foodics 스토리에서 Foodics가 SingleStore의 혁신적인 구현에 대해 논의한 것을 들을 수 있습니다.
SingleStore는 많은 분야에서 기업이 경쟁력을 갖도록 지원합니다.