尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Next.js 기반 한국어 거리 측정 웹앱입니다. GitHub에 올린 뒤 Vercel에서 Next.js 프로젝트로 가져올 수 있습니다.
Node.js 22 이상이 필요합니다.
npm.cmd ci
npm.cmd run dev
브라우저에서 http://localhost:3000 을 엽니다. Windows PowerShell의 실행 정책과 무관하게 실행되도록 npm.cmd를 표기했습니다. macOS/Linux에서는 npm을 사용하면 됩니다.
로컬 개발 서버는 별도의 환경 변수 없이 단일 프로세스의 요청 제한과 메모리 캐시를 사용합니다. 검색은 타이핑 자동완성이 아니라 검색 버튼으로 실행됩니다. 개발 중에도 공개 API 정책을 지켜 주세요.
npm.cmd test
npm.cmd run build
npm.cmd start
start는 운영 모드입니다. 운영 모드의 장소 검색에는 다음 환경 변수 설정이 필요합니다.
node_modules, .next, .npm-cache, .env.local은 올리지 않습니다. package-lock.json은 함께 올립니다.npm run build)으로 둡니다. Output Directory는 기본값을 유지합니다.| 변수 | 값 |
|---|---|
UPSTASH_REDIS_REST_URL | Upstash 콘솔의 HTTPS REST URL |
UPSTASH_REDIS_REST_TOKEN | Upstash 콘솔의 REST Token (읽기 전용 토큰은 사용 불가) |
NOMINATIM_USER_AGENT | WaypointDistance/1.0 (https://내앱.vercel.app; contact: 실제연락이메일) |
Redis 및 서비스 식별자가 설정되지 않은 운영 환경에서는 사이트는 표시되지만 장소 검색은 차단됩니다. Vercel은 서버 인스턴스가 여러 개이므로 메모리 제한만으로는 공개 Nominatim의 사이트 전체 요청 제한을 지킬 수 없기 때문입니다. Redis 연결이 끊기면 외부 검색 호출도 중단합니다. 토큰은 서버에서만 사용되며 NEXT_PUBLIC_ 접두사를 붙이지 않습니다.
로컬에서 운영 빌드를 확인하려면 .env.example을 .env.local로 복사하고 실제 세 값을 입력합니다. Upstash의 요금/할당량은 이용하는 상품을 확인하세요.
Nominatim 공개 서버 사용 정책: 사이트 전체 최대 초당 1회, 앱을 식별하는 User-Agent/Referer, 출처 표시, 결과 캐시가 필요합니다. 자동완성 및 대량 수집은 금지됩니다. 개발자는 이 공개 API 선택과 정책 준수에 책임이 있습니다. 이 앱은 사용자가 버튼을 누를 때만 검색하며, 사이트 공통 Redis 잠금으로 요청을 직렬화하고 응답 후 최소 1.1초 간격을 두며, 검색 결과를 24시간 저장합니다. 서버는 일시적으로 차단되거나 정책이 바뀔 수 있습니다. 사용자 수가 늘어나면 별도 제공자 또는 자체 Nominatim으로 전환하세요.
공개 API에 개인정보나 비밀 주소를 입력하지 마세요. 검색어와 선택 좌표는 기능 수행을 위해 Nominatim, OSRM에 전송되며 지도 타일은 OpenStreetMap에서 불러옵니다. 검색어 및 검색 결과는 서버 캐시에 저장됩니다.
.env.example에 있는 NOMINATIM_BASE_URL, OSRM_BASE_URL을 해당 API와 호환되는 자체/대체 서버 주소로 지정하고 Vercel을 재배포하면 됩니다. 브라우저 소스를 수정할 필요가 없습니다. 공개 Nominatim 이용을 중단하라는 요청이 오면 즉시 전환하세요.
app/page.js 검색·선택·결과 UI와 Leaflet 지도
app/globals.css 반응형 스타일
app/api/search/route.js Nominatim 서버 프록시
app/api/route/route.js OSRM 경로 서버 프록시
lib/services.mjs 입력 검증, 요청 제한, 캐시, API 연동
tests/services.test.mjs 거리·경로·검색·오류·요청 제한 검증
로그인, 자체 사용자 DB, GitHub/Vercel 배포 자동화는 포함하지 않습니다. 배포는 저장소를 업로드한 사용자가 진행합니다.