에듀케이션 SaaS에서 지도 기반 검색과 랭킹 튜닝 Prophet·Airflow로 구현하는 방법 – 처리량 극대화

혹시 이런 경험 없으신가요? 우리 아이에게 딱 맞는 학원을 찾아주려고 에듀케이션 SaaS 플랫폼에 접속했는데, 너무 많은 정보에 길을 잃는 기분이요. 지도에 빼곡히 찍힌 점들을 보며 ‘대체 어디가 진짜 좋은 곳이지?’ 하는 막막함, 저도 느껴봤어요. 단순히 가깝다는 이유만으로 선택하기엔 마음이 놓이지 않죠. 사용자는 그냥 ‘가까운 곳’이 아니라 ‘지금 나에게 가장 필요한 최고의 곳’을 원하고 있어요. 바로 이 고민에서 오늘의 이야기는 시작됩니다. 어떻게 하면 사용자에게 정말 필요한 정보를, 가장 적절한 순간에, 그것도 아주 빠르게 보여줄 수 있을까요? 오늘은 Prophet과 Airflow를 활용해 지도 기반 검색의 처리량을 극대화하고, 똑똑한 랭킹 튜닝을 구현했던 여정을 함께 나눠보려고 해요.

에듀케이션 SaaS에서 사용자 경험을 극대화하기 위해 Prophet의 시계열 예측과 Airflow의 워크플로우 자동화를 결합했어요. 이를 통해 지도 기반 검색의 처리량을 높이고, 동적 랭킹 튜닝을 구현하여 단순 거리 기반이 아닌 실제 사용자 수요에 반응하는 지능형 검색 시스템을 구축한 과정을 담았습니다.

이 글은 검색·AI 답변·GenAI 인용에 최적화된 구조로 작성되었습니다.

우리가 왜 지도 기반 검색에 진심이었을까요?

단순히 가까운 곳을 보여주는 것을 넘어, 사용자의 숨은 의도를 파악해 최적의 선택지를 제안하는 것이 핵심이었어요. 여러분의 서비스는 사용자에게 어떤 가치를 제공하고 있나요?

처음에는 저희도 그저 지리 정보 시스템(GIS)을 활용해 가까운 학원 목록을 뿌려주는 수준이었습니다. 하지만 데이터가 쌓일수록 명확해지는 사실이 하나 있었죠. 사용자는 단순히 거리가 가깝다고 해서 등록하지 않는다는 것이에요. 특정 시간대, 특정 요일, 혹은 ‘중간고사 대비’ 같은 특정 키워드에 따라 사용자들의 선호도가 역동적으로 변하는 패턴이 보였습니다. 에듀케이션 SaaS에서 사용자의 재방문과 최종 전환을 이끌어내려면, 이 변화의 흐름을 읽어야만 했습니다.

예를 들어, 평일 저녁 8시에는 고등학생 자녀를 둔 학부모님들의 ‘수학 심화반’ 검색량이 폭증했고, 주말 오전에는 초등학생 대상 ‘코딩 학원’ 검색이 주를 이뤘어요. 이런 패턴을 무시한 채 모든 사용자에게 동일한 랭킹 로직을 적용하는 것은, 마치 모든 손님에게 똑같은 메뉴를 추천하는 식당과 같았어요. 이건 정말 아니다 싶었죠. 그래서 저희는 사용자 경험을 한 차원 높이기 위해 데이터 기반의 동적 랭킹 시스템을 만들기로 결심했습니다. 이것이 바로 우리가 지도 기반 검색과 랭킹 튜닝에 그토록 진심이었던 이유랍니다.

요약하자면, 정적인 거리 기반 검색의 한계를 깨닫고, 사용자 행동 패턴에 기반한 동적이고 지능적인 검색 경험을 제공하기 위해 새로운 도전을 시작한 것입니다.

다음 단락에서 이 내용을 조금 더 깊게 풀어볼게요.


Prophet, 미래의 검색 수요를 예측하는 수정 구슬

과거의 검색 로그 데이터에서 미래의 수요 패턴을 예측하여, 시스템이 한발 앞서 준비하게 만드는 것이 Prophet의 역할이었어요. 혹시 시계열 데이터 예측, 너무 어렵게만 느껴지셨나요?

Prophet은 Facebook에서 개발한 시계열 예측 라이브러리인데, 정말 물건이에요. 복잡한 통계 지식이 없어도 주간, 연간 계절성이나 휴일 효과 같은 요소들을 아주 잘 분석해 주거든요. 저희는 이 Prophet을 사용해서 지역별, 과목별 검색 수요를 예측하는 모델을 만들었습니다. 예를 들어, 지난 2년간의 검색 로그를 학습시킨 모델은 “다음 주 월요일 오후 4시, 대치동 지역에서는 ‘중등 영어 내신’ 관련 검색량이 평소보다 150% 증가할 것이다” 와 같은 놀라운 예측을 내놓았어요.

이 예측 정보는 정말 강력한 무기가 됩니다. 우리는 이 정보를 바탕으로 특정 시간대에 특정 학원들의 랭킹 점수에 ‘수요 예측 가중치’를 부여할 수 있었어요. 즉, 시스템이 미리 수요 폭증을 대비해 해당 지역의 관련성 높은 학원 정보를 더 빠르게, 그리고 더 상위에 노출시킬 준비를 마치는 셈이죠. 이건 마치 인기 콘서트 티켓 예매일에 서버를 미리 증설해두는 것과 비슷한 원리랍니다. 이 덕분에 사용자는 몰라도, 시스템은 이미 사용자가 무엇을 찾을지 알고 대비하게 됐습니다.

요약하자면, Prophet을 활용해 과거 데이터로부터 미래 검색 수요를 예측하고, 이 예측값을 랭킹 튜닝의 핵심 요소로 사용하여 사용자에게 더 빠르고 정확한 검색 결과를 제공할 수 있었습니다.

다음 단락에서 이 내용을 조금 더 깊게 풀어볼게요.


Airflow, 똑똑한 데이터 파이프라인의 지휘자

데이터 수집, Prophet 모델 학습, 랭킹 스코어 업데이트까지의 전 과정을 자동화하여, 사람이 개입할 필요 없는 안정적인 시스템을 구축하는 것이 Airflow의 임무였습니다. 매일 반복되는 작업을 어떻게 효율적으로 관리하고 계신가요?

아무리 좋은 예측 모델이 있어도, 이 모든 과정을 수동으로 운영한다면? 아마 끔찍할 거예요. 데이터 엔지니어는 매일 밤 잠을 설칠 테고, 실수가 발생할 확률도 높아지겠죠. 여기서 바로 워크플로우 자동화 도구인 Airflow가 등판했습니다. 저희는 Airflow를 사용해 전체 데이터 파이프라인을 DAG(방향성 비순환 그래프) 형태로 설계했어요. 정말 든든한 지휘자 같았죠.

자동화된 랭킹 튜닝 파이프라인 핵심 단계

  • 데이터 수집(Extract): 매일 새벽, 전날의 사용자 검색 로그를 데이터 웨어하우스에서 가져와요.
  • 전처리 및 학습(Transform & Train): 수집된 데이터를 정제하고 Prophet 모델에 주입하여 최신 패턴을 재학습시킵니다.
  • 수요 예측(Forecast): 업데이트된 모델로 향후 24시간 동안의 지역별, 카테고리별 검색 수요를 예측해요.
  • 랭킹 스코어 계산 및 적용(Load): 예측된 수요 가중치를 기존 랭킹 로직에 반영하여 새로운 랭킹 스코어를 계산하고, 이를 검색 시스템에 적용합니다.

이 모든 과정이 매일 새벽 3시에 자동으로 실행되도록 스케줄링했습니다. 덕분에 운영팀은 두 발 뻗고 잘 수 있게 되었고, 시스템은 항상 최신 데이터로 무장한 채 아침을 맞이하게 되었어요. 만약 특정 단계에서 오류가 발생하면 Airflow가 즉시 슬랙으로 알림을 보내주기 때문에, 문제 상황에도 신속하게 대응할 수 있었습니다. 안정성과 효율성, 두 마리 토끼를 모두 잡은 셈이죠.

요약하자면, Airflow를 통해 데이터 수집부터 모델 학습, 예측, 최종 랭킹 적용까지의 복잡한 과정을 완벽하게 자동화하여, 안정적이고 효율적인 랭킹 튜닝 시스템을 완성했습니다.

다음 단락에서 이 내용을 조금 더 깊게 풀어볼게요.


처리량 극대화를 위한 마지막 퍼즐, 캐싱 전략

예측된 수요를 바탕으로 검색 결과를 미리 만들어 캐시에 저장해 둠으로써, 실제 사용자 요청 시 폭발적인 처리 속도를 확보하는 것이 최종 목표였어요. 시스템의 응답 속도를 어떻게 더 줄일 수 있을지 고민해 보셨나요?

Prophet으로 수요를 예측하고 Airflow로 랭킹을 자동 튜닝해도, 실제 사용자 요청이 들어왔을 때 실시간으로 복잡한 계산을 수행한다면 병목 현상이 발생할 수 있습니다. 특히 에듀케이션 SaaS 플랫폼은 신학기나 방학 시즌에 트래픽이 몰리는 경향이 있죠. 그래서 저희는 ‘사전 계산(Pre-computation)’과 ‘캐싱(Caching)’ 전략을 추가했어요. 바로 이게 처리량 극대화의 핵심 열쇠였습니다.

Airflow 파이프라인의 마지막 단계에서, Prophet이 “수요 폭증 예상 지역”으로 예측한 곳들의 예상 검색 결과 상위 20개를 미리 계산합니다. 예를 들어, ‘강남구 대치동’, ‘목동’, ‘중계동’ 같은 핫스팟 지역의 주요 과목 검색 결과를 미리 만들어두는 거죠. 그리고 이 결과를 빠른 조회가 가능한 인메모리 데이터 저장소인 Redis에 저장해 두었어요. 이것은 마치 시험에 나올 문제를 미리 풀어보는 것과 같았어요.

위로 스크롤