v2026.03.30-04 레포지토리 재연결
프로젝트 초기 상태를 기준으로 저장소를 재구성하고 업로드 규칙을 정비한다. 이미지 자산은 Git LFS를 통해 원격 용량 제한에 대응한다. Made-with: Cursor
This commit is contained in:
40
docs/convention.md
Normal file
40
docs/convention.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 코딩 컨벤션
|
||||
|
||||
## 기본 원칙
|
||||
- 언어: 프론트엔드 UI 문구는 한국어/일본어 이중 언어를 유지한다.
|
||||
- 모듈: 브라우저 ES Module(`type="module"`) 기반으로 파일을 분리한다.
|
||||
- 데이터: 게임 데이터는 코드 하드코딩 배열(`db/*.db.js`)로 관리한다.
|
||||
|
||||
## 네이밍 규칙
|
||||
- 파일명:
|
||||
- HTML: 화면 의미 중심 (`index.html`, `nsw-detail.html`)
|
||||
- 스크립트: 화면/도메인 단위 (`nsw.js`, `nsw-detail.js`)
|
||||
- 데이터: `*.db.js` 접미사 사용
|
||||
- 변수/함수:
|
||||
- `camelCase` 사용
|
||||
- 상태 객체는 의미가 드러나는 명칭 사용 (`filterState`)
|
||||
- 불리언 계열은 `is/has/can` 접두어 권장
|
||||
- 상수:
|
||||
- 변경 없는 매핑/사전형 데이터는 `const` 사용
|
||||
|
||||
## 코드 스타일
|
||||
- 들여쓰기: 공백 2칸
|
||||
- 세미콜론: 사용
|
||||
- 문자열: 기존 코드 흐름에 맞춰 작은따옴표 우선
|
||||
- DOM 접근:
|
||||
- 반복 접근 요소는 상단에서 캐싱
|
||||
- 이벤트 리스너는 기능별 초기화 함수로 묶어 관리
|
||||
|
||||
## 상태/로직 구성
|
||||
- 필터/정렬/언어 상태는 단일 상태 객체에서 관리한다.
|
||||
- 렌더링 파이프라인은 아래 순서를 유지한다.
|
||||
1) 데이터 포맷팅
|
||||
2) 필터링
|
||||
3) 정렬
|
||||
4) DOM 반영
|
||||
- 상세 페이지는 URL 쿼리(`no`)를 단일 진입점으로 사용한다.
|
||||
|
||||
## 문서/버전 규칙
|
||||
- 작업 후 `docs/update.md`, `docs/todo.md`, `docs/history.md`, `docs/map.md`, `docs/spec.md`, `docs/convention.md`를 최신화한다.
|
||||
- 커밋 메시지는 한국어로 작성한다.
|
||||
- 커밋 제목은 `버전명 + 요약` 형식으로 작성한다. (예: `v2026.03.30-03 레포지토리 재연결`)
|
||||
8
docs/history.md
Normal file
8
docs/history.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# 의사결정 이력
|
||||
|
||||
## 2026-03-30
|
||||
- 게임 목록 서비스의 기준 화면을 `index.html` + `nsw-detail.html` 2개로 단순화했다.
|
||||
- 데이터 저장소를 별도 API 없이 정적 파일(`db/nsw.db.js`)로 유지하여 배포 복잡도를 낮췄다.
|
||||
- 문서 체계를 `docs/` 하위 단일 세트(`update`, `todo`, `spec`, `convention`, `history`, `map`)로 정리했다.
|
||||
- 필터/정렬/언어 상태를 프론트 단일 상태 객체 기반으로 유지해 렌더링 흐름 일관성을 확보했다.
|
||||
- 원격 저장소의 HTTP 업로드 제한(413) 대응을 위해 `images/**`를 Git LFS 대상으로 관리하기로 결정했다.
|
||||
35
docs/map.md
Normal file
35
docs/map.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# 파일-화면 매핑 가이드
|
||||
|
||||
## 메인 목록 화면 (`/index.html`)
|
||||
- 담당 파일: `index.html`
|
||||
- 연결 스크립트: `script/nsw.js`
|
||||
- 데이터 소스: `db/nsw.db.js`
|
||||
- 주요 UI:
|
||||
- 언어 전환(한국어/일본어)
|
||||
- 검색 입력
|
||||
- 필터(언어 지원, 상태, 에디션, CERO)
|
||||
- 정렬 드롭다운
|
||||
- 게임 목록 테이블
|
||||
- 사용자 동작:
|
||||
- 목록 행 클릭 시 `nsw-detail.html?no={게임번호}`로 이동
|
||||
|
||||
## 상세 화면 (`/nsw-detail.html`)
|
||||
- 담당 파일: `nsw-detail.html`
|
||||
- 연결 스크립트: `script/nsw-detail.js`
|
||||
- 데이터 소스: `db/nsw.db.js`
|
||||
- 주요 UI:
|
||||
- 상단 대표 이미지
|
||||
- 게임 기본 정보(용량, 플레이 모드, 메이커, 언어, 등급, 출시일)
|
||||
- 구매 정보(구매일, 구매처, 가격, 주문번호, 추가 콘텐츠)
|
||||
- 사용자 동작:
|
||||
- URL의 `no` 값으로 게임을 조회
|
||||
- 해당 번호가 없으면 알림 후 목록 페이지로 리다이렉트
|
||||
|
||||
## 데이터 전용 파일
|
||||
- `db/nsw.db.js`: 닌텐도 스위치 게임 데이터 본문
|
||||
- `db/nsw-sale.db.js`: 세일 관련 데이터(현재 화면 연결 없음)
|
||||
- `db/amiibo.db.js`: 아미보 관련 데이터(현재 화면 연결 없음)
|
||||
|
||||
## 스타일/리소스
|
||||
- `style/tailwind.css`: 공통 스타일
|
||||
- `images/nsw/*`: 목록/상세 이미지 리소스
|
||||
68
docs/spec.md
Normal file
68
docs/spec.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# 기술 명세
|
||||
|
||||
## 프로젝트 개요
|
||||
- 목적: 보유 중인 닌텐도 스위치 게임 목록을 웹에서 조회, 필터링, 정렬, 상세 확인한다.
|
||||
- 형태: 정적 HTML + ES Module JavaScript 기반 단일 프론트엔드.
|
||||
- 빌드: Tailwind CSS CLI를 사용해 스타일 파일을 생성/관리한다.
|
||||
|
||||
## 화면/라우팅
|
||||
- 목록 화면: `index.html`
|
||||
- 주요 기능: 검색, 필터(언어/상태/국가/CERO), 정렬, 게임 개수 표시
|
||||
- 데이터 소스: `db/nsw.db.js`
|
||||
- 스크립트: `script/nsw.js`
|
||||
- 상세 화면: `nsw-detail.html`
|
||||
- 주요 기능: 게임 기본 정보/구매 정보 상세 표시
|
||||
- 진입 방식: `nsw-detail.html?no={gameNo}`
|
||||
- 데이터 소스: `db/nsw.db.js`
|
||||
- 스크립트: `script/nsw-detail.js`
|
||||
|
||||
## 데이터 구조
|
||||
- 파일: `db/nsw.db.js`
|
||||
- 형태: `export default []` 배열
|
||||
- 주요 필드:
|
||||
- `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): `package` | `download` | `expansion` | `sold`
|
||||
- `country` (string): `KOR` | `JPN`
|
||||
- `cero` (string|null): CERO 등급
|
||||
- `purchaseInformation` (object|null):
|
||||
- `date` (string|null)
|
||||
- `store` (string|null)
|
||||
- `purchase` (number|null)
|
||||
- `monetary` (string|null)
|
||||
- `orderNumber` (string|null)
|
||||
|
||||
## 필터/정렬 동작
|
||||
- 필터:
|
||||
- 언어 필터: 한국어 지원/미지원
|
||||
- 상태 필터: `status` + `extension` 보유 여부
|
||||
- 국가 필터: `country`
|
||||
- CERO 필터: `cero`
|
||||
- 정렬:
|
||||
- 순번 최신/과거
|
||||
- 발매일 최신/과거
|
||||
- 구매일 최신/과거
|
||||
- 무작위
|
||||
|
||||
## 스타일/에셋
|
||||
- 스타일 소스: `style/tailwind.css`
|
||||
- 이미지:
|
||||
- 목록/상세에서 `images/nsw` 하위 이미지를 참조
|
||||
- 데이터 레코드의 `image`, `thumbnail` 필드로 렌더링
|
||||
- 원격 업로드 용량 제한 대응을 위해 `images/**`는 Git LFS 관리 대상으로 지정한다.
|
||||
10
docs/todo.md
Normal file
10
docs/todo.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# 할 일 및 이슈
|
||||
|
||||
## 현재 이슈
|
||||
- 레거시 페이지/리소스(아미보, 세일 관련) 제거 후 문서와 실제 구조 정합성 점검이 필요하다.
|
||||
|
||||
## 다음 작업
|
||||
- 목록/상세 페이지의 경로 및 텍스트 다국어 키를 재검증한다.
|
||||
- 필터 조합(언어+상태+국가+CERO) 테스트 케이스를 작성한다.
|
||||
- 데이터 스키마 검증 스크립트를 추가해 누락 필드와 오탈자를 자동 확인한다.
|
||||
- 배포 전 체크리스트(이미지 누락, 링크 무결성, 콘솔 에러) 문서를 추가한다.
|
||||
26
docs/update.md
Normal file
26
docs/update.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# 작업 이력
|
||||
|
||||
## v2026.03.30-04
|
||||
- 커밋 제목 규칙 추가: `vYYYY.MM.DD-번호 내용`
|
||||
- `docs/convention.md` 커밋 제목 형식 가이드 반영
|
||||
|
||||
## v2026.03.30-03
|
||||
- `script/nsw-detail.js` 리다이렉트 경로 `nsw.html` → `index.html` 수정
|
||||
- `script/nsw.js` 디버그용 `console.log` 제거
|
||||
- `docs/todo.md` 현재 이슈 항목 정리
|
||||
|
||||
## v2026.03.30-02
|
||||
- 원격 푸시 `HTTP 413` 원인 확인(업로드 용량 제한)
|
||||
- `git-lfs` 설치 및 `images/**` LFS 트래킹 전환
|
||||
- LFS 운영 정책 반영: `docs/spec.md`, `docs/history.md`
|
||||
|
||||
## v2026.03.30-01
|
||||
- Git 재연결 및 원격 업로드 준비용 문서 기초 세트 복구
|
||||
- 현재 코드 구조 기준 문서 신규 작성
|
||||
- `docs/spec.md`
|
||||
- `docs/convention.md`
|
||||
- `docs/map.md`
|
||||
- `docs/history.md`
|
||||
- `docs/todo.md`
|
||||
- 프로젝트 핵심 기능(목록/상세, 필터/정렬, 데이터 구조) 문서 반영
|
||||
- 점검 필요 코드 이슈(`console.log`, 상세 경로) TODO 등록
|
||||
Reference in New Issue
Block a user