ACADEMY직무와 수준에 맞춘 기업 AI·AX 교육을 설계합니다

Work기술 시연·자체 제품 API 운영 중

다시길 — 개인화 경로 추천 서비스

가장 빠른 길이 아니라 ‘나에게 맞는 길’을 추천합니다. 지나온 길의 기억·POI·안전 지도로 후보 경로를 점수화하는 개인화 경로 추천 앱입니다.

수행 범위
서비스 기획, 추천 엔진 설계, FastAPI/PostGIS 백엔드, Flutter 앱, 배치 파이프라인, 배포
맥락
개인 프로젝트, 2026.08 시작, 커밋 330+, 백엔드 Railway 운영
규모
커밋 330+, Alembic 마이그레이션 46개, 백엔드 테스트 파일 79개
주요 기술
Flutter, FastAPI, PostGIS, Mapbox, Airflow, Railway

창업자가 직접 또는 팀으로 만들어 공개한 서비스와 시연용 구현입니다.

추천 이유는 LLM이 아니라 규칙 템플릿으로 만들어, 같은 입력에는 같은 결과가 나옵니다.

처리 흐름

  1. 1GPS 이동 기록·경로 기억
  2. 2Mapbox 후보 경로
  3. 3익숙함·POI·안전 점수
  4. 4전략 프리셋 6가지
  5. 5Flutter 앱 + Airflow 배치

해결한 문제

일반 내비게이션은 목적지까지 가장 빠른 길 하나만 알려주고, GPS 기록 앱은 지난 길을 남기기만 합니다. 걷거나 자전거를 탈 때는 익숙한 길, 경사와 계단, 큰길 여부, 안전시설, 들를 만한 장소가 선택 기준이 되는데 이를 함께 반영하는 서비스는 드뭅니다.

데이터와 진단

입력은 사용자의 GPS 이동 기록(정제·맵매칭 후 경로 구간으로 집계), Mapbox Directions 후보 경로, 관광공사·카카오 로컬·소상공인 상가업소 POI, 안심시설(CCTV·비상벨·아동안전지킴이집)과 편의시설(경사로·승강기), OSM 도로 속성, 기상청 날씨, 사용자 제보입니다. 고도는 DEM에서 가져오며, 46개의 Alembic 마이그레이션이 이 데이터 소스가 늘어난 과정을 보여줍니다.

접근 방식

Flutter(앱) → FastAPI → PostGIS·Redis·Mapbox 요청 경로와, Airflow 배치 경로(이동 기록 처리, POI 갱신, 경로 속성 갱신, 사용자 선호 학습)를 분리했습니다. 추천 로직은 backend/app/recommendation 한 곳에 순수 함수로 모았습니다. 익숙함(Familiarity), 신뢰도(Reliability), 경로 유사도, 우회·혼란 페널티, POI 효용, 사용자 라우팅 프로필을 계산하고 알아서·빨리·익숙하게·구경하며·먹으며·평탄하게 6가지 전략 프리셋으로 가중치를 바꿉니다.

판단

최종 점수는 시간 0.30, 익숙함 0.20, 신뢰도 0.15, POI 0.15 등 가중합에서 우회·혼란 페널티를 빼는 구조로, 가중치는 설정 파일 한 곳에서만 조정합니다. 안전 지도는 교통량을 안전 신호로 쓰지 않았습니다. 교통량은 보행자 수와 차량 위험을 동시에 키워 방향을 단정할 수 없기 때문입니다. 추천 이유는 LLM이 아니라 규칙 기반 템플릿으로 생성해 결과를 재현 가능하게 했고, Mapbox 토큰이 없는 운영 환경에서는 가짜 경로 대신 503을 반환합니다.

구현하며 부딪힌 것

사용자 기록과 지도 데이터는 오차가 큽니다. GPS 정제, 구간 중복 제거 제약, 방문 POI 중복 방지, 지리 표현식 인덱스 등 데이터 품질 문제를 마이그레이션 단위로 하나씩 해결했습니다. 제보 데이터는 투표만으로 반영하지 않고 운영자 승인 후 공식 데이터에 반영하도록 검토 단계를 두었고, Mapbox 3.0 알파 버전 전환과 소셜 로그인(카카오·네이버·구글), FCM 푸시, 계정 삭제 같은 출시 요건도 처리했습니다.

결과

추천(6가지 전략)·코스 만들기와 3D 미리보기·경로 이탈 알림·안전/접근성 지도·참여형 제보·기록과 회고까지 갖춘 앱과 API를 구현했습니다. 백엔드는 Railway(PostGIS, Redis)에서 운영하며 Alembic 마이그레이션 46개, 백엔드 테스트 파일 79개, CI가 있습니다. Android 출시 점검(Google Play 정책, 배포 런북, 버그 대장)을 문서화했습니다.

공개 범위

저장소는 비공개이며, 아래 실기기 시연 영상에서 홈, 3D 경로 안내, 경로 이탈 알림, 코스, 기록, 프로필을 확인할 수 있습니다. 사용자 수나 추천 정확도 같은 성과 수치는 측정하지 않아 제시하지 않습니다.

다음에 해 볼 것

향후 개선 방향(제안): 추천 점수 가중치는 설정으로 분리했지만 아직 실사용 데이터로 검증하지 않았습니다. 추천 경로를 실제로 따라 걸은 비율, 이탈률, 재방문 경로 선택률을 측정해 가중치를 조정하고, 추천 이유를 사용자에게 보여 주는 방식이 신뢰를 높이는지 확인합니다.

비슷한 문제를 풀고 계신가요?

지금 상황을 짧게 적어 보내 주세요. 가능한 접근을 함께 검토하겠습니다.

프로젝트 상담하기