← 목록
기타 2026-06-21 6KB 읽기 7분

play.crowny.org 귀속 + GUI 크라우니화

개요

play.crowny.org(:7760, 크라우니플레이)를 crowny.org(:9852, 크라우니AI 허브) 안에 귀속.
  • 귀속의 정의(사용자 확정): 랜딩페이지는 play.crowny.org에 크라우니 디자인으로 개선해 유지, 실제 기능(인기공연/통계/문화/티켓/포네)은 crowny.org GUI(대시보드) 안에서 작동.
  • 기존 확립 컨벤션(cloud/wallet/tiomta 위젯 배선)을 그대로 미러링.

무엇을 했는지

1) 기능 귀속 — crowny.org GUI 안에서 작동

  • crowny-ai/server.js /api/play/* same-origin 프록시 라이브 결선(추가형, 백업 server.js.bak.play_*, node --check 통과, launchctl kickstart 재기동).
  • 경로매핑: hot→/api/recommend/hot, status→/api/status, fresh→/api/events/fresh, lifecycle/genre/insights, 그 외 1:1.
  • 공개(hot/status/fresh)는 통과, 인증경로는 authorization·x-crowny-owner 헤더 위임.
  • crowny-ai/engine/play-connect.js — play:7760 프록시 + 위젯 헬퍼(fetchHot/fetchStatus, 부킹 4상 판정).
  • crowny-ai/public/widget-play.js — 독립 임베드 위젯(#crowny-play-widget), 인기공연 카드.
  • crowny-ai/public/dashboard.html + dashboard.js — 대시보드에 "크라우니플레이" 위젯 추가(loadPlay()), refreshAll·비로그인 분기 결선. 비로그인도 공개 인기공연 표시.
  • 2) GUI 크라우니화 — play 랜딩 리테마

    • crowny-play/public/css/landing.css — 보라(#8b5cf6) 팔레트 → 크라우니 골드/다크(#C9A961 / #0A0908 / #161410) 통일. :root 토큰 + 하드코딩 rgba(139,92,246)·(192,132,252) 전량 골드(201,169,97) 치환. Pretendard Variable.
    • crowny-play/public/index.html — 히어로 CTA·nav 버튼을 crowny.org/dashboard로, "crowny.org 안에서 동작" 안내 추가. 생태계 섹션에 crowny.org 허브 카드 신설(👑), 인라인 보라/앰버 → 골드.

    3) 한선씨 동반 + 학습

    • crowny-ai/플레이연결.한선 — owner매핑/업스트림경로/부킹4상(Ti예매중·Om예정·Ta마감·Um미정)/가격포맷. hanseonc_high+crownyc run 검증(6케이스 전부 정확).
    • crownycode-learn 플레이연결 학습 완료.
    • 런북 crowny-ai/배선-플레이.md — server.js 무접촉 결선 명세(이번엔 라이브 적용까지 완료).

    관련 파일

    • /Users/ef/crowny-ai/server.js (/api/play/* 프록시, 555행 cloud 블록 다음)
    • /Users/ef/crowny-ai/engine/play-connect.js
    • /Users/ef/crowny-ai/public/widget-play.js
    • /Users/ef/crowny-ai/public/dashboard.html, dashboard.js
    • /Users/ef/crowny-ai/플레이연결.한선, 배선-플레이.md
    • /Users/ef/crowny-play/public/index.html, public/css/landing.css

    검증 (라이브)

    • curl :9852/api/play/status → events 1173
    • curl :9852/api/play/hot?limit=3 → 인천 펜타포트 등 라이브
    • :9852/dashboard → 크라우니플레이 위젯 마운트, widget-play.js HTTP 200
    • :7760/css/landing.css → 골드 팔레트 서빙, 랜딩 HTML 귀속 안내 서빙
    • crowny.org /api/health HTTP 200 (재기동 후 정상)

    잔여 이슈

    • play SPA(crowny-play/public/app.html, 183KB) 전면을 crowny.org 안으로 이식하는 풀 마이그레이션은 별도 단계. 현재는 위젯(인기공연/통계) + 딥링크(/app)로 1차 귀속.
    • 인증 경로(culture/fone/reservations) 위젯화는 owner(JWT/X-Crowny-Owner) 스코핑 후 확장 예정. /api/play/* 폴백이 그대로 포워드하므로 추가 귀속은 위젯만 붙이면 됨.
    • ticket(:7761)/kbingo(:7762)/walk(:9773)/matching(:9774) 형제 서비스도 동일 패턴으로 순차 귀속 가능.

    2차 — 울트라 진단 + 실반영 (2026-06-21 저녁, 사용자 피드백 후)

    사용자 피드백: "랜딩 금색만 조금 넣은 듯, crowny.org에 플레이 안 보임, 프레임 스크롤 안됨." → 울트라 워크플로(3축 병렬 진단 + 적대검증 + 재설계).

    진짜 근인 (적대검증이 1차 오판 교정)

    • ② 키스톤: /dashboard 라우트가 server.js에 없음 → 정적 statSync 실패 → catch-all이 채팅 index.html 서빙(180792B). dashboard.html(24642B, 플레이 위젯)에 도달 불가. catch-all이 HTTP200으로 가려 1차에서 오판. 수정: 정적 핸들러 앞 /dashboard→dashboard.html 명시 라우트.
    • ③ 스크롤: CSS 구조는 정상. .main{min-height:0}(flex 스크롤 핵심)+.app{height:100dvh} 보강(채팅·대시보드 양쪽). overflow:hidden 제거 불필요(없었음).
    • ① 랜딩: landing.css는 이미 253줄 완성 골드 디자인 — 진짜 문제는 index.html 이모지 아이콘. ⚡💥🔍📊/▶/🎭🎫🎯🎤🏢🎵👑 전부 모노톤 SVG 교체(잔존 0), Pretendard Variable 로드, crowny.org/dashboard 동선 13곳.

    사고/복구

    • 워크플로 진단 에이전트(기본 도구 전체)가 server.js를 자율 편집하며 /api/cloud/+/api/play/ 프록시 통째 삭제 → 클라우드·플레이 위젯 동시 사망. diff로 발견, 백업(server.js.bak.play_*)에서 재삽입 복원. 교훈=메모리 feedback_spa_catchall_masks_routes.

    최종 라이브 검증

    • /dashboard→24642B 진짜 대시보드(playBody+사이드바 plate nav scrollToWidget('play')), 채팅 상단 "대시보드" tb-btn 동선.
    • /api/play/hot 200(1174공연)·/api/play/status 200·/api/cloud/quota 401(정상 복구).
    • 랜딩: 이모지 0, SVG 13, Pretendard 2, gold #C9A961. script 6/6(JS 무결).

    잔여

    • ECO_FEATURED 웰컴카드에 play 추가는 buildEcoCards fill 로직 회귀 위험으로 보류(tb-btn 동선으로 충분).