# 기술 명세 ## 프로젝트 개요 - 목적: 보유 중인 닌텐도 스위치 게임 목록을 웹에서 조회, 필터링, 정렬, 상세 확인한다. - 형태: 정적 HTML + ES Module JavaScript 기반 단일 프론트엔드. - 빌드: Tailwind CSS CLI를 사용해 스타일 파일을 생성/관리한다. ## 화면/라우팅 - 목록 화면: `index.html` - 주요 기능: 검색, 필터(언어/판매상태/국가/CERO), 정렬, 게임 개수 표시, 가격 확인 별·제품 상태 표시 - 데이터 소스: `db/nsw.resale.db.js` (`export default` → `items` 배열) - 스크립트: `script/nsw.js` - 상세 화면: `nsw-detail.html` - 주요 기능: 게임 기본 정보/판매 정보 상세 표시 - 진입 방식: `nsw-detail.html?no={gameNo}` - 데이터 소스: `db/nsw.resale.db.js` - 스크립트: `script/nsw-detail.js` ## 데이터 구조 (중고 판매 DB) - 파일: `db/nsw.resale.db.js` - 형태: `export const NSW_RESALE_DB = { metadata, items }`, `export default items` - 주요 필드: - `no` (number): 게임 고유 순번 - `title` (string): 일본어/원문 타이틀 - `koTitle` (string|null): 한국어 타이틀 - `image` (string): 상세 이미지 경로 - `thumbnail` (string): 목록 썸네일 경로 - `platform` (string): 플랫폼명 - `requiredCapacity` (string|null): 필요 용량 - `playMode` (string|null): 플레이 모드 - `playUser` (string|null): 플레이 인원 - `localPlayUser` (string|null): 로컬 통신 인원 - `onlinePlayUser` (string|null): 온라인 통신 인원 - `compatibleController` (string|null): 대응 컨트롤러 - `onlineDataSave` (string|null): 세이브 데이터 보관 지원 여부 - `maker` (string|null): 메이커 - `language` (string|null): 지원 언어 목록 - `release` (string|null): 출시일(예: `2017年7月20日`) - `tags` (string|null): 장르/특성 태그 - `extension` (string[]|null): 추가 콘텐츠 목록 - `status` (string): `available` | `sold` (판매 가능/판매완료) - `itemCondition` (string|null): `SEALED`(미개봉) | `OPENED`(개봉) | `null`(미정) - `country` (string): `KOR` | `JPN` - `cero` (string|null): CERO 등급 - `sale` (object): - `suggestedPrice` (number): 추천 판매가(KRW) - `priceRange` (object): `{ min, max }` - `pricingBasis`, `confidence`, `checkedAt`, `memo` 등 - `priceVerified` (boolean): 실제 시세 확인 완료 여부. `true`이면 목록·상세 제목 앞 노란 별 표시 ## 필터/정렬 동작 - 필터: - 언어 필터: 한국어 지원/미지원 - 상태 필터: `status` + `extension` 보유 여부 - 국가 필터: `country` - CERO 필터: `cero` - 정렬: - 순번 최신/과거 - 발매일 최신/과거 - 구매일 최신/과거 - 무작위 ## 스타일/에셋 - 스타일 소스: `style/tailwind.css` - 이미지: - 목록/상세에서 `images/nsw` 하위 이미지를 참조 - 데이터 레코드의 `image`, `thumbnail` 필드로 렌더링 - 원격 업로드 용량 제한 대응을 위해 `images/**`는 Git LFS 관리 대상으로 지정한다.