타다 시스템 아키텍처
두줄요약
타다는 빠른 출시를 위해 Kotlin·Spring Boot와 AWS 관리형 서비스를 중심으로 시스템을 구성했습니다. SQS 배차, Kinesis 위치 수집, gRPC 실시간 이벤트로 모빌리티 흐름을 분리·확장했습니다.
문제 상황
- 변화가 잦은 모빌리티 시장에서 짧은 출시 기간과 유연한 기능 우선순위 대응 필요
- 비트윈의 인하우스 네트워크·HBase 중심 스택에서 겪은 초기 안정성 및 복잡한 배포 문제
구조와 흐름
- Kotlin·Spring Boot 기반 HTTP/2 API 서버, gRPC 이벤트 서버, SQS 기반 Dispatcher, Kinesis 기반 Tracker 분리
- 드라이버 GPS 정보를 Protocol Buffers와 Kinesis로 전달하고 Tracker가 Aurora 기반 TrackerDB에 저장
- 배차 요청을 SQS에 적재하고 Dispatcher가 주변 차량 탐색·재시도를 수행하며 수락 이벤트를 gRPC로 라이더에게 전달
선택 이유
- 검증된 프레임워크와 AWS 관리형 서비스를 활용한 빠른 개발 및 관리 오버헤드 축소
- Kubernetes/EKS와 helm 기반 배포 자동화·확장, Terraform 기반 인프라 프로비저닝
- Redis Pub/Sub 기반 서버 간 메시징, gRPC Streaming 기반 실시간 이벤트 전달
성능/운영 포인트
- Dispatcher 증설만으로 배차 처리량 확장, 인스턴스 종료 시에도 SQS 메시지 기반 처리 지속
- Reactor를 활용한 외부 ETA API의 비동기·동시 요청 처리
- 차량 위치 업데이트 부하 분리를 위한 별도 Aurora TrackerDB 인스턴스와 Firehose-S3 로그 적재



