카셰어링(car-sharing)이라는 혁신적인 모빌리티 문화를 한국에 정착시킨 쏘카는 차량 공유를 넘어 퍼스널 모빌리티, 주차, 숙박 예약을 아우르는 종합 모빌리티 플랫폼 기업으로 진보하고 있습니다. 이 변화의 중심에는 기술과 데이터를 통해 고객에게 편리한 서비스를 제공하기 위한 쏘카의 지속적인 노력이 있으며, 2023년 5월 선보인 숙박 예약 서비스 ‘쏘카스테이’는 그 대표적인 예입니다.
원활한 예약 경험을 제공하는 것은 결코 간단하지 않았습니다. 사용자가 예약 가능한 숙소를 한 눈에 파악하고 맞춤형 숙소를 추천 받을 수 있는 스마트한 검색 엔진을 구축하기 위해서는 쏘카스테이가 보유한 자체 인벤토리 외에도 타사 숙박 예약 서비스 채널의 데이터를 통합하는 과정이 필요했습니다. 그리고 각기 다른 형식과 데이터 구조를 사용하는 타사 채널의 정보를 매끄럽게 취합하기 위해 이를 통합 관리할 수 있는 데이터베이스가 필요했습니다.
쏘카의 양준영, 차현철 소프트웨어 엔지니어는 MongoDB.local Seoul 2024에서 MongoDB Atlas Search를 통한 쏘카스테이의 빠르고 효율적인 검색 엔진 구축 사례를 소개했습니다.
양준영 엔지니어는 “도큐먼트 데이터베이스 모델의 유연한 스키마를 기반으로 한 MongoDB Atlas Search는 개발자가 사전 정의된 경직된 데이터베이스 구조에 제한 받지 않고 다양한 데이터 형식을 관리할 수 있다는 점에서 효과적이다. 또한 샤딩을 통한 수평 확장을 지원해 쏘카가 보유한 대량의 데이터를 여러 서버에 분산해 효율적으로 처리하면서도 검색 성능을 고속으로 유지할 수 있다”고 설명했습니다.
쏘카 팀이 뽑은 MongoDB Atlas Search의 또 다른 강점은 바로 풍부한 쿼리 기능입니다. MongoDB 데이터베이스 문서에 대한 고급 검색 기능을 제공하는 MongoDB Atlas Search를 통해 팀은 텍스트 검색, 필터링, 랭킹 등 다양한 조건과 연산자를 사용한 복합 쿼리를 작성할 수 있었습니다. 뿐만 아니라 키워드, 화이트스페이스(whitespace)부터 한국어 검색을 위한 노리(nori)까지 다양한 분석기(analyzer)를 지원한다는 점도 효율적이고 사용자 친화적인 검색 환경 구축에 큰 도움이 됐습니다.
차현철 엔지니어는 “쏘카스테이는 MongoDB Atlas Search로 다양한 숙박 서비스 채널이 제공하는 데이터를 통합해, 사용자의 검색조건에 맞춰 필터링된 결과를 제공한다”며 “나아가 지역별 검색 기능을 제공하기 위해 제주, 속초 등 지역 단위로 리전 코드를 정의하고, 스프링 배치(Spring Batch)를 사용해 검색용 데이터베이스를 매일 새벽에 정기적으로 업데이트하며 최신 숙소 정보를 제공하고 있다”고 덧붙였습니다.
프로모션과 같이 특정 이벤트가 적용된 숙소 목록을 필터링하는 기능도 MongoDB의 유연한 검색 아키텍처를 통해 쉽게 구현할 수 있었습니다. 쏘카가 직접 관리하는 이벤트 데이터의 경우, 팀은 간단하게 필드값과 어그리게이션(aggregation) 조건을 추가하는 것만으로도 전체 시스템 업데이트 없이 쉽게 필터링 기능을 제공할 수 있었습니다.
쏘카 팀은 MongoDB Atlas Search 구축 후 검색 기능 뿐만 아니라 성능 측면에서도 획기적인 효과를 경험하고 있습니다. 차현철 엔지니어는 “260MB 인덱스 규모에 달하는 5만 개의 데이터에 대한 검색 성능과 사용자 경험을 모니터링한 결과, 한 달 간 사용자의 약 90%에게 평균 11.6ms, 99%에게는 18.9ms 이내에 응답을 제공하며 놀랍도록 빠른 성능 개선을 이뤘다”고 밝혔습니다.
쏘카스테이는 최근 주요 랜드마크나 여행 동선에 맞춰 숙소를 검색하려는 사용자가 늘어남에 따라 MongoDB Atlas Search의 geoWithin operator를 사용한 새로운 지도 기반 검색 기능도 개발하고 있습니다.
양준영 엔지니어는 “MongoDB Atlas Search 기반으로 구축한 다양한 검색 기능은 향후 쏘카스테이의 비즈니스 성장에 따라 더 많은 혁신을 가능케 할 것”이라며 “애플리케이션에 강력하고 유연한 검색 기능을 통합하고자 하는 개발자라면 MongoDB Atlas Search는 좋은 선택지가 될 수 있다”고 강조했습니다.