尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
광주광역시 상생카드·온누리상품권 가맹 주유소의 실시간 유가를 비교하는 웹 서비스입니다. 광주상생카드 참 좋은데... 명절에는 할인도 팍팍 해주고 좋은데... 상생카드 쓸 수 있는 주유소 목록은 광주광역시 홈페이지에 나와 있는 읽기 힘든 엑셀자료뿐... 매번 검색해서 일일히 유가 비교하기에는 지갑 얇은 내연기관차량 오너로서는 넘나 힘든 일이어라ㅠㅠ (심지어 어디는 상호 바꾸고 심지어 폐업한곳도 있었음;;!!) 그런데 엥 요즘 바이브코딩이 대세군요?! 냅다 클코 깔고 만들어달라 했답니다 (토큰 살살 녹은건 비밀😇) 조금 일이 커진거같지만 아무튼 봐줄만한 정도는 된 것 같아 깃헙에 내놓았답니다 지금은 프로토타입이라 개선해야 할 사항이 넘나 많지만 이걸 두들겨보고 들춰보고 찔러보고 여러모로 써 주시고 의견이나 가르침 주신다면 감사하겟습니당 사실 저는 R 깔짝 쓰다가 바이브코딩 접하고 냉큼 해본거라 많이 알지는 못하지만 질문 주신다면 제가 아는 범위 내에서... 열심히 답드리겟습니다 오늘도 좋은하루~~~檢視完整 README ↗
광주광역시 상생카드·온누리상품권 가맹 주유소의 실시간 유가를 비교하는 웹 서비스입니다.
광주상생카드 참 좋은데... 명절에는 할인도 팍팍 해주고 좋은데... 상생카드 쓸 수 있는 주유소 목록은 광주광역시 홈페이지에 나와 있는 읽기 힘든 엑셀자료뿐... 매번 검색해서 일일히 유가 비교하기에는 지갑 얇은 내연기관차량 오너로서는 넘나 힘든 일이어라ㅠㅠ (심지어 어디는 상호 바꾸고 심지어 폐업한곳도 있었음;;!!)
그런데 엥 요즘 바이브코딩이 대세군요?! 냅다 클코 깔고 만들어달라 했답니다 (토큰 살살 녹은건 비밀😇) 조금 일이 커진거같지만 아무튼 봐줄만한 정도는 된 것 같아 깃헙에 내놓았답니다
지금은 프로토타입이라 개선해야 할 사항이 넘나 많지만 이걸 두들겨보고 들춰보고 찔러보고 여러모로 써 주시고 의견이나 가르침 주신다면 감사하겟습니당 사실 저는 R 깔짝 쓰다가 바이브코딩 접하고 냉큼 해본거라 많이 알지는 못하지만 질문 주신다면 제가 아는 범위 내에서... 열심히 답드리겟습니다 오늘도 좋은하루~~~
| 분류 | 기술 |
|---|---|
| 프레임워크 | Next.js 16 (App Router, Turbopack) |
| 언어 | TypeScript 5.9 |
| 스타일링 | Tailwind CSS 4 |
| 데이터 페칭 | SWR |
| 데이터베이스 | MongoDB Atlas (2dsphere 지리공간 인덱스) |
| 지도 | Kakao Maps SDK |
| 배포 | Vercel |
| 데이터 전처리 | Python (pandas) |
| 소스 | 용도 |
|---|---|
| 오피넷 API | 실시간 주유소 유가 정보 |
| 카카오 개발자 | 지도 표시 및 주소 → 좌표 변환 |
| 공공데이터포털 광주상생카드 가맹점 현황 | 상생카드 가맹점 목록 |
| 공공데이터포털 전국 온누리상품권 가맹점 현황 | 온누리상품권 가맹 주유소 식별 |
.env.example을 .env.local로 복사한 후 값을 채워 넣으세요.
cp .env.example .env.local
OPINET_API_KEY=... # 오피넷 API 키
NEXT_PUBLIC_KAKAO_MAP_KEY=...# 카카오 JavaScript 키
KAKAO_REST_API_KEY=... # 카카오 REST API 키
MONGODB_URI=... # MongoDB 연결 문자열
CRON_SECRET=... # 가격 갱신 엔드포인트 보안 키
# 의존성 설치
npm install
# 데이터 초기화 (상생카드 데이터 다운로드 → 지오코딩 → DB 시딩)
npm run seed
# 온누리상품권 가맹점 매칭
npm run onnuri:link
npm run onnuri:add
# 오피넷 가격 연동
npm run opinet:link
# 개발 서버 시작
npm run dev
http://localhost:3000에서 확인할 수 있습니다.
상생카드 가맹점 다운로드 → 카카오 지오코딩 → MongoDB 시딩 → 온누리 매칭 → 오피넷 매칭 → 가격 갱신
| 명령어 | 설명 |
|---|---|
npm run seed | 전체 파이프라인 (다운로드 → 지오코딩 → DB 저장) |
npm run seed:download | 상생카드 데이터 다운로드만 |
npm run seed:geocode | 주소 → 좌표 변환만 |
npm run opinet:link | 오피넷 주유소 매칭 + 초기 가격 수집 |
npm run onnuri:link | 온누리상품권 가맹 주유소 DB 마킹 |
npm run onnuri:add | 온누리 전용 주유소 (상생카드 미가맹) DB 추가 |
npm run prices:refresh | 가격 갱신 (주기적 실행용) |
npm run prices:snapshot | 전국/광주 평균 유가 스냅샷 저장 |
app/
├── home/ # 홈 (전국/광주 평균 유가, 즐겨찾기 바로가기)
├── browse/ # 주유소 탐색 (내 주변 통합)
├── nearby/ # /browse?district=nearby 로 리다이렉트
├── favorites/ # 즐겨찾기
├── station/ # 주유소 상세
└── api/
├── stations/ # 주유소 목록 · 상세 · 근처 검색
├── prices/ # 가격 갱신 · 전국/광주 평균가
└── kakao-sdk/ # 카카오 SDK 프록시
lib/
├── db/ # MongoDB 연결 · 모델 · 쿼리
├── opinet/ # 오피넷 API 클라이언트
├── matching/ # 상생카드 ↔ 오피넷 매칭 알고리즘
├── geo/ # 좌표 변환 (WGS84 ↔ KATEC), 거리 계산
├── gwangju/ # 광주 구·지역 데이터
└── hooks/ # React 커스텀 훅
scripts/ # 데이터 파이프라인 스크립트 (상생카드 시딩, 온누리 매칭, 오피넷 연동 등)
components/ # UI 컴포넌트 (지도, 카드, 필터 등)
Vercel에 배포되어 있습니다. GitHub 푸시 시 자동 배포됩니다.
Vercel 대시보드에서 위의 환경변수를 모두 설정해야 합니다. MongoDB Atlas의 Network Access에서 0.0.0.0/0을 허용해야 Vercel 서버리스 함수에서 접근 가능합니다.
MIT