fighting-combo-archive
최근 수정 시각: 2026-08-28 22:24:49
1. 개요
fighting-combo-archive는 고전 격투게임 두 편의 기술표와 콤보를 모은 아카이브 PWA다. yongin-bezanson-2026의 EFZ 파이트 랩을 독립 앱으로 떼어내고, SF6 Combo Book의 화면 문법(탭·해시 라우터·트레이닝 뷰·노테이션 아이콘)을 물려받아 여러 게임을 담을 수 있게 일반화했다.
편집 기능은 일부러 넣지 않았다. 이건 콤보 노트가 아니라 큐레이션 아카이브다. 담긴 것은 전부 출처에서 확인된 것이고, 그 대신 사용자가 고칠 수는 없다. 개인화는 즐겨찾기와 마지막으로 본 게임까지가 전부다.
1.1. 수록 게임
| 게임 | 범위 |
|---|---|
| Eternal Fighter Zero (Memorial v4.02) | 23 파이터 · 콤보 139 |
| Capcom vs. SNK: Millennium Fight 2000 Pro | 35 파이터 · 콤보 210 (캐릭터마다 BnB 3 · 실전 2 · 챌린지 1) |
CvS1은 Pro 버전 기준의 4버튼 게임이라, 6버튼 시절 표기를 섞어 쓰면 데이터 검사에서 떨어진다. EFZ의 원문 버튼 표기는 정규 버튼으로 해석하되 원문 문자열을 그대로 보존한다.
2. 핵심 기능
- 콤보 — 캐릭터 검색과 분류·시동·난도 필터. 콤보 카드마다 시동·난도·입력·출처가 붙는다.
- 트레이닝 뷰 — 콤보 하나를 스텝 타임라인으로 분해하고 시동·위치·자원·조건·난도를 함께 보여준다.
- 하이라이트 — 고난도 목표 콤보만 모은 화면. 물론 여기도 출처 검증된 루트만.
- 통계 — 파이터·콤보·기술·티어·캐릭터별 집계와 출처 건수.
- 설정 — 게임 전환, 즐겨찾기 관리, 출처 전체 보기.
- 노테이션 아이콘 스트립 — 넘패드 표기를 실시간으로 방향·버튼 아이콘 줄로 바꾼다. 원칙은 분명하다 — 노테이션 문자열이 데이터의 진실이고, 아이콘과 스텝 타임라인은 거기서 파생한다. 게임마다 표기 방언을 따로 정의한다.
- 오프라인 PWA — 설치해 두면 네트워크 없이 열린다. 대전장이나 오락실에서 쓰는 물건이니 당연한 요건이다.
2.1. 출처 검증
이 앱의 데이터 원칙은 한 줄이다 — 출처에서 확인한 것만 기록한다. 오정보 0. 말로만 두지 않고 검사 두 개로 강제한다.
- 콘텐츠 검사 — 파이터·기술·콤보 각각의 출처 URL이 허용 목록에 있는지, 확인 날짜가 실존하는 과거 날짜인지 대조한다. 노테이션 파싱 예외는 사유를 적어야만 통과한다. 검사를 통과시키려고 계약을 완화하거나 값을 하드코딩하는 것은 금지다.
- 출처 생존 검사 — 수록된 모든 출처 URL에 실제로 요청을 보내 링크가 썩지 않았는지 본다. 하나라도 죽어 있으면 실패한다.
3. 기술 스택
| 영역 | 기술 |
|---|---|
| 웹 | Vite + React 19 + TypeScript(엄격), lucide-react |
| PWA | vite-plugin-pwa (자동 업데이트, 오프라인 폴백) |
| 데이터 | DB 없음 — 로스터가 타입스크립트 소스에 정적으로 박혀 있다 |
| 저장 | localStorage만 (즐겨찾기, 마지막 본 게임) |
| 품질 | oxlint · vitest · Playwright + 접근성 검사 · 콘텐츠 검사 |
| 호스팅 | Cloudflare Pages |
4. 개발 배경
오래된 격투게임의 콤보 정보는 흩어져 있고, 흩어진 만큼 틀렸다. 10년 전 게시판 글, 죽은 위키, 자막 없는 영상. 어느 게 지금 버전에 맞는지 알기 어렵고, 틀린 콤보 하나를 30분 연습한 뒤에야 알아채는 일이 흔하다.
그래서 이 앱은 수록량보다 정확도를 택했다. 출처가 없으면 싣지 않고, 출처가 죽으면 검사가 실패한다. 대신 담긴 것은 믿고 연습해도 된다.
데이터를 데이터베이스가 아니라 소스 파일에 둔 것도 같은 이유다. 콤보 하나를 고치려면 커밋이 남고, 검사를 통과해야 배포된다.
5. 링크
6. 관련 문서
- app-mockups — 화면 문법을 물려준 SF6 Combo Book이 사는 곳
- akashicrecords — 게임 자료를 모으는 다른 방식
- JaceApps 대문