크라우니플레이 3서비스 체계 구축
개요
크라우니플레이를 단일 서버(play.crowny.org)에서 3개 도메인 서비스로 확장.
| 도메인 | 포트 | 역할 | 상태 |
|---|---|---|---|
| play.crowny.org | 7760 | 메인 포털 (기존) | 허브 업그레이드 |
| ticket.crowny.org | 7761 | 티켓팅 전문 | 신규 |
| kbingo.crowny.org | 7762 | K-BINGO 전광판 (특허) | 신규 → 특허급 리빌드 완료 |
무엇을 했는지
1. ticket.crowny.org (티켓팅 서비스)
ticket-server.js(352줄) — Express 서버, 포트 7761src/ticket/engine.js(455줄) — 좌석 관리, 우선권 계산, 예매/환불/체크인public/ticket.html(1,316줄) — SPA (홈/검색/내티켓/우선권)- 핵심: 적립시간=우선권 모델로 매크로 구조적 차단
- 우선권 = 적립개월×100 + 연속보너스 + 팔로우 + 관람실적 - 취소패널티
- 취소 환불: D-7 100%, D-3~6 80%, D-1~2 50%, 당일 0%
- QR 체크인, 포네/원화 결제
2. kbingo.crowny.org (K-BINGO 전광판 — 특허등록 대상)
kbingo-server.js(282줄) — Express 서버, 포트 7762, 테마/세션 APIsrc/kbingo/engine.js(808줄) — 레거시 미션빙고 + K-BINGO 전광판 시스템public/kbingo.html(1,148줄) — 전광판 SPA (5×15 그리드/추첨/TTS/인쇄)- 5×15 전광판: 5행(카테고리) × 15열(항목) = 75칸 스코어보드
- 3 테마: 숫자빙고(1~75), K-한글빙고(훈민정음 오음 ㄱㄴㅁㅅㅇ 75단어), K-컨텐츠빙고(먹거리/볼거리/즐길거리/자랑거리/누릴거리 75항목)
- TTS: 한국어 음성 안내 (기역/니은/미음/시옷/이응 발음 매핑)
- 인쇄: A4 4장/페이지, 5×5 카드, 태극 SVG FREE 셀, QR 영역, 카드 번호
- 키보드: Space=추첨, R=다시듣기, B=빙고, F=전체화면
- 추첨 애니메이션: 15회 랜덤 순환 후 확정, 콜 오버레이, 전광판 하이라이트
- 레퍼런스: 260424_K-BINGO.html, K-BINGO Printer.html (다운로드 폴더)
- 데이터: 레퍼런스 파일과 100% 동일 (특허 요소)
- 기존 레거시 미션빙고(5×5, 포네보상)도 보존
3. play.crowny.org 허브 업그레이드
- 랜딩 페이지에 ticket/kbingo 카드 추가 (생태계 4→6개)
- 푸터에 ticket/kbingo 링크 추가
4. 게이트웨이 등록
gateway.yaml에 crowny-ticket(7761), crowny-kbingo(7762) 추가- 검증 통과 (54개 서비스)
5. LaunchAgent 서비스화
org.crowny.ticket.plist— 부팅/터미널 종료 후 자동 실행org.crowny.kbingo.plist— 부팅/터미널 종료 후 자동 실행- health-monitor.sh에 ticket(7761), kbingo(7762) 추가
- 로그:
~/.crowny-infra/logs/crowny-{ticket,kbingo}*.log
6. 한선씨 동반
한선씨/티켓엔진.한선— 우선권계산, 좌석잔여, 환불비율, 포네변환, QR검증한선씨/K빙고.한선— 5×15 전광판 엔진 (행/열 인덱싱, 진행률, 호출 추적)- 컴파일 성공 (hanseonc_high → TOAU)
관련 파일 경로
/Users/ef/crowny-play/— 프로젝트 루트/Users/ef/crowny-gateway/gateway.yaml— 게이트웨이 라우팅~/Library/LaunchAgents/org.crowny.{ticket,kbingo}.plist— 서비스 정의/Users/ef/Downloads/260424_K-BINGO*.html— 특허 레퍼���스 파일
실행
bashcd /Users/ef/crowny-play
node server.js # play.crowny.org:7760
node ticket-server.js # ticket.crowny.org:7761
node kbingo-server.js # kbingo.crowny.org:7762
DB 공유
3개 서버 모두data/crownyplay.db 공유 (WAL 모드). 스키마 자동 초기화.
- ticket: ticket_queue 테이블
- kbingo: bingo_boards + bingo_progress + bingo_claims + kbingo_sessions
잔여 이슈
- K-BINGO 인쇄카드에 K-컨텐츠 테마 추가 (현재 숫자/한글만)
- 실제 공연 데이터 스크리닝 연동 (ticket↔play 연계)
- 특허 출원서 초안 작성 (K-BINGO 포맷 + 데이터셋)