주유한 다음 날 기름값이 내려가는 게 억울해서 만든 1인 사이드 프로젝트입니다.
오피넷 공공데이터로 "오늘 어디가 싼지"는 알 수 있지만 "오늘 넣어야 하는지, 기다려야 하는지"는 알 수 없습니다. 그래서 2022년부터의 전국 1.15만 주유소 일별 가격에 국제유가(WTI·두바이유)·환율·유류세 변수를 붙여 7일 가격 변화를 예측하는 모델을 만들고, 매일 아침 신호등으로 띄웁니다. "오를 듯?"이 아니라 "기다리면 리터당 약 40원 아껴요"처럼 금액으로 말합니다.
핵심 설계는 모델이 아니라 이겁니다: 예측 서비스는 "이걸 왜 믿어야 하죠?"에 답을 못 하면 끝이라서, 매일 어제 예측을 자동 채점해 성적표를 앱 안에 그대로 공개합니다. 누적 채점 3만 건+, "안 오른다" 예측 적중 99%, "여기 싸요" 추천이 실제로 쌌던 비율까지 전부요. 틀리면 숫자가 떨어지는 게 사용자에게 보이고, 덕분에 저도 모델을 대충 만들 수가 없게 됐습니다.
구성은 고정비 0원 원칙으로 단순하게:
오피넷 일별 CSV → DuckDB(4.6GB 시계열, 로컬) → 피처 → 예측 → 채점 → 서빙 스냅샷, launchd로 매일 07:30 전자동
서빙은 FastAPI + 바닐라 JS 단일 HTML(90KB), 회원·스냅샷만 Supabase, 호스팅 Render 무료 플랜(UptimeRobot 핑으로 슬립 방지)
지역화폐 가맹 주유소 6,473곳은 조폐공사 공공데이터를 좌표 150m+상호명 매칭으로 연결
삽질도 하나만: 어느 날 주유소 57%가 '보류' 처리돼서 이틀을 팠는데, 이상치 게이트로 둔 "예측 변화 40원 컷"이 실현 분포의 p75였습니다. 4건 중 1건을 이상치 취급하고 있었던 것. p99.5로 올리고 해결됐습니다. 임계값은 감이 아니라 분위수로 정해야 한다는 걸 체감했습니다. (자세한 개발기: velog 링크)
지난주 절약 커뮤니티에 글 하나 올렸더니 이틀간 730명이 다녀갔고, 가입자의 82%가 30~40대 출퇴근족이었습니다. 회원가입 없이 모든 기능을 쓸 수 있고 전부 무료입니다.
경유 예측(현재 조회만 제공), 시군구보다 촘촘한 지역 단위 등 고민 중인 게 많은데, 써보시고 "우리 동네 예측이 이상하다" 같은 피드백 주시면 성적표로 검증하며 고치겠습니다.