배경
바나나맵의 질문은 단순했다 — "지금 문 연 곳이 어디지?" 편의점·푸드트럭·음식점의 실시간 영업 여부를 지도 위 "LIVE" 버튼 하나로 필터링해 보여주고, 상점주는 매장을 등록·광고하는 양면 플랫폼이었다.
지도 위의 성능과 데이터
매장 수가 늘며 지도 마커 렌더링이 버벅이기 시작했다. 줌 레벨에 따라 표시 범위를 조절하고, 밀집 구역은 매장 개수 숫자(클러스터)로 묶어 표시한 뒤 클러스터를 클릭했을 때만 해당 구역 데이터를 불러오는 방식으로 바꿨다 — 화면에 필요한 데이터만 조회해 렌더링과 조회 부하를 함께 분산시켰다.
핵심 기능인 LIVE 필터링은 하버사인 공식 기반 거리순 정렬에 요일별 영업시간(오픈/마감/브레이크타임)을 조인해 구현했고, 글로벌 확장을 전제로 국가별 지도/네비게이션 API를 분기 처리해 차량·대중교통·도보별 도착예정시간으로 매장 마감 전 도착 가능 여부까지 알려주도록 했다.


