목록 보기
배차 정확도를 높이는 실거리 시스템 구축하기: OSRM, Kafka, 그리고 Redis
백엔드

배차 정확도를 높이는 실거리 시스템 구축하기: OSRM, Kafka, 그리고 Redis

우아한 형제들
우아한 형제들
2025년 6월 26일

두줄요약

실거리 기반 배차 정확도를 높이기 위해 OSRM, Kafka, Redis를 활용한 저장·처리 구조를 설계했습니다. 지역 단위 이벤트 순서 보장과 캐시 재사용으로 대량 경로 계산 부하를 줄였습니다.

문제 상황

  • 배차 최적화를 위해 직선거리 대신 실제 경로 기반 실거리를 써야 하는 요구
  • 분당 수십만 건, 초당 10만 건 수준의 경로 계산으로 실시간 계산만으로는 부하가 과도한 상황
  • 배달 생성, 위치 변경, 완료, 취소에 따라 거리 데이터의 갱신과 삭제를 정확히 맞춰야 하는 제약

원인 분석

  • 배차 경로 수가 많아 거리 계산의 정확도와 일관성이 성능에 직접 영향
  • 동일하거나 유사한 배차 조합이 반복되어 중복 거리 계산이 빈번한 구조
  • 배달 ID 기준 이벤트 처리로는 지역 단위 순서를 보장하기 어려워 데이터 누락 가능성 존재

해결 방법

  • OSRM을 실거리 계산 엔진으로 사용하고, 지도 미디에이터를 통해 API 방식으로 연동
  • Kafka 이벤트를 지역 ID 기준으로 리파티션해 지역별 순서를 보장하며 처리
  • Redis를 인메모리 저장소로 사용해 지역별 실거리 그래프를 저장하고 재활용

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...