# 할 일 및 이슈 ## 현재 이슈 - `images/` 디렉터리가 약 `1.7G`까지 증가해 저장소 clone, fetch, checkout 비용이 커졌다. - 이미지 파일 수가 `9,000+` 단위라서 카드 추가 빈도가 올라갈수록 Git 객체 수와 히스토리 부담이 계속 누적될 가능성이 높다. - `script/navigation.js`에는 현재 프로젝트에 없는 페이지(`deckHistory.html`, `preset.html`, `myDatabase.html`)로 이동하는 코드가 남아 있다. - `cardList.html`과 `result.html` 내부 스크립트 비중이 커서 기능 확장 시 유지보수 난도가 올라갈 수 있다. - 데이터 파일 네이밍과 샘플 파일(`datas/ua99 sample.js`, `datas/ua99 sample mini.js`) 처리 기준이 문서상 명확하지 않았다. ## v4.0.0 구현 완료 항목 - [x] Docker API 서버 + DB (`users`, `decks` 테이블) - [x] 인증: 회원가입, 로그인, JWT, 헤더 프로필 드롭다운 - [x] 덱 API: 저장, 조회, 공유 코드 (`GET /api/v1/decks/:shareCode`) - [x] `cardList.html`: `?d=` API 로드, 저장·공유 버튼 - [x] `deckHistory.html`, `login.html`, `signup.html`, `preset.html` - [x] `admin.html`: 회원 목록·수정, 비밀번호 초기화 - [x] `index.html` 버전 `v4.0.0` ## v4 후속 작업 - [ ] NAS에 `docker compose -f docker-compose.prod.yml up -d` 배포 - [ ] `.env` 설정 및 기존 리버스 프록시 연동 - [ ] 옆 프로젝트에 `integrations/uadeck-deck-client.js` 적용 - [ ] `cardList.html` 인라인 스크립트 모듈 분리 - [ ] i18n 번역 키 추가 (auth, admin 문구) ## v4.0.0 최근 완료 - [x] `profile.html`: 일반 사용자 프로필 화면 (아바타·닉네임·이메일·비밀번호) - [x] 헤더 드롭다운「내 프로필」링크 - [x] 아바타 업로드 시 PNG 리사이즈 (`script/image-utils.js`) — JPEG 등 형식 깨짐 방지 - [x] 아바타 URL `updatedAt` 캐시 무효화 - [x] 내 덱 관리: `/d/코드` 경로 표시 제거 - [x] `result.html` 하단 버튼 개편 + 공개 확인 모달 + 홈 이동 - [x] 프로필·API: 덱 저장 공개 기본값 설정 ## 다음 작업 제안 - 원격 저장소에서 `Git LFS` 업로드가 정상 완료되었는지 확인한다. - 협업자가 있다면 히스토리 재작성 이후 동기화 방법을 공지한다. - `Git LFS` 도입 후에도 저장소 운영 비용이 크면 이미지 저장소 분리/CDN 이전을 재검토한다. - `cardList.html`의 인라인 스크립트를 별도 JS 모듈로 분리하는 리팩터링을 검토한다. ## 판단 가이드 - 신규 이미지 추가 관리가 목적이면 `Git LFS` 추적만으로도 충분하다. - 기존 clone 크기까지 줄이는 것이 목적이면 `Git LFS` 히스토리 마이그레이션 또는 자산 저장소 분리가 필요하다.