v4.0.0: 덱 UX·i18n·썸네일 저장 개선 및 413 수정

즐겨찾기·홀드 미리보기·페이지 도움말·3개국어 번역을 추가하고, 덱 저장 시 썸네일을 1200px로 통일하며 Nginx/API 업로드 제한을 상향했다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-22 18:50:08 +09:00
parent dbf02241e2
commit 2ecf6201c0
29 changed files with 2195 additions and 326 deletions

View File

@@ -1,5 +1,85 @@
# 업데이트 이력
## 2026-06-19 / v4.0.0 — 덱 썸네일 미리보기·저장 크기 통일
### 수행 작업
- `deckHistory.html`: `deck-preview-hold.js` 연동 — 내 덱 썸네일도 클릭·길게 눌러 확대
- `preset.html`: 썸네일 위「클릭·길게 눌러…」안내 문구 제거 (홀드 기능 유지)
- `result.html`: 저장용 미리보기를 다운로드와 동일한 **1200px** 기준으로 정규화 (`normalizePreviewForSave`)
- 저장 시 HQ 옵션 무시 (`highQuality: false`) 후 너비 1200px로 스케일
- 기존 960px 축소만 하던 `compressPreviewForSave` 제거 → 크기 제각각이던 원인 해소
- `style/deck-history.css`: 미사용 `.deck-card-preview-hint` 제거
### 참고
- 이미 저장된 덱 썸네일은 예전 크기 그대로이며, Preview에서 **다시 저장**하면 1200px로 갱신됨
## 2026-06-19 / v4.0.0 — 덱 저장 413 수정
### 원인
- `localhost:8080` 요청은 Nginx(`client_max_body_size 2m`)를 거침
- 덱 저장 시 미리보기 PNG(base64)가 JSON에 포함되어 2MB 초과 → **413 Request Entity Too Large**
### 수행 작업
- `nginx/default.conf`: `client_max_body_size` 2m → **25m** (API location 포함)
- `api/src/index.js`: JSON limit 20mb, 413 전용 오류 메시지
- `script/api.js`: 413 사용자 안내 문구
- `result.html`: 저장용 미리보기 최대 너비 960px 리사이즈
### 적용
```bash
npm stop && npm start
```
## 2026-06-19 / v4.0.0 — 공개 덱 미리보기 수정
### 수행 작업
- `deck-preview-hold.js`: mouseleave 즉시 닫힘 버그 수정, 클릭 고정·길게 누르기 동시 지원
- ~~안내 문구:「클릭·길게 눌러 크게 보기」~~ → 이후 제거됨
## 2026-06-19 / v4.0.0 — 프로필 덱 저장 설정 UI
### 수행 작업
- 덱 저장 설정: 설명 문단 제거 → `?` 툴팁, 설정 패널·토글 ON/OFF 표시·즉시 저장 안내 메시지
- 토글 클릭 시 API/localStorage 동기화는 기존 `deck-prefs.js` 유지
## 2026-06-19 / v4.0.0 — 메인 프로필 i18n·페이지 도움말
### 수행 작업
- `index.html`: `page-i18n.js` 로드, 언어 전환 시 `UaPageI18n` + `UaDeckAuth.refresh()`로 프로필 드롭다운 재번역
- `script/page-help.js`: 제목 옆 `?` 버튼 클릭 시 설명 툴팁
- `deckHistory.html`, `preset.html`, `profile.html`: 상단 설명 `<p>` 제거 → `?` 도움말 버튼
- `style/app-shell.css`: `.page-title-row`, `.page-help-btn`, `.page-help-tooltip`
## 2026-06-19 / v4.0.0 — 덱 즐겨찾기·공개 덱 미리보기
### 수행 작업
- `script/deck-favorites.js`: share_code 기준 즐겨찾기 (localStorage)
- `script/deck-preview-hold.js`: 썸네일 길게 누르기 확대 미리보기
- `deckHistory.html`: 카드 하단 즐겨찾기 버튼, 툴바「즐겨찾기」필터
- `preset.html`: 카드 클릭 이동 제거 → 홀드 미리보기 + 하단「즐겨찾기」「불러오기」버튼
- `style/deck-history.css`: 즐겨찾기·홀드 오버레이 스타일
- i18n: `deckFavorite`, `deckFavoriteFilter`, `deckHoldPreviewHint`
### 메모
- 즐겨찾기는 브라우저 localStorage에 저장 (기기·브라우저별). 추후 계정 동기화 API 확장 가능.
## 2026-06-19 / v4.0.0 — AdSense·i18n 보완
### 수행 작업
- Google AdSense 우측 슬롯(`4260332296`) 삽입: `deckHistory.html`, `preset.html`, `profile.html` `#ad-sidebar`
- `script/ads.js`: `ins.adsbygoogle` 초기화 헬퍼
- `script/page-i18n.js`: `data-i18n` / `data-i18n-html` / `data-i18n-placeholder` + `UaPageI18n.t()` 헬퍼
- `script/auth-header.js`: 드롭다운 메뉴 3개국어(ko/en/ja)
- `login.html`, `signup.html`, `profile.html`, `deckHistory.html`, `preset.html` 정적 문구 i18n 연결
- `cardList.html`: `← 홈` 버튼 `homeNav` 키 적용
- `result.html`: 저장 모달·로딩 확인·홈 버튼 기존 `applyTranslationsToUI` 유지, `page-i18n`으로 헤더 메뉴 번역
- `deckHistory.html` / `preset.html`: 목록·버튼·확인 대화상자 동적 문구 i18n
- `i18n/translations.{ko,en,ja}.json`: auth·덱 관리·프로필·공개 덱 관련 키 추가
### 확인
- `?lang=en` 또는 `?lang=ja` 로 각 페이지 문구 전환 확인
- AdSense는 로컬/비승인 도메인에서는 빈 슬롯으로 보일 수 있음
## 2026-06-19 / v4.0.0
### 수행 작업
@@ -92,6 +172,13 @@
- 프로필 폼은 콘텐츠 영역 내 `max-width: 42rem` 유지
- `auth-pages.css`, `admin.css` 너비도 80rem으로 통일
### 후속 UI
- `result.html` 저장 모달 토글: Tailwind `translate-x-6` 미빌드 → 전용 `.save-deck-switch` CSS
- `result.html` 하단 버튼 비율: 홈 0.5 · 다운로드 0.5 · 내 덱 저장 2
- `result.html` 덱 저장: 브라우저 alert 제거 → 로딩 모달 완료 메시지 후 홈 이동
- `signup.html`: 비밀번호 확인 필드, 가입 후 홈(`/`) 이동
- `cardList.html`: 동일 카드 번호(패러랠 포함) 수량 공유 시 +/- 버튼 UI 동기화
## 2026-06-19 / v4.0.0 — 덱 썸네일 수정
### 수행 작업