- Uber 시스템을 2025년 기준으로 재설계하고 AI 기능을 통합하는 방법에 대한 내용입니다. 🚕
- C4 모델(Context, Container, Component, Code)을 사용하여 시스템 아키텍처를 설명합니다. 🏗️
- Context 레벨에서는 Uber 앱, 지도 API(TomTom), AI 데이터(OpenAI), Stripe, Twilio 등과의 상호 작용을 보여줍니다. 🗺️
- Container 레벨에서는 API Gateway를 통해 Rider App의 요청이 Trip Service로 전달되고, Trip Service는 Event Store 데이터베이스에 데이터를 저장합니다. 💾
- Pricing Service는 Demand Forecasting Service를 사용하여 가격을 결정하고, Matching Service는 ETA Prediction Service를 통해 예상 도착 시간을 계산합니다. ⏱️
- Matching Service는 지도 API와 상호 작용하며, Redis를 사용하여 운전자 위치 정보를 캐싱합니다. 📍
- ETA 예측 서비스는 XG boost 알고리즘을 사용하여 예상 도착 시간을 예측합니다. 🌳
- 결제 서비스는 Fraud Detection Service를 사용하여 사기 여부를 탐지하고, Stripe을 통해 결제를 완료합니다. 💳
- Component 레벨에서는 Matching Service 내부의 Candidate Fetching Worker, Constraint Checker, Scoring Engine, Assignment Engine 등의 구성 요소를 설명합니다. ⚙️
- Candidate Fetching Worker는 Geohashing 알고리즘을 사용하여 지리적 데이터를 처리하고, Redis에서 최신 운전자 위치 정보를 가져옵니다. 🌐
- Constraint Checker는 운전자의 차량 유형, 접근성 요구 사항 등을 확인하고, Scoring Engine은 ETA 예측 서비스를 사용하여 점수를 매깁니다. ✅
- Assignment Engine은 최적의 운전자를 선택하고, Feedback Service는 Redis 캐시를 업데이트합니다. 💯
- LLM(Large Language Model)은 이 아키텍처에서 사용되지 않았습니다. 🧠