← 전체 프로젝트
01. 한 줄로 보는 발자국
발자국
반려견의 크기 · 견종 · 체질과 문화 공공데이터를 교차해, 우리 강아지가 갈 수 있는 곳과 동선을 대화로 짜 주는 반려견 동반 여행 플래너 — 제4회 문화체육관광 AI · 데이터 활용 공모전
- Python 3.13
- FastAPI
- SQLAlchemy 2 · Alembic
- PostgreSQL (Neon)
- Gemini
- pandas · pyproj
- React 19 · Vite
- Docker
- Railway · Vercel
↓ 스크롤 또는 ← → 키로 넘기기
02. 설계 원칙 - AI는 고르기만, 검증과 폴백은 코드가
AI가 존재하지 않는 시설을 지어내면 반려견과 보호자가 헛걸음을 합니다. DB에서 먼저 후보를 뽑아 주고, AI의 답은 그 목록 안에 있는지 코드로 다시 확인합니다.
근거: route_planner_repository.py · symptom_check_repository.py — 면책 문구 · 긴급도 제한
03. 대화는 AI가, 코스 생성 시점은 규칙이
가벼운 모델은 예시 속 지역명을 그대로 베끼거나 이미 받은 정보를 다시 물었습니다. 대화는 AI에게 맡기되, 목적지 · 이동 수단 · 숙박이 모두 찼는지는 규칙이 판단합니다.
04. 공공데이터 CSV를 3NF DB로
기관마다 파일 인코딩도, 지도 좌표 방식도 달랐습니다. 한 기준으로 번역한 뒤 시설 · 반려동물 규정 · 허용 크기를 서로 다른 표로 나눠 담았습니다.
근거: _docs/발자국_ERD.md — 적재 실측 · 정합성 · scripts/ingest_facilities.py
05. 경유지 선별 - 코리도어 투영
자동차로 이동하는 중에 들를 곳을 추천하면, 경로에서 한참 벗어난 부산 시설이 섞였습니다. 출발지와 도착지를 잇는 직선에 시설을 투영해 가까운 곳만 남겼습니다.
06. 배포 - 화면과 서버를 한 상자에
프론트와 백엔드를 따로 배포하면 CORS와 환경변수가 두 벌이 됩니다. 빌드된 화면 파일을 FastAPI가 같은 주소에서 서빙하는 단일 컨테이너로 묶었습니다.
근거: Dockerfile
