46 lines
3.7 KiB
Markdown
46 lines
3.7 KiB
Markdown
# 2026-07-01 game-register.jsp 리디자인 누락분 보강
|
|
|
|
**세션**: `/atp:task` — `frontend-design` 스킬 경유
|
|
**브랜치**: feat/v2
|
|
|
|
## 배경
|
|
|
|
`/game/new`(신규 게임 등록, `game-register.jsp`)가 2026-06-30 9단위 리디자인([2026-06-30-visual-redesign-bibimbap-css.md](./2026-06-30-visual-redesign-bibimbap-css.md)) 목록에서 빠져 있었다는 사용자 지적으로 발견. 실사용 로그인 스샷으로 대조한 결과 카드 레이아웃·사이드 미리보기·색상 토큰(accent `#e8a54b` 등)은 이미 sibling 페이지(`recruit-form.jsp` 등)와 일치했다 — 즉 시각적으로 크게 뒤처진 상태는 아니었고, 누락은 주로 **추적 문서의 공백**이었다.
|
|
|
|
## 변경 내용
|
|
|
|
`game-register.jsp` 1파일, 마크업·CSS 추가만 (신규 파일 0):
|
|
|
|
- 필수 입력 표시(`*`) 추가 — 게임 이름(항상), WebGL zip(`editMode`가 아닐 때만, 수정 시엔 zip 선택이 선택사항이라는 기존 로직 반영)
|
|
- 미리보기 패널에 "미리보기" eyebrow 라벨 추가 (`aria-label`은 기존에도 있었으나 시각적 라벨이 없었음)
|
|
- 두 항목 모두 `recruit-form.jsp`의 `.rf-req` / `.rf-preview__label` 패턴을 클래스명만 `.game-req` / `.game-preview__label`로 바꿔 그대로 재사용 — 새 디자인 언어 도입 없음
|
|
|
|
**로컬 CSS 변수 정리는 범위 제외**: `game-register.jsp`가 쓰는 `--surface/--accent/--text` 등은 `bibimbap.css`(`--color-*` 네이밍)와 다른 변수라 대체가 안 되고, 이 로컬 토큰 관례는 `recruit-form.jsp`·`game-detail.jsp` 등 이미 리디자인된 sibling 페이지도 동일하게 갖고 있는 의도적 패턴([analysis/2026-06-30-frontend-component-review.md](../analysis/2026-06-30-frontend-component-review.md) P0 "CSS 토큰 23개 파일 중복"). 이 파일만 단독 전환하면 sibling과 관례가 갈라지므로, 전지역 통합은 별도 세션으로 이월.
|
|
|
|
## 재발방지
|
|
|
|
`docs/development/frontend-redesign-coverage-checklist.md` 신설 — 뷰 파일(fragment 제외 23개) 전수 대비 리디자인 반영 상태를 표로 추적. `docs/development/workflow-patterns.md`에 "'전 페이지 반영' 서술은 실제 파일 전수와 대조 필요" 패턴 등재.
|
|
|
|
## 검증 결과
|
|
|
|
| 레벨 | 결과 |
|
|
|---|---|
|
|
| L1 | `docker compose exec app mvn -o test` — 362/362 PASS |
|
|
| L1 | 정적 grep `<%@ taglib` — 0건(stray taglib 없음) |
|
|
| L2 | 로그인(`admin@bibimbap.local`) 후 `/game/new` 육안 확인 — 필수(*) 2건 + "미리보기" 라벨 렌더 확인, 라이트/다크 양 테마 |
|
|
| known pitfall | JSP 저장 즉시반영 불신 원칙 적용 — `docker compose restart app` 후 재대조로 stale 렌더링 배제 |
|
|
|
|
## needs_user_verification
|
|
|
|
- WebGL zip 실제 업로드 → 등록 제출 전체 플로우(파일 업로드 API 호출 포함) 회귀 확인 — 이번 변경은 마크업/CSS만이라 로직 영향 없음으로 판단하나 실제 제출은 미실행.
|
|
|
|
## 추가 검증 (edit-mode)
|
|
|
|
`editMode=true` 경로 확인 완료 — admin(`user_id=9`) 소유 임시 게임 row를 dev DB에 직접 삽입(`INSERT ... games`, `is_visible=false`)해 `/game/8/edit` 방문 후 육안 확인, 확인 후 즉시 `DELETE`로 원복(잔존 0건, `select count(*) from games where user_id=9` → 0). 결과: "게임 이름 *"는 유지(항상 필수), "WebGL zip"은 `*` 미표시(기존 WebGL 유지 문구와 함께 비필수로 정상 렌더) — 코드 로직(`<% if (!editMode) %>`)과 일치.
|
|
|
|
## 관련 문서
|
|
|
|
- [2026-06-30-visual-redesign-bibimbap-css.md](./2026-06-30-visual-redesign-bibimbap-css.md)
|
|
- [../development/frontend-redesign-coverage-checklist.md](../development/frontend-redesign-coverage-checklist.md)
|
|
- [../development/workflow-patterns.md](../development/workflow-patterns.md)
|