GitHub README에 바로 넣을 수 있는 solved.ac 프로필 SVG 카드를 만들고,
실시간 생성기와 정적 기록 보관소까지 함께 제공하는 프로젝트입니다.
이 프로젝트의 시작점은 아주 분명합니다.
solved.ac 핸들만 넣으면 GitHub README에 붙일 수 있는 SVG 카드를 만들고, 웹에서 미리보면서 바로 써먹을 수 있게 하는 것입니다.
v1,v2두 가지 카드 버전을 지원합니다.streak=true옵션으로 최대 연속 풀이와 최근 1년 잔디를 카드에 넣을 수 있습니다.- 웹 스튜디오에서 API 주소 복사, README 마크다운 복사, SVG 다운로드까지 한 번에 처리할 수 있습니다.
| 항목 | 주소 | 설명 |
|---|---|---|
| 실시간 웹 스튜디오 | kookjd7759.github.io/solvedac-readme-stats | 핸들을 넣고 바로 카드 미리보기 |
| API | https://solvedac-readme-stats.vercel.app/api |
README용 SVG 응답 |
| Pages 메인 앱 | docs/ |
GitHub Pages에서 배포되는 실시간 화면 |
가장 기본적인 사용 예시는 아래와 같습니다.
버전을 지정하고 싶다면:
연속 풀이 섹션까지 포함하고 싶다면:
이제 이 프로젝트는 단순히 “README에 링크로 넣는 카드”에서 끝나지 않습니다.
실시간 웹 스튜디오와 API 모두 다운로드 가능한 SVG를 기준으로 사용할 수 있게 구성되어 있습니다.
- 웹 스튜디오에서 미리본 카드를 바로 SVG로 저장할 수 있습니다.
- API에
download=1을 주면 첨부 파일처럼 내려받는 응답으로 바뀝니다. - 즉, README 삽입용 링크와 별개로 “파일로 보관하는 카드”도 함께 다룰 수 있습니다.
| 방식 | 예시 | 용도 |
|---|---|---|
| 웹에서 다운로드 | 실시간 스튜디오의 SVG 다운로드 버튼 |
즉시 저장 |
| API 다운로드 | https://solvedac-readme-stats.vercel.app/api?handle={handle}&v=2&download=1 |
직접 파일 받기 |
| README 삽입 |  |
README에 바로 표시 |
다운로드 응답 예시는 아래처럼 사용할 수 있습니다.
https://solvedac-readme-stats.vercel.app/api?handle={handle}&v=2&download=1
지원하는 주요 쿼리 파라미터:
handle: solved.ac 핸들v: 카드 버전,1또는2streak:true이면 연속 풀이 섹션 추가download:1,true,yes중 하나면 SVG 파일 다운로드 응답full:1,true,yes중 하나면 배경/아바타 같은 확장 자산까지 포함한 full SVG 응답debug:1,true,json중 하나면 디버그 JSON 응답
기본 API 링크는 GitHub README 호환성을 위해 안전 모드로 응답합니다.
웹 스튜디오 미리보기와 다운로드는 내부적으로 full=1을 사용해 더 풍부한 자산까지 포함합니다.
실시간 요청이 어려워지는 이후까지 생각해서, 이 프로젝트에는 별도의 정적 보관소도 함께 들어 있습니다.
여기는 백준 플래티넘 V 이상 유저 저장본만 대상으로, 실시간 요청 없이도 카드와 랭크를 다시 열람할 수 있도록 만든 아카이브입니다.
- 기준 시점:
2026-04-21 09:00 KST - 대상 범위: 백준 플래티넘 V 이상
- 동작 방식: 저장된 JSON + 저장된 이미지 자산만 사용
- 특징: 실시간 solved.ac / BOJ 프로필 API를 직접 호출하지 않음
- 추가 기능: 순위별 열람, 상위권 빠른 이동, 선택한 유저 카드 즉시 SVG 다운로드
| 항목 | 주소 | 설명 |
|---|---|---|
| 플래티넘 기록 보관소 | kookjd7759.github.io/solvedac-readme-stats/platinum-snapshot | 정적 저장본 기반 아카이브 |
| Pages 아카이브 앱 | docs/platinum-snapshot/ |
순위 보관소 + 카드 생성 |
| 스냅샷 데이터 | docs/platinum-snapshot/user_data.js |
브라우저에서 직접 쓰는 저장본 |
이 보관소는 “상위권부터 순위별로 쭉 열람하고, 그 시점의 카드를 다시 SVG로 내려받는 화면”까지 포함합니다.
| v1 / streak 없음 | v1 / streak 포함 |
|
|
|
| v2 / streak 없음 | v2 / streak 포함 |
|
|
|
| 구분 | 실시간 스튜디오 | 플래티넘 기록 보관소 |
|---|---|---|
| 데이터 원천 | 실시간 API | 저장된 스냅샷 |
| 대상 | 일반 solved.ac 핸들 | 백준 플래티넘 V 이상 저장본 |
| 랭크 열람 | 없음 | 있음 |
| 다운로드 | 가능 | 가능 |
| 실시간 의존성 | 있음 | 없음 |
개발 서버 실행:
npm run dev주요 경로:
- Next.js 앱:
src/ - 실시간 Pages 화면:
docs/ - 플래티넘 기록 보관소:
docs/platinum-snapshot/ - Pages 배포 워크플로:
.github/workflows/deploy-pages.yml
로컬에서 확인할 수 있는 예시:
http://localhost:3000/http://localhost:3000/api?handle={handle}&v=1http://localhost:3000/api?handle={handle}&v=2http://localhost:3000/api?handle={handle}&v=2&streak=true
MIT License를 따릅니다. 자세한 내용은 LICENSE를 확인해 주세요.
