핵심 요약
여기어때가 제휴점 목록/지도를 하나의 연속 탐색으로 통합하며, 비용 증가와 아키텍처 복잡성을 해결했습니다. Lazy Load, Haversine 기반 클러스터링, StateHolder 아키텍처, AnchoredDraggable 바텀시트로 성능과 유지보수를 개선했습니다.
구현 방법
- 비용 관리: MapView를 Global 공유 대신 필요 시 로드하는 Lazy Load 도입으로 26배 증가 억제
- 구조 도입: MapStateHolder, TopNavigationStateHolder, PlaceListBottomSheetStateHolder로 관심사 분리
- 위치 처리/UI: Haversine 기반 거리 클러스터링 및 NestedScroll 해결, 4상태 바텀시트(Expanded, PartiallyExpanded, Collapsed, Hidden) 구현
주요 결과
- 비용 증가 억제 및 핀 API 호출 차단으로 비용 절감에 기여
- 지도 UX 개선과 유지보수성 향상, 신규 합류자 온보딩 용이성 증가
- 연속 탐색 경험 제공 및 퍼포먼스 최적화

