← 목록
기타 2026-07-12 6KB 읽기 6분

crowny-class 모바일 UX 5건 재검증 (라이브 실측)

개요

class.crowny.org(:9864) 모바일 UX 5건 수정 보고를 라이브 서버에서 재캡처·재구동해 실제로 해결됐는지 재검증. 정적파일이라 서버 재기동 없이 진행. 헤드리스 크롬(CDP raw websocket) + 실 API 호출(테스트 계정 생성→수강→과제→좋아요→진도)로 5건 전부 실측 확인.

판정 요약 (5건 전부 해결)

#항목판정근거
P0-1모바일 배너 세로 한글자스택 → 가로 정상해결390px 헤드리스 캡처, .trial-banner flex-wrap 정상 렌더 확인
P1-1하단 내비(class/join/community)해결3파일 grep 3/3 + 모바일 캡처 3장 노출 확인
P1-2커뮤니티 좋아요 카운트 반영해결테스트계정으로 실제 좋아요 API 호출 → GET works?week=0 likeCount 0→1 반영, community.html ♥ 1 렌더 확인
P1-3관리자 대시보드 주차별진도 [object Object]/NaN해결실제 진도 데이터 생성(605초 완료+120초 미완료) → /api/admin/dashboard 정상 객체, admin.html 렌더 "오리엔테이션 1/2 평균 6분 03초" 정상(오염 없음)
P0-2무통장 계좌 빈값 시 graceful 표시해결.env에 실계좌 이미 채워져 있어 API로는 빈값 재현 불가 → fetch 목업으로 join.html 실제 렌더 코드(bankField()) 직접 구동, 빈 은행/계좌/예금주 모두 "확정 후 안내됩니다" 정상 출력

무엇을 했는지

  1. 서비스 식별: crowny-academy가 아니라 /Users/ef/crowny-class(포트 9864, class.crowny.org)임을 프로세스 cwd로 확인.
  2. 헤드리스 크롬(--headless=new --remote-debugging-port=9333)을 CDP raw websocket으로 구동해 스크린샷·DOM eval 자동화.
  3. 실 API로 QA 테스트 계정 생성 → 무통장 신청 → admin confirm-deposit → active 전환 → /api/community/works 과제 등록(week=0) → 좋아요 → /api/video/progress 진도 기록 2건(605초 완료·120초 미완료) → 대시보드/커뮤니티 라이브 렌더 재확인.
  4. join.html은 .env에 실제 은행정보(카카오뱅크 등)가 이미 채워져 있어 API 응답으로 빈 상태를 재현할 수 없었음 → window.fetch를 페이지 내 스크립트로 오버라이드해 /api/enroll/apply 응답만 빈 bank/account/holder로 모킹, 실제 프로덕션 코드(bankField() + innerHTML 템플릿)를 그대로 구동시켜 검증(서버·.env 미접촉).
  5. 디자인 토큰/class-type.css 일관성 회귀: --bg:#FAF9F7 9/9, class-type.css 링크 9/9, data-crowny 9/9 — 전부 유지.
  6. 생성한 테스트데이터 전량 정리: 과제 1건, 진도 2건, 수강 1건, 입금 1건, 회원 1건 삭제 → /api/admin/dashboard 수강생수 0·과제수 0·주차별진도 {}, /api/enroll/status remaining 150/150 확인(정원 원상 복구).

수집된 부수 발견 (5건 범위 밖, 별도 조치 필요)

  • modules/community/routes.js postWork() falsy-zero 버그: week: body.week || nullweek:0(오리엔테이션) 전송 시 0 || nullnull로 저장되어 GET works?week=0 필터에 걸리지 않음. week 0 과제(가장 중요한 무료체험 주차)가 커뮤니티에 절대 노출되지 않는 실사용 버그. 재검증 중 발견, 테스트 데이터는 직접 JSON 패치로 우회해 검증 완료했으나 코드 자체는 미수정 — 다음 세션에서 body.week != null ? body.week : null 또는 Number.isFinite(body.week) ? body.week : null로 수정 필요.
  • 입금 대기 1건 잔존(내 생성분 아님): 데이터/입금/mrhgdmj3j96n.json (owner 3dd4dab3..., depositor "홍길동", createdAt 07:09) — 대응하는 수강 레코드가 없는 고아 데이터로, 이전 세션의 테스트 잔재로 추정. 이번 세션 생성분이 아니라 정리 대상에서 제외했으나 대시보드 "대기입금:1" 카운트를 오염시키고 있음.

관련 파일

  • /Users/ef/crowny-class/public/class.html — 배너(P0-1)·bottom-nav(P1-1)
  • /Users/ef/crowny-class/public/join.html — bottom-nav(P1-1)·계좌 graceful(P0-2, bankField() L268)
  • /Users/ef/crowny-class/public/community.html — bottom-nav(P1-1)·좋아요 렌더(P1-2, L204/214)
  • /Users/ef/crowny-class/public/admin.html — 주차별진도 렌더(P1-3)
  • /Users/ef/crowny-class/modules/community/routes.js — 좋아요 API(L211-232), week falsy-zero 버그(L183)
  • /Users/ef/crowny-class/modules/admin/routes.js — computeDashboard()(L94-138)
  • /Users/ef/crowny-class/한선씨/프론트카피.한선 — 계좌문구 동반(기존)
  • /Users/ef/crowny-class/한선씨/관리판정.한선 — 대시보드 판정 동반(기존)
  • 캡처/증빙: /private/tmp/claude-501/-Users-ef/f9b12166-e530-4008-96c1-e83df68283e2/scratchpad/classqa/fix2/
  • m-class-banner-bottom-crop.png(P0-1), m-join-nav.png·m-community-like.png(P1-1), m-community-like.png(P1-2 ♥1), d-admin-dashboard.png(P1-3), m-join-bankfallback.png(P0-2)
  • capture2.py(CDP 캡처 스크립트) + capture2.한선(5건 4상 판정 동반, crownyc run 검증 완료 — "종합: 전체해결")
  • 잔여 이슈

    • postWork week=0 falsy 버그 수정 필요(위 부수발견 참조).
    • 고아 입금 레코드 mrhgdmj3j96n 정리 여부는 소유 세션 판단 필요(이번 세션 생성분 아님).
    • 크라우니코드: lookup MISS 1건(CDP 헤드리스 캡처 패턴 신규) / learn add 1건(class재검증5건4상판정).