Express/SQLite API와 Docker 구성을 추가하고 로그인·덱 저장·공개 덱·관리자·프로필 화면을 구현했다. 결과 화면 저장 UX, 헤더 프로필, 애드센스용 app-shell 레이아웃(1280px) 및 문서를 반영했다. Co-authored-by: Cursor <cursoragent@cursor.com>
2.7 KiB
2.7 KiB
할 일 및 이슈
현재 이슈
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 구현 완료 항목
- Docker API 서버 + DB (
users,decks테이블) - 인증: 회원가입, 로그인, JWT, 헤더 프로필 드롭다운
- 덱 API: 저장, 조회, 공유 코드 (
GET /api/v1/decks/:shareCode) cardList.html:?d=API 로드, 저장·공유 버튼deckHistory.html,login.html,signup.html,preset.htmladmin.html: 회원 목록·수정, 비밀번호 초기화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 최근 완료
profile.html: 일반 사용자 프로필 화면 (아바타·닉네임·이메일·비밀번호)- 헤더 드롭다운「내 프로필」링크
- 아바타 업로드 시 PNG 리사이즈 (
script/image-utils.js) — JPEG 등 형식 깨짐 방지 - 아바타 URL
updatedAt캐시 무효화 - 내 덱 관리:
/d/코드경로 표시 제거 result.html하단 버튼 개편 + 공개 확인 모달 + 홈 이동- 프로필·API: 덱 저장 공개 기본값 설정
다음 작업 제안
- 원격 저장소에서
Git LFS업로드가 정상 완료되었는지 확인한다. - 협업자가 있다면 히스토리 재작성 이후 동기화 방법을 공지한다.
Git LFS도입 후에도 저장소 운영 비용이 크면 이미지 저장소 분리/CDN 이전을 재검토한다.cardList.html의 인라인 스크립트를 별도 JS 모듈로 분리하는 리팩터링을 검토한다.
판단 가이드
- 신규 이미지 추가 관리가 목적이면
Git LFS추적만으로도 충분하다. - 기존 clone 크기까지 줄이는 것이 목적이면
Git LFS히스토리 마이그레이션 또는 자산 저장소 분리가 필요하다.