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

Crowny Hall — 포털 자료 제출 + 당일 콜보드 (설계 1j·1g 마지막 확장)

개요

hall.crowny.org:9606에 설계 1j(포털 자료 제출)·1g(당일 스태프 콜보드) 잔여 계약 5종을 구현. 기존 엔드포인트 회귀 없음.

무엇을 했는지

  • POST /api/portal/material — code가 data/포털.psv에 존재할 때만 접수, data/자료.psv append(code|title|link|ts), 감사로그 "포털: <code> 자료 제출 — <title>".
  • GET /api/materials — 자료.psv 최근순 최대 30건, 포털.psv와 code 조인해 org 필드 포함.
  • POST /api/action 신규 타입 staff_checkin — role manager|sm만 허용(RBAC "관제·스태프" 모듈에 편입), data/체크인.psv append(name|ts), 중복 이름은 {"ok":1,"dup":1}.
  • POST /bus 확장 — type=="checkin"이면 entityRef를 체크인.psv에 자동 append(중복 무시, Space 출입 이벤트 자동 반영). 기존 /bus 감사로그 동작 유지.
  • GET /api/checkin — 체크인.psv 최근순 최대 40건 + count.
  • 포털.html에 마이페이지 조회 성공 시 "행사 자료 제출" 폼 노출(제목+링크/메모 → POST /api/portal/material, 조회했던 code 자동 사용, 성공 시 확인+폼 리셋), "홀 기획 모듈 첨부로 연결" 안내 문구 추가.
  • 포털.한선 동반본에 자료제출유효성(code,title) 함수 추가 및 자체검증 케이스 반영.

구현 함정 회피

  • _체크인추가(및 _체크인존재)를 /api/action 디스패처(_처리액션)보다 텍스트상 앞에 재배치 — 이 코드베이스의 기존 관례(모든 헬퍼는 사용부보다 먼저 정의)를 따름. hanseonc_high 순전방참조 안전성이 불확실해 관례를 지킴.
  • 파일업로드는 게이트웨이 32KB 웨지 함정으로 의도적 미지원 — 링크/메모 제출 방식이 확정 설계(CLAUDE.md에도 명시).

검증 (curl 실측)

  1. CROWNY_STRICT=1 hanseonc_high 서버.한선 → 0 에러 0 경고. 포털.한선도 컴파일+런 자체검증 통과.
  2. 서버.toau 교체 → launchctl kickstart -k gui/$(id -u)/org.crowny.hall/health 200 OK.
  3. 포털 문의 1건 생성(HALL-77327 발급) → material 정상 code 제출 ok:1 / 가짜 code(HALL-99999) → {"ok":0,"err":"조회코드 없음"} / GET /api/materials에 org("검증테스트단체B") 조인 확인.
  4. staff_checkin(role sm)→ok:1, 재체크인(같은 이름)→{"ok":1,"dup":1}, role booking→권한 없음 거부. POST /bus {"type":"checkin","entityRef":"박스태프"}→GET /api/checkin에 반영(count 2).
  5. 회귀: /api/state JSON 파스 정상(딜 8→테스트 정리 후 7건 복원), /portal 200, /space/env 브리지(temp 25.2 실측 — Space 9607 라이브 연동), /api/goseq 정상.
  6. 테스트 데이터 전량 원복: 딜.psv 7건(세일러 시드만) 복원, 포털.psv·자료.psv·체크인.psv 0바이트로 리셋(감사.psv는 append-log 특성상 테스트 이력 보존, 정책대로 미삭제).

관련 파일

  • /Users/ef/crowny-hall/서버.한선 (백엔드 정본, 5종 신규 계약 추가)
  • /Users/ef/crowny-hall/서버.toau (재컴파일 배포본, 구버전은 서버.toau.bak_*로 백업)
  • /Users/ef/crowny-hall/포털.html (자료 제출 폼 추가)
  • /Users/ef/crowny-hall/포털.한선 (자료제출유효성 검증 로직 동반)
  • /Users/ef/crowny-hall/data/{딜,포털,자료,체크인}.psv
  • /Users/ef/crowny-hall/CLAUDE.md (API 요약에 이미 반영되어 있던 목표 계약과 최종 구현 일치 확인)

크라우니코드

lookup/search MISS(도메인 특이 로직 — 체크인등록 유사 패턴은 있었으나 PSV 조인/dedup 조합은 신규) → 직접 생성 2건, crownycode-learn.sh add로 학습 완료(hall_material_submit_join, hall_staff_checkin_dedup).

잔여 이슈

  • 없음 — 5종 계약·포털 폼·검증 전부 완료. 앱.html은 지시대로 미수정(타 에이전트 작업 영역).