vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기오송이
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
대한민국 산림조합중앙회에서 제공하는 송이버섯 공판 시세를 시각화하여 제공하는 대시보드 서비스입니다. 2013년부터 현재까지의 공판 데이터를 수집하고, 최신 시세 확인 및 다양한 분석 기능을 제공합니다. • 문제: 송이 공판가는 매일 바뀌는데, 사이트에 직접 들어가야만 알 수 있습니다. • 해결: 내 지역 공판 결과를 한 화면에서 바로 확인할 수 있게 합니다. • 더하기: 2013년부터의 데이터로 추이·비교까지 함께 제공합니다. • 채취자와 농가가 산지·시장 현장에서 빠르게 시세를 확인할 수 있도록 지원 • 조합 관계자와 분석가가 시즌 통계 분석과 보고서 작성을 효율적으로 수행할 수 있도록 도구 제공 • 40~70대 주요 사용자층을 위한 가독성과 접근성 최적화 • 이 프로젝트는 ai agent(claude code)로 개발된 프로젝트입니다. 시즌 중(9~11월)에는 최신 공판 현황을 약 1시간 주기로 갱신하여 제공합니다. (화면 상단에 데이터 기준 시각이 상시 표시됩니다.)README 전문 보기 ↗
대한민국 산림조합중앙회에서 제공하는 송이버섯 공판 시세를 시각화하여 제공하는 대시보드 서비스입니다. 2013년부터 현재까지의 공판 데이터를 수집하고, 최신 시세 확인 및 다양한 분석 기능을 제공합니다.
/dashboard)시즌 중(9~11월)에는 최신 공판 현황을 약 1시간 주기로 갱신하여 제공합니다. (화면 상단에 데이터 기준 시각이 상시 표시됩니다.)
시즌 외에는 과거 시즌 데이터를 기반으로 분석 뷰를 제공합니다.
/data-analysis)다차원 필터링 기반의 심층 분석 도구입니다.
| 구분 | 기술 |
|---|---|
| 프레임워크 | React 19 + TypeScript + React Router v7 |
| 빌드 도구 | Vite 7 (코드 스플리팅, gzip/brotli 압축) |
| UI | MUI v7 (Material UI) + Emotion |
| 차트 | D3.js v7 (직접 구현) |
| 상태 관리 | Zustand (설정), Dexie (IndexedDB 캐싱) |
| 데이터 검증 | Zod v4 |
| 테스트 | Vitest + Storybook 9 + Playwright |
| 배포 | Vercel (자동 배포) |
src/const/Common.ts의 REGION_UNION_MAP 기준입니다.
강원: ["홍천", "양구", "인제", "고성", "양양", "강릉", "삼척"];
경북: [
"의성",
"안동",
"청송",
"영덕",
"포항",
"청도",
"상주",
"문경",
"예천",
"영주",
"봉화",
"울진",
"영천",
];
경남: ["거창"];
경남이 "거창" 1개인 것은 수집된 공판 현황에서 확인되는 경남 조합이 거창뿐이기 때문입니다.
산림조합중앙회 웹사이트
↓ Playwright 자동화 (GitHub Actions)
개별 JSON 파일 /public/auction-data/YYYY/MM/DD.json
↓ 빌드 시 통합 (scripts/generate-complete-dataset.ts)
통합 데이터셋 /public/auction-data/complete-dataset.json
↓ 통계 생성 (scripts/generate-stats.ts)
매니페스트 daily-manifest.json, weekly-manifest.json
↓ Vercel 자동 배포
클라이언트 로딩 → IndexedDB 캐싱
# 최근 7일 데이터 수집
npm run collect-data:recent
# 최근 30일 데이터 수집
npm run collect-data:month
# 기본 수집
npm run collect-data
# 통합 데이터셋 생성
npm run generate-complete-dataset
# 통계 매니페스트 생성
npm run generate-stats
IndexedDB 기반 로컬 캐싱으로 반복 방문 시 빠른 로딩을 지원합니다.
첫 방문: 통합 데이터셋 다운로드 (3.7MB, 압축 시 140234KB) → IndexedDB 저장
재방문: 로컬 데이터 나이 체크 → 서버 버전 비교 → 필요시에만 업데이트
버전 체크 전략 (3단계 폴백):
캐시 무효화: 개발 환경 5분, 프로덕션 1시간
# 의존성 설치
npm install
# 개발 서버
npm run dev
# 프로덕션 빌드
npm run build
# 빌드 결과 미리보기
npm run preview
# 린트
npm run lint
# 단위 테스트 (1회 실행)
npm run test
# 단위 테스트 (watch 모드)
npm run test:watch
# 단위 테스트 커버리지
npm run test:coverage
# E2E 테스트 (Playwright)
npm run test:e2e
# Storybook
npm run storybook
pre-push 훅(Husky)이 설정되어 있어,
git push전 단위 테스트가 자동 실행됩니다.
모든 공판 데이터는 산림조합중앙회가 홈페이지에 공개한 송이 공판 현황을 가공한 것입니다.
public/auction-data/, public/auction-stats/ 의 공판 데이터에 대한 권리는 산림조합중앙회에 있습니다.데이터 권리 확인 경과는
docs/planning/data-rights-check.md에 기록되어 있습니다.
README에 기술된 기능 외에, 아직 구현되지 않은 항목입니다.
weather-correlation-plan.md)