뷰포트, 줌, 스타일에 맞는 벡터 타일을 빠르게 전달합니다.
지도·경로 탐색
서비스 설계
지도는 빠르게 그려야 하고, 경로는 정확하게 계산해야 합니다. 타일·검색·도로 그래프·교통 델타를 서로 다른 정본과 갱신 주기로 분리하면 ETA를 최신화하면서도 재현·롤백할 수 있습니다.
렌더링은 versioned vector tile과 CDN으로, 검색은 place index로, 경로는 immutable graph snapshot과 짧게 사는 traffic delta로 처리합니다. 하나의 route 응답에는 두 버전을 함께 기록해 오래된 교통·잘못된 그래프를 구분하고 안전하게 되돌립니다.
보이는 지도와 계산하는 길을 분리한다
공개 타일은 대량 cache가 가능하지만, 장소 검색·경로·실시간 위치는 개인화·시간·권한의 영향을 받습니다. 네 요청을 하나의 데이터베이스 조회로 묶지 않습니다.
언어·국가·정규화로 place 후보와 좌표를 찾습니다.
수단·제한·경유지에 맞는 edge 경로와 대안을 계산합니다.
traffic version·confidence와 함께 추정 도착 시간을 반환합니다.
두 종류의 버전으로 경로를 설명한다
검색 후 snap하고, 그 뒤에만 길을 찾는다
문자열·좌표를 정규화해 `place_id` 또는 후보 좌표로 바꿉니다.
수단·진입 제한을 고려해 가까운 routable edge로 붙입니다.
고정된 graph version에서 후보 경로와 turn 비용을 계산합니다.
호환 traffic version의 edge 속도 보정을 ETA에 적용합니다.
버전·confidence·fallback을 포함해 응답하고 짧게 캐시합니다.
최신성은 재현성과 함께 설계한다
| 선택 | 강점 | 주의점 | 권장 상황 |
|---|---|---|---|
| raster tile | 클라이언트가 단순하고 표현이 고정됨 | 스타일·레이어 상호작용과 고DPI에 불리 | 읽기 전용의 단순 지도 |
| vector tile | 줌과 레이어를 클라이언트에서 조합 | 렌더러·스타일 호환을 관리해야 함 | 다층 지도, 빠른 스타일 실험 |
| live graph | 새로운 도로 상태 반영이 빠름 | 재현·롤백·latency가 어려움 | 작은 실험 지역 |
| snapshot + delta | 경로 재현성과 최신 ETA의 절충 | 버전 호환·watermark 운영 필요 | 프로덕션 경로 서비스 |
| 외부 Route API | 출시가 빠르고 운영이 적음 | 비용·쿼터·정책 경계에 의존 | 초기 제품·수요 검증 |
장애를 “최신 데이터 없음”으로만 부르지 않는다
새 style version 또는 핫 줌 영역이 origin을 직접 때려 지도 로딩이 느려집니다.
잘못된 turn restriction이 특정 구간을 우회시키거나 NoRoute를 늘립니다.
속도 보정 watermark가 늦어 최신처럼 보이는 오래된 ETA가 나옵니다.
대형 이벤트와 재경로가 겹쳐 queue age와 P99가 증가합니다.
신규 장소 또는 이름 변경이 검색에 안 보이고 사용자는 경로를 시작하지 못합니다.
사용자가 위치 추적을 끄고도 파생 파이프라인이 이전 토큰을 읽습니다.
ETA 품질, 위치 프라이버시, 비용을 같이 본다
원문 좌표와 운영 로그를 분리하고, 목적별 동의·보존·삭제·접근 감사를 강제합니다. 대량 좌표 탐색에는 quota와 범위 검증을 둡니다.
tile hit, query P95, snap/no-route, queue age, graph·traffic version 분포, ETA signed error를 지역·거리·시간으로 나눠 봅니다.
CDN egress, graph version 동시 상주, route CPU, traffic join, 검색 색인, 개인정보 삭제·감사 비용을 plane별로 분리해 계산합니다.
공식·1차 출처
- Mapbox — Vector tiles standards: PBF 기반 vector tile 형식과 geometry·attribute 인코딩.
- Google Maps Platform — Compute Routes overview: 이동 수단, 경유지, 교통 계산 옵션.
- OSRM — API Documentation: route·table·match API와 route annotation.
- Overpass API User's Manual: OSM 공간·태그 기반 데이터 질의의 목적.
- OpenStreetMap — Copyright and License: OSM 데이터 이용과 attribution 확인.
작성·검토·참고 자료
참고 자료
- Mapbox — Vector tiles standards: PBF 형식과 geometry/attribute 인코딩 범위.
- Google Maps Platform — Compute Routes overview: 경로 수단, 경유지, 교통 옵션.
- OSRM — API Documentation: route/table/match 요청과 geometry·annotation 옵션.
- Overpass API User's Manual: OSM 공간·태그 기반 질의의 목적과 사용 방식.
- OpenStreetMap Wiki — API v0.6: 요소 모델, version, 편집 API 개요. 위키는 동작 변경 가능성을 명시하므로 배포 시 실제 API·정책을 재확인한다.
- OpenStreetMap — Copyright and License: 데이터 이용 시 저작권·라이선스·attribution 확인 지점.
사실 오류·출처 정정은 문의·정정 페이지로 알려 주세요.