하루 요약: 보드 Active 없음 확인 후 design-guide-v03 검수 완료분 반영 — UI Lab v03(수채 로또볼·대시보드 다듬기) 커밋, /dashboard React 임베드 재발행, 로또볼 UI 복수 운용 정책 확정. Thymeleaf v03 스킨은 페이지 옵트인 구조로 확정·롤아웃 가이드 문서화.
1. 오늘 목표
Planet645 (UI Lab)
개발 운영
2. 주요 변경 사항
2.1 보드 상태 정리
| 항목 |
내용 |
| Active |
없음 |
| 다음 실행 우선순위 |
FEAT-MY-NUMBER-EVAL-01 (executionOrder 272) |
| 그 다음 |
CHARACTER-COPY-PRD-01 (295) → CHARACTER-THYMELEAF-01 (296) → CHARACTER-LLM-TONE-01 |
| 로드맵 포커스 |
캐릭터 IP 적용 · React Lab promote 완료 후 Thymeleaf 이식 |
2.2 design-guide-v03 대시보드 반영 (Planet645)
| 항목 |
내용 |
| UI Lab v03 작업 커밋 |
LottoBallShell 색연필 해칭 → 수채 텍스처(soft-light) 채색, 로또볼 토큰 동행복권 공식 구간색 재매핑, 대시보드 통계 카드 긴 값 폰트 축소, RecommendSelectPage 신규(라우트 전환 전 dormant), entry-target 게이트 완화(온보딩 완료 시 mirror 페이지 허용) |
| 임베드 재발행 |
npm run build:spring → static/planet645-react/ 갱신 (/dashboard는 React 임베드로 서빙) |
| 검수 범위 |
/dashboard 검수 완료분 기준. 임베드는 단일 번들이라 랜딩·평가·추천결과 페이지도 v03 토큰·아이콘 변경이 함께 반영됨 |
2.3 로또볼 UI 복수 운용 정책 (Planet645)
| 볼 UI |
위치 |
상태 |
신규 수채 볼 (p645-lotto-ball, SVG 쉘) |
React 임베드 — /dashboard 등 |
이번 반영으로 적용 |
기존 단색 볼 (.lotto-number, fragments/lotto-ball.html) |
SSR 템플릿 6종 (recommend·evaluate 등) |
변경 없이 유지 |
- 클래스 네임스페이스가
lotto-* vs p645-lotto-ball*로 분리되어 충돌 없이 공존.
- 페이지별 전환·롤백은 프래그먼트/컴포넌트 교체 한 줄로 가능.
2.4 Thymeleaf v03 스킨 — 페이지 옵트인 구조로 확정 (Planet645)
- 전역 스킨이 “한 페이지씩 검수 → 통과분만 병합” 컨셉과 충돌(검수 단위 ≠ 병합 단위) → 옵트인 구조로 리팩터링 후 커밋.
- 레이아웃 4종의 전역
<link> 제거 — 스킨은 검수 통과한 페이지 <head>에 링크 1줄로만 적용(롤백 = 1줄 제거). Gaegu 폰트는 스킨 CSS가 @import.
.lotto-number color-mix 워시 오버라이드 삭제 — “기존 로또볼 유지” 정책 확정. 워시 톤은 추후 새 변형 클래스(.lotto-number--wash)로.
- 병합 판단 기준 4가지(변경 반경·검수=병합 단위·롤백 비용·가산적 변경)와 페이지별 체크리스트를
artifact/design/ui/v03-skin-rollout.md로 문서화.
- 커밋 직후 기준 스킨 적용 페이지 0개 — 기존 SSR 렌더링 영향 없음.
2.5 누적 상태
UI-REACT-PROMOTE-01 아카이브 완료 (2026-06-04)
- 디자인 컨셉 v03 (
design-guide-v03.html) 공개 (2026-06-05)
FEAT-MY-NUMBER-EVAL-01 M3(OCR 272) 백로그 대기 중
3. 문제와 해결
3.1 /dashboard 반영 경로 착오
| 구분 |
내용 |
| 문제 |
로또볼 공존을 Thymeleaf 프래그먼트(ballKit) 추가로 계획 — SSR content/main/dashboard.html 기준 |
| 원인 |
/dashboard는 MainController가 forward:/planet645-react/index.html로 React 임베드 서빙 중 (UI-REACT-PROMOTE-01 이후). SSR 대시보드 템플릿은 현재 미라우팅 |
| 해결 |
반영 경로를 npm run build:spring 임베드 재발행으로 수정. ballKit 프래그먼트는 추가하지 않음 — Thymeleaf 이식(CHARACTER-THYMELEAF-01) 단계에서 필요 시 도입 |
3.2 /recommend/select React 전환 보류 (Planet645)
| 구분 |
내용 |
| 문제 |
React RecommendSelectPage 시각 검수 통과 → 라우트 전환 요청. 그러나 페이지가 어떤 POST도 하지 않음 — 푸터에 “추천 실행(크레딧 차감, POST /recommend/execute)·문구 시드는 Lab 미연결” 명시, 실행 버튼은 결과 화면으로 이동만 |
| 원인 |
POST /recommend/execute는 세션 SESSION_RECOMMEND_INPUT(POST /select/input이 저장) 의존. 지금 GET /recommend/select를 forward로 바꾸면 입력 저장·실행 경로가 끊겨 추천·크레딧 차감 기능 회귀 + 푸터의 “본 앱 추천 받기” 링크 자기참조 루프 |
| 해결(결정) |
전환 보류, SSR 위저드 유지. 실행 연결 작업을 보드 UI-REACT-SELECT-WIRING-01(292)로 등록 — evaluate 페이지의 기존 패턴(CSRF 메타 API + SSR 엔드포인트 form POST) 재사용 계획 포함. 병합 기준 “기능 동작” 항목(§2.4 가이드) 적용 사례 |
4. 배운 점
(해당 없음)
5. 다음 액션
5.1 미완
Planet645
개발 운영
5.2 완료 (인덱스)
| 항목 |
§ |
| 보드 상태 확인 |
§2.1 |
| 대시보드 v03 임베드 반영 |
§2.2 |
| 로또볼 UI 복수 운용 정책 |
§2.3 |
| v03 스킨 옵트인 구조 확정·롤아웃 가이드 |
§2.4 |
6. 기준
Comments