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

crowny-class core/file 운영페이지 개편 — 셀 온톨로지 + 강의사용 구분

개요

class.crowny.org 운영 가시성 페이지 2건 개편.
  • /core — 3열 카드 나열 → 셀코어 온톨로지 방사형(radial) 그래프로 재구성
  • /file — mp4 vs CVF 중 실제 강의 재생에 쓰이는 파일 구분(강의사용 4상 판정)

A. /core — 셀 온톨로지 방사형 그래프

GET /api/admin/coremap 응답에 cells/relations 추가(기존 modules/pages/orphanPages 하위호환 유지):

  • cells: [{id,label,type:'중심'|'모듈'|'데이터'|'페이지',meta}]
  • relations: [{from,to,type:'구성'|'저장'|'제공'}]
셀 수(MODULE_MAP 정적 선언 실측): 중심 1 + 모듈 5(enroll/video/lesson/community/admin) + 데이터 11(회원·수강·입금·인증·영상·진도·레슨·과제·포트폴리오·취직반·자료방, 전부 유니크) + 페이지 9(index/join/class/admin/community/showcase/core/task/file.html, class.html·admin.html은 2개 모듈에 중복 매핑되나 셀은 1개로 dedupe) = 총 26셀. 관계 수: 구성 5(중심→모듈) + 저장 11(모듈→데이터, dataSubs 합계 4+2+1+4+0) + 제공 11(모듈→페이지, pages 합계 2+2+1+2+4, class.html/admin.html 중복 매핑 포함) = 총 27관계.

레이아웃: SVG viewBox 900×900, 중심(cx=450,cy=450) → 모듈 1환(반경190, 중심각 360/n 균등분배) → 데이터/페이지 2환(반경320, 각 모듈 각도 주변 부채꼴 0.82×균등폭 배치). 노드 클릭 시 관계 목록 패널(showCellDetail) — 나가는/들어오는 관계를 타입 라벨과 함께 표시.

색상: 모듈=골드(#C9A961), 데이터=코랄(#D4743A), 페이지=중간톤(sidebar), 중심=gold-dim(구분용 톤). 전부 crowny.org 토큰 SSOT 내에서 조합(신규 색상 정의 없음).

모바일(<760px) 폴백: SVG 대신 .ontology-stack 세로 스택 — 중심 카드 → 모듈별 섹션 → 관계타입 라벨 붙은 데이터/페이지 칩. #ontoSvgCard/.ontology-stack을 미디어쿼리로 상호배타 표시.

B. /file — mp4 vs CVF 강의사용 구분

GET /api/admin/files 영상(mp4) 그룹에 inUse/wireStatus/lessonId/lessonTitle 추가. 판정 로직(4상):

  • 실파일없음(타) — 디스크에 mp4 실물 없음(최우선)
  • 미배선(옴) — lessonId 없음 또는 레슨.videoId 불일치
  • 배선(티) — lessonId 있고 레슨.videoId === 영상.id
실측(2026-07-12): mp4 23개 전부 오리엔테이션 레슨 23개(o1_1~o5_6 등)에 배선. CVF 그룹은 role: '보관(크라우니비디오포맷 정본)/video.crowny.org 플레이어용' 고정 표기 — 어떤 레슨도 CVF를 참조하지 않음(참조 레슨 0건).

file.html 상단 요약 배너: "실제 강의 재생 = mp4 23개(레슨 배선), CVF N개 = 포맷 정본 보관(강의 미사용)". mp4 표에 골드 "강의사용" 뱃지(+lessonId), CVF 표에 중간톤 "보관용" 뱃지 컬럼 추가.

관련 파일

  • /Users/ef/crowny-class/modules/admin/routes.js — handleCoremap(cells/relations 추가), handleFiles(강의사용 4상 판정 추가)
  • /Users/ef/crowny-class/public/core.html — 방사형 SVG + 모바일 스택 폴백 + 클릭 관계패널
  • /Users/ef/crowny-class/public/file.html — 요약 배너 + mp4/CVF 뱃지 컬럼
  • /Users/ef/crowny-class/한선씨/운영맵.한선 — 셀타입판정()/관계타입판정()/강의사용판정()/강의사용라벨() 추가(컴파일+실행 실증 완료, hanseonc_high→crownyc run)

잔여 이슈

  • 서버 재기동은 메인 세션이 수행(이 작업은 node --check까지만, 라이브 무접촉 아님이나 재기동 금지 지시 준수).
  • 디자인대조.sh(CrownyBrowser 도구) 훅이 .tabbar/.tab/.toolbar/.omni/.bm/.ib 브라우저 크롬 규격으로 FAIL을 냈으나, 이는 CrownyBrowser 전용 스펙(디자인규격.psv)이 crowny-class 관리자 대시보드(비-브라우저 페이지)에 오적용된 것으로 판단 — 지시된 crowny.org 토큰 SSOT(--bg/--gold/--coral 등)는 정확히 준수함.
  • 26셀/27관계는 MODULE_MAP 정적 선언 기준 수계산(코드 실측)이며, 서버 재기동 후 curl /api/admin/coremap로 cells.length/relations.length 라이브 재확인 권장.