이 글은 Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle에 제출하는 내용입니다.
제가 만든 것 (What I Built)
저는 라이드 요청의 핵심 여정을 다루는 Flutter 기반 학생 라이드 셰어링 프로토타입을 만들었습니다. 학생들은 목적지를 선택하고, 경로를 미리 보고, 라이드 카테고리와 예상 요금을 비교하며, 지도에서 주변 차량을 확인하고, 라이드를 요청할 수 있습니다.
이 프로젝트의 목표는 공간 인덱싱(spatial indexing)과 AI 지원 선호도(AI-assisted preferences)가 학생 라이드 셰어링을 어떻게 더 실용적으로 만들 수 있는지 탐구하는 것입니다. 이 프로젝트에는 지리적으로 가까운 후보를 찾는 시작점으로서 H3 기반 공간 레이어(spatial layer)가 포함되어 있습니다.
이 앱은 현재 프로토타입이며 실제 라이드 셰어링 서비스는 아닙니다. 주변 차량 정보는 합성 데이터(synthetic)이며, 라이드 요청은 짧은 지연 시간 후에 미리 정의된 운전자 할당을 사용하고 있으며, 백엔드, 실시간 운전자 배차, 학생 인증 또는 공유 라이드 매칭 기능은 아직 없습니다.
데모 (Demo)
코드 (Code)
학생 라이드 셰어링 프로토타입 (Student Ride-Sharing Prototype)
학생들의 라이드 셰어링 경험을 탐구하는 Flutter 프로토타입입니다. 목적지 선택, 경로 미리 보기, 라이드 카테고리 및 예상 요금 비교, 그리고 라이드 요청 등 지도 기반의 이동 흐름(map-based trip flow)을 시연합니다.
이것은 라이브 차량 서비스가 아닙니다. 완성된 프로토타입입니다. 주변 차량 정보는 합성 데이터이며, 탑승 요청은 짧은 지연 시간 후에 미리 정의된 운전자에게 할당되는 시뮬레이션 배차 흐름을 사용합니다. 이 앱에는 백엔드, 실시간 운전자 배차, 학생 인증 또는 공유 라이드 매칭 기능이 없습니다.
주요 기능
- 합성 주변 차량 및 경로 시각화를 갖춘 사용자 지정 Flutter 벡터 지도.
- 목적지 선택 및 거리와 소요 시간을 추정한 생성된 경로 미리보기.
- 탑승 카테고리 선택 및 요금 예상.
- 시뮬레이션된 탑승 요청 및 운전자 할당 흐름.
- 선택적 지도 그리드 시각화를 포함하는 순수 Dart H3 스타일 공간 인덱싱 구현.
- 프로토타입 보안 상태 및 기기 감사 UI.
경로 지오메트리, 차량 위치, 교통 구간, 요금, 할증 값(surge values), 운전자 세부 정보는 예시적인 프로토타입 데이터입니다. 이 데이터는…
GitHub에서 보기
구축 방법
저는 라이드 흐름을 먼저 구축하는 데 집중했기 때문에, 이 프로토타입은 복잡한 실시간 백엔드를 도입하기 전에 학생이 라이드 셰어링 애플리케이션과 어떻게 상호 작용할지 보여줍니다.
이 앱은 목적지 선택, 경로 시각화, 탑승 카테고리 비교, 요금 예상, 주변 차량 마커, 그리고 탑승 요청을 한데 모았습니다. 공간 인덱싱 계층은 지리 데이터를 정리하고 잠재적 후보를 효율적으로 식별하기 위한 기반을 제공합니다.
다음 개발 단계는 시뮬레이션된 할당을 학생, 이용 가능한 라이드, 경로, 출발 시간 및 좌석 가용성을 관리하는 백엔드로 대체하는 것입니다. 그 후 결정론적 매칭 서비스가 위치 근접성, 경로 중복, 시간 호환성 및 사용 가능한 좌석을 평가할 수 있습니다.
Gemma는 어디에 적합한가?
예를 들어, 학생은 다음과 같이 자연어로 요청을 입력할 수 있습니다:
“오전 8시 30분경 대학으로 가는 라이드가 필요하고, 비용을 줄일 수 있다면 약간 우회해도 괜찮아요.”
Gemma 기반 컴포넌트는 이 요청을 해석하여 원하는 출발 시간대(departure window)나 허용 가능한 우회 경로(detour)와 같은 구조화된 선호도(structured preferences)로 변환할 수 있습니다. 별도의 매칭 서비스는 위치, 경로 중복 여부(route overlap), 시간, 좌석 가용성 등 명시적인 규칙에 따라 후보 라이드를 평가하게 됩니다.
Gemma는 또한 특정 라이드가 학생의 선호도와 왜 호환되는지 설명해 줄 수도 있습니다. 하지만 실제 매칭 및 배차 결정은 언어 모델과 독립적이며, 결정론적(deterministic)이고 테스트 가능해야 합니다.
이러한 분리는 AI가 승차 배정에 대해 무제한적인 통제권을 갖는 것을 막으면서도 AI를 유용하게 만들 수 있습니다.
Open Innovation은 왜 중요한가?
학생들의 차량 공유(ride-sharing)에는 이동 경로, 일정, 위치 데이터 등 잠재적으로 민감한 정보가 포함됩니다. Gemma와 같은 오픈 웨이트 모델(open-weight models)은 전적으로 호스팅된 AI 서비스에 의존하기보다, 지원되는 경우 로컬 추론(local inference)을 탐색할 기회를 제공합니다.
이는 차량 선호도가 어떻게 처리되고 그 정보가 어디로 전송될지에 대해 더 큰 통제권을 제공할 수 있습니다. 하지만 로컬 추론은 이 프로젝트의 미래 방향이며 현재 프로토타입의 기능은 아닙니다.
실제 배포를 위해서는 적절한 동의(consent), 위치 데이터 최소화(location-data minimization), 안전한 저장소, 학생 인증, 그리고 매칭 시스템에 대한 철저한 테스트가 필요합니다. 오픈 웨이트 모델만 사용하는 것이 프라이버시나 보안을 보장하지는 않습니다.
나의 첫 사용자
제 첫 사용자는 이 아이디어가 매우 유용하다고 생각하고 애플리케이션이 모두에게 도움이 되도록 많은 것을 추천해 준 대학 친구들입니다.
@parthlightning의 단독 제출