- 내 덱·공개 덱 목록을 무한 스크롤로 전환(공용 페이저 모듈 추가) - 즐겨찾기 토글 시 카드만 in-place 갱신해 스크롤 위치 유지 - 저장 시 420px WebP 썸네일 생성·전송, 목록은 썸네일 우선 사용 - 삭제·미참조 정리에서 원본 PNG와 썸네일 함께 처리 Co-authored-by: Cursor <cursoragent@cursor.com>
198 lines
3.4 KiB
Markdown
198 lines
3.4 KiB
Markdown
# 파일-기능 지도
|
|
|
|
## 화면
|
|
|
|
```text
|
|
/
|
|
index.html
|
|
|
|
/cardList.html
|
|
cardList.html
|
|
|
|
/result.html
|
|
result.html
|
|
|
|
/login.html
|
|
login.html
|
|
|
|
/signup.html
|
|
signup.html
|
|
|
|
/verify-email.html
|
|
verify-email.html
|
|
|
|
/forgot-password.html
|
|
forgot-password.html
|
|
|
|
/reset-password.html
|
|
reset-password.html
|
|
|
|
/profile.html
|
|
profile.html
|
|
|
|
/deckHistory.html
|
|
deckHistory.html
|
|
|
|
/preset.html
|
|
preset.html
|
|
|
|
/admin.html
|
|
admin.html
|
|
|
|
/d/<shareCode>
|
|
nginx/default.conf
|
|
nginx/uadeck.conf
|
|
```
|
|
|
|
## 프론트 공통 모듈
|
|
|
|
```text
|
|
API 요청
|
|
script/api.js
|
|
|
|
인증 폼 로딩·중복 제출 잠금·메일 재요청 대기
|
|
script/auth-form.js
|
|
|
|
인증 헤더
|
|
script/auth-header.js
|
|
style/components.css (@layer components)
|
|
|
|
페이지 공통 레이아웃·덱 카드·프로필·광고 레일
|
|
style/components.css
|
|
|
|
Tailwind 빌드 진입점
|
|
style/input.css
|
|
style/output.css
|
|
|
|
브랜드 로고 규격
|
|
style/brand.css
|
|
|
|
페이지 번역
|
|
script/page-i18n.js
|
|
i18n/translations.ko.json
|
|
i18n/translations.ja.json
|
|
i18n/translations.en.json
|
|
|
|
페이지 도움말
|
|
script/page-help.js
|
|
|
|
덱 공개 기본값
|
|
script/deck-prefs.js
|
|
|
|
덱 즐겨찾기
|
|
script/deck-favorites.js
|
|
|
|
계정 즐겨찾기 DB·API
|
|
api/src/db.js
|
|
api/src/routes/decks.js
|
|
|
|
덱 썸네일 확대
|
|
script/deck-preview-hold.js
|
|
|
|
덱 목록 무한 스크롤 페이저
|
|
script/deck-list-pager.js
|
|
|
|
이미지 PNG 변환
|
|
script/image-utils.js
|
|
|
|
광고 초기화
|
|
script/ads.js
|
|
```
|
|
|
|
## 페이지 전용 스타일
|
|
|
|
```text
|
|
관리자·로그인·회원가입
|
|
admin.html (회원 2열·역할 변경·이메일 승인·회원 탈퇴·덱 복수 선택 삭제), login.html (로그인 유지·미인증 메일 재발송·비밀번호 찾기), signup.html — Tailwind 유틸리티
|
|
|
|
내 덱·공개 덱·프로필
|
|
deckHistory.html, preset.html, profile.html (프로필 최하단 회원 탈퇴 모달) — HTML 클래스 + components.css
|
|
|
|
Tailwind 입력·산출물
|
|
style/input.css
|
|
style/output.css
|
|
```
|
|
|
|
## API
|
|
|
|
```text
|
|
서버 진입·헬스 체크
|
|
api/src/index.js
|
|
|
|
SQLite 스키마·관리자 시드
|
|
api/src/db.js
|
|
|
|
계정별 월간 이메일 발송 기록
|
|
api/src/db.js (`email_send_logs`)
|
|
|
|
계정 삭제 후 사용자명 재사용 회귀 테스트
|
|
api/test/account-deletion.test.js
|
|
|
|
회원 탈퇴·개인 데이터 삭제·덱 익명 보존
|
|
api/src/services/accountDeletion.js
|
|
|
|
JWT 인증·권한
|
|
api/src/middleware/auth.js
|
|
|
|
회원가입·이메일 인증·비밀번호 재설정·로그인·프로필·인증 세션 접속 시각 갱신
|
|
api/src/routes/auth.js
|
|
|
|
Resend 인증·비밀번호 재설정 메일
|
|
api/src/services/emailService.js
|
|
|
|
덱 저장·조회·공개 목록
|
|
api/src/routes/decks.js
|
|
|
|
회원·이메일 인증 승인·회원 탈퇴·덱 일괄 삭제 관리자 API
|
|
api/src/routes/admin.js
|
|
|
|
카드 메타 합성
|
|
api/src/services/cardResolver.js
|
|
|
|
아바타 저장
|
|
api/src/services/avatarImage.js
|
|
|
|
덱 미리보기 저장
|
|
api/src/services/previewImage.js
|
|
|
|
미참조 덱 미리보기 조회·정리
|
|
api/src/routes/admin.js
|
|
api/src/services/previewImage.js
|
|
```
|
|
|
|
## 데이터·자산
|
|
|
|
```text
|
|
카드 데이터
|
|
datas/uaXX.js
|
|
datas/uapr.js
|
|
|
|
카드 이미지
|
|
images/<seriesKey>/
|
|
|
|
브랜드·파비콘
|
|
images/assets/
|
|
favicon.ico
|
|
```
|
|
|
|
## 운영·외부 연동
|
|
|
|
```text
|
|
API 단독 Compose
|
|
docker-compose.yml
|
|
|
|
Nginx + API Compose
|
|
docker-compose.prod.yml
|
|
|
|
Nginx 이미지
|
|
nginx/Dockerfile
|
|
nginx/default.conf
|
|
|
|
외부 덱 API 클라이언트
|
|
integrations/uadeck-deck-client.js
|
|
|
|
외부 연동 문서
|
|
docs/api-integration.md
|
|
docs/widget.md
|
|
```
|