Dugout Value
투구·타격·예측 연구와 선수·계약·트레이드 가치를 비교하는 도구 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기드로잉 런을 위한 플랫포
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
요런 — 내 주변 길에서 찾는 드로잉 러닝 지도에 보이는 동네의 실제 길만 따라 한 번에 달릴 수 있는 그림 코스(하트·별·고양이 등)를 찾아 주고, GPS로 코스를 안내하며 기록한 뒤, 달린 선을 작품방에 걸어 보관·공유하는 러닝 웹 앱(PWA)입니다. 러닝 아트 프로그램 설계 명세서 v1.0 기준으로 보면, 15절 ‘장기 경로 생성’을 시제품으로 구현해 앱의 중심 기능으로 두었고, P0(GPX → 작품 → 작품방 → 저장·공유)는 그대로 이어 붙였습니다. • 위치(GPS)는 보안 연결(HTTPS) 또는 localhost에서만 동작합니다. 휴대폰에서 시험하려면 HTTPS로 배포하거나 npx next dev --experimental-https를 쓰세요. • 홈 화면에 추가하면 앱처럼 열립니다 (/manifest.webmanifest, 시작 주소 /routes). • Supabase 환경변수가 없어도 코스 찾기·달리기·임시 작품방·PNG는 동작합니다. 로그인 저장·공유는 아래 설정이 필요합니다.README 전문 보기 ↗
지도에 보이는 동네의 실제 길만 따라 한 번에 달릴 수 있는 그림 코스(하트·별·고양이 등)를 찾아 주고, GPS로 코스를 안내하며 기록한 뒤, 달린 선을 작품방에 걸어 보관·공유하는 러닝 웹 앱(PWA)입니다.
지도에서 동네 맞추기 → 그림·거리 선택 → 코스 찾기 → 코스 골라 달리기(GPS 안내·기록) → 작품방에 걸기 → PNG/공유
러닝 아트 프로그램 설계 명세서 v1.0 기준으로 보면, 15절 ‘장기 경로 생성’을 시제품으로 구현해 앱의 중심 기능으로 두었고,
P0(GPX → 작품 → 작품방 → 저장·공유)는 그대로 이어 붙였습니다.
npm install
npm run dev # http://localhost:3000 → /routes 에서 코스 찾기
npx next dev --experimental-https를 쓰세요./manifest.webmanifest, 시작 주소 /routes).supabase/migrations/0001_init.sql을 Supabase 프로젝트에서 실행합니다.http://localhost:3000/auth/callback(및 배포 주소)을 추가하고 이메일 로그인 링크 수신을 시험합니다..env.example을 .env.local로 복사해 채웁니다. SUPABASE_SERVICE_ROLE_KEY는 서버의 공유 조회에서만 씁니다.src/lib/route/)osm.ts).
고속도로·자동차 전용·보행 금지·사유지는 제외, 계단은 옵션으로 제외, 큰길은 비용을 높여 덜 선호합니다.graph.ts).fit.ts).바탕 지도는 OpenFreeMap 벡터 지도(무료, API 키·가입 불필요, OpenStreetMap 데이터)를 MapLibre로 그립니다. 코스 찾기 화면은 글자·아이콘·건물을 뺀 단순 지도, 달리기 화면은 한국어 지명을 우선 표시하는 기본 지도(3D 건물 제외)입니다. 벡터 지도는 WebGL이 필요하며, 못 그리는 기기에서는 안내만 띄우고 코스 찾기·달리기는 그대로 동작합니다.
npm run eval:quality)실제 OSM 데이터 3개 지역(부산 광안리·서면, 서울 강남, 각 약 2.53km 영역) × 9개 그림, 38km 조건. 알고리즘 자체 점수와 별개로 잰 값입니다.
| 지표 | 처음 버전 | 현재 (큰길 위주) |
|---|---|---|
| 막대·가시 (코스당) | 2.04개 | 0.04개 |
| 그림과 무관한 급회전 (1km당) | 8.7회 | 5.3회 |
| 특징점(귀·꼭짓점) 보존 | 94% | 100% |
| 모양 이탈 95% 값 (모양 크기 대비) | 3.6% | 4.9% |
잔길을 빼서 선이 깔끔해지는 대신 모양에서 조금 더 벗어납니다(마지막 행). 바둑판 도로가 많은 동네(강남)에서 가장 잘 나오고, 길이 불규칙한 동네(광안리·서면)에서는 고양이 귀처럼 작은 특징이 약해집니다.
측정하려면 Overpass에서 받은 JSON(busan.json, seomyeon.json, gangnam.json)을 한 폴더에 두고 EVAL_DIR=<폴더> npm run eval:quality를 실행합니다.
그림: 하트 · 별 · 동그라미 · 네모 · 세모 · 다이아몬드 · 고양이 · 물고기 · 번개 (shapes.ts에 단위 좌표 외곽선을 추가하면 늘어납니다).
/run, src/lib/run/tracker.ts)npm run lab -- all --run experiment-01 --limit 24 --channel msedge로 동일 후보의 이진·회색 입력 비교와 블라인드 사람 평가 화면을 만듭니다. 결과는 eval/recognition/experiment-01/에 저장합니다. 선택형 SigLIP 2·CLIP 및 서버 VLM 실행, 평가 JSON 집계는 실험실 사용법을 참고하세요. 기본 실행은 외부 AI를 호출하지 않습니다.
푸시·PR마다 GitHub Actions가 타입 검사 → lint → 단위·품질 회귀 테스트 → 빌드 → 브라우저 E2E를 돌립니다. 층별 설명·원칙·명령은 docs/testing.md에 있습니다.
| 명령 | 내용 |
|---|---|
npm run typecheck · npm run lint | TypeScript 7 타입 검사 · ESLint (next core-web-vitals + typescript) |
npm test | 단위 테스트 (알고리즘·파서·계약·외부 서버 주고받기(MSW)·화면 조각·탐색 결정성) + 코스 품질 기준선 |
npm run test:quality | 고정한 실제 지도(강남 2곳)에서 코스 품질이 기준선보다 나빠지지 않았는지 (:update로 기준선 갱신) |
npm run test:e2e | Playwright: 작품방·코스 찾기·달리기·화면 이동 회귀·360px (외부 서버는 가짜 응답, 서버는 자동 기동) |
npm run test:e2e:live | 실제 바탕 지도 서버가 키 없이 뜨는지 (CI 제외) |
npm run test:db | DB 마이그레이션(RLS·RPC·권한) — PGlite |
npm run eval:make-set · npm run eval:calibrate | 사람 판정으로 점수 등급 기준선 보정 |
실제 부산 수영·광안리 일대(약 2.5km 영역, OSM 4,151 노드) 측정: 9개 그림 전체 탐색 1.4~4초(헤드리스 Edge), 모든 그림에서 연결된 닫힌 코스(유사도 8188, 3.16.2km, 같은 길 반복 0~0.6%).
src/lib/route/ osm(Overpass 질의·필터) · graph(투영·CSR 그래프·공간 색인·A*) · shapes · fit(탐색) · finder.worker
src/lib/run/ tracker(진행 추적·방향 안내·기록 필터·GPX) · storage(기기 보관)
src/components/ map/useLeafletMap · route/RouteFinderApp · run/RunApp · room/* · SceneSvg · ImportPanel
src/app/ / · /routes · /run · /room · /share/[token] · /api/* · manifest
src/lib/(gpx|art|contracts|room|render|draft|server) GPX → 작품 → 작품방 (명세 P0)
supabase/ 마이그레이션 + DB 검증 스크립트
e2e/ Playwright 테스트(specs·fixtures) + 수동 디자인 캡처 도구(tools)
tests/ 단위·화면 조각·품질 기준선 테스트, 공용 가짜 응답(mocks), 고정 지도 데이터(fixtures)
public/vendor/로 복사해 앱이 직접 제공합니다. npm install·npm run dev·npm run build 때 자동으로 복사됩니다 (scripts/copy-maplibre-worker.mjs).한국 길 데이터 설치·갱신 및 배포 방법: docs/local-roads.md.