구글 지도 Compute Route Matrix에서 트래픽 모델 최적화 설정하기: Config Trade-Offs (Route Matrix)

Compute Route Matrix를 사용할 때, 실시간 교통 정보 반영 여부에 따라 응답 속도와 예측 정확도가 달라집니다. Routing Preference 설정을 통해 응답 레이턴시와 경로 품질 사이의 균형을 원하는 대로 조절할 수 있습니다. 

 

1. Routing Preference 개요

Routing Preference는 API가 교통 데이터를 얼마나 고려해 경로를 계산할지를 결정합니다. 세 가지 옵션이 있으며, 기본값은 TRAFFIC_UNAWARE입니다.

 

2. 지원되는 옵션

  • TRAFFIC_UNAWARE: 교통 정보를 무시하고 평균 속도로 빠르게 응답합니다.
  • TRAFFIC_AWARE: 실시간 교통 정보를 반영하되, 성능 최적화를 적용해 중간 정도의 레이턴시와 정확도를 제공합니다.
  • TRAFFIC_AWARE_OPTIMAL: 실시간 교통 정보를 최대한 반영하되, 최적화 없이 완전 탐색을 수행해 가장 높은 정확도를 얻지만 가장 긴 레이턴시가 발생합니다.

3. 옵션별 상세 설명

3-1. TRAFFIC_UNAWARE

- duration: 과거 평균 속도 기반 ETA
- staticDuration: 과거 교통 데이터만 반영한 ETA (동일 값)

3-2. TRAFFIC_AWARE

- duration: 실시간 교통 정보 반영 ETA
- staticDuration: 과거 교통 데이터 기반 ETA
- 정확도 향상을 위해 일부 성능 최적화가 적용됩니다.

3-3. TRAFFIC_AWARE_OPTIMAL

- duration: 실시간 교통 정보 반영 ETA
- staticDuration: 과거 교통 데이터 기반 ETA
- 성능 최적화를 적용하지 않아 가장 높은 정확도를 제공하지만 응답 지연이 가장 큽니다.
- 이 옵션을 사용할 때는 요청 요소 수(출발지 × 도착지 조합)가 최대 625개 를 초과할 수 없습니다.

 

4. 출발 시간 설정 (departureTime)

TRAFFIC_AWARE 또는 TRAFFIC_AWARE_OPTIMAL을 사용할 때, 미래 출발 시간을 예측에 반영하려면 departureTime을 ISO 8601 형식으로 지정하세요. 지정하지 않으면 요청 시점의 시간이 자동 적용됩니다.

 

5. curl 요청 예시

curl -X POST 'https://routes.googleapis.com/v2:computeRouteMatrix' \
  -H 'Content-Type: application/json' \
  -H 'X-Goog-Api-Key: YOUR_API_KEY' \
  -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,staticDuration' \
  --data-raw '{
    "origins": [
      { "waypoint": { "location": { "latLng": { "latitude": 37.7749, "longitude": -122.4194 } } } }
    ],
    "destinations": [
      { "waypoint": { "location": { "latLng": { "latitude": 37.7848, "longitude": -122.4090 } } } }
    ],
    "travelMode": "DRIVE",
    "routingPreference": "TRAFFIC_AWARE_OPTIMAL",
    "departureTime": "2025-05-30T08:00:00Z"
  }'

6. 주의사항 및 요금

  • TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL 사용 시 더 높은 요금이 청구됩니다.
  • 응답 지연이 중요하지 않은 시나리오에만 고품질 옵션을 사용하세요.
  • 요소 수(출발지 × 도착지 조합)를 625개 이하로 유지해야 합니다.

Compute Route Matrix의 Routing Preference 설정을 통해 응답 속도와 경로 정확도 간 균형을 맞출 수 있습니다. 빠른 응답이 필요하면 TRAFFIC_UNAWARE, 정확도가 중요하다면 TRAFFIC_AWARE 또는 TRAFFIC_AWARE_OPTIMAL을 사용합니다.