← 목록
AI 2026-07-17 8KB 읽기 7분

현업 투입 전 점검 리포트 — 크라우니AI 모듈군 (ERP·빌딩·울트라키보드) [제안용]

2026-07-17. 전 항목 실측 기반(추정 항목은 "추정" 명기). 대상: crowny://erp·crowny://building 모듈, building.crowny.org:9605, erp.crowny.org:9938, 크라우니울트라키보드(구현 진행 중), 공유장부(CrownyShared).

1. 현황 (실측 스냅샷)

항목상태증거
building.crowny.org✅ 라이브/health 200 "OK building 9605", HTTPS 4.2MB byte-identical, /api/route 4상 판정 응답
erp.crowny.org✅ 라이브/health 200 v2.0.0(erp-portal), /api/version 200
LaunchAgentorg.crowny.building(자가부활 검증), org.crowny.stake 가동
크라우니AI 모듈✅ 4종office·erp·building·today 장착, crowny://erp ⌘S→cdf 실저장 4건(~/Documents/CrownyERP/)
공유장부✅ 발행측 가동~/Documents/CrownyShared/ docindex.psv 3행 + 이벤트버스.psv 3행(erp.snapshot.saved)
울트라키보드🔨 구현 중스펙 완료(실측 493줄), 울트라키맵.한선 생성됨, JS·검증 진행 중
번들 무결장착본=원본 cmp 동일

2. 프로토콜 체크

프로토콜판정비고
ERP-연동계약 v1 (SSOT)✅ 존재·발행측 준수cdf 경로·docindex 스키마·이벤트 토픽 계약대로 실파일 생성 확인
이벤트버스 토픽 5종⚠️ 발행 1/구독 0erp.snapshot.saved만 발행 중. 빌딩·투데이 구독측 미배선(계약 §1 명시 "후속 punch")
포트 SSOTbuilding 9605 crowny-ports.sh 정식 등록, gateway.yaml 자동 갱신 경로만 사용
cert/HTTPSbuilding SAN 기포함, 종단 200
키맵 프로토콜✅ 설계 준수mod 통합 토큰·KeyboardEvent.code — 오피스 키맵.한선 관용구 계승, 기존 키 충돌 0 설계
오프라인/온라인 계약✅ 준수오프라인=기본(계약 §3), :9938 스냅샷 수신 API 라이브 검증 전 동기화 배선 금지 — 현재 미배선 상태가 계약상 정상
배포 패키징배포패키징.sh에 building·erp bridge 포함

3. 현업 투입 전 필요사항 (갭)

  1. 실데이터 부재 (최대 갭): ERP·빌딩 앱은 데모 상수 화면(영속 0 — 연동계약 §0 실측). cdf는 화면 상태 저장이지 실업무 DB가 아님. 현업 투입 = :9938 스냅샷 수신/조회 API 정의·검증 + 실데이터 마이그레이션이 선행돼야 함.
  2. 구독측 배선: 빌딩(erp.schedule.confirmed→회의실 예약·공조 사전가동)·투데이(erp.* 카드) 이벤트버스 구독 미구현.
  3. 인증/RBAC: 크라우니AI 모듈은 로컬 앱이라 무인증이 정상이나, 온라인 동기화 붙는 순간 Bearer 인증+조직도 이식 필수(투데이 적용검토서 P0와 동일 결론).
  4. 멀티테넌트 매핑: erp:9938은 aimed/leum 멀티테넌트 — 어느 테넌트로 파일럿할지 결정 필요.
  5. 백업 루틴: ~/Documents/CrownyERP/·CrownyShared/는 현재 백업 대상 미등록 → crowny-hub 백업 편입.
  6. 크로스플랫폼: 현재 macOS(WKWebView)만 검증. 윈도우(WebView2) 현장이면 별도 검증 필요.
  7. 교육: 울트라키보드 ?(Shift+/) 도움말 오버레이가 1차 교육자료 겸함 — 별도 자료는 파일럿 후.

4. 현장 예상 버그 (근거 포함)

#예상 버그근거심각도
B1행 클라이언트 1개가 빌딩서버 전체 정지 ✅07-17 수리 완료원인 정정(실측): VM은 5초 수신 타임아웃 보유(TCP수락 SO_RCVTIMEO). 진짜 버그 = 타임아웃 반환 -1이 경로 "/"로 오해석 → 행 클라에 4.2MB 오발송·send 잠김(19초 실측). 빈요청 가드 적용 → 후속 요청 4.0초·오발송 0B·회귀 PASS. 학습 intent=TCP서버_빈요청가드_행클라방어P0 완료
B2이벤트버스.psv 무한 성장 → 구독측 wedge ✅07-18 수리 완료장부회전.한선(자체시험 22/22, 사본 40KB→7.9KB 행무손실 실측) + LaunchAgent org.crowny.ledger-rotate(30분 주기) + 계약 §7 회전 규약 append. 실장부 무해통과 md5 확인P0 완료
B3docindex.psv 키누적 공백 유실기지 함정: read-modify-write PSV에 줄단위 공백제거() 사용 시 후행 스페이스 깎임(CrownyBrowser 키입력 실측 이력) — 한선씨 관리 엔진 코드 감사 필요P1
B4힌트모드 클릭 무반응(앱 업데이트 후)synthetic MouseEvent가 dc 런타임 이벤트 위임 구조에 의존 — 앱 번들 교체 시 위임 루트 변경 가능. 스냅샷도 fiber __name 규약 의존P1
B5한글 IME 조합 중 키 오발동code 기반이라 대체로 안전하나 조합 중 keydown(keyCode 229, isComposing) 이중발화는 별도 가드 필요P1
B6WKWebView vs Chrome 동작 차12 시나리오 검증은 헤드리스 Chrome — WKWebView에서 focus/MouseEvent 미세 차이 가능성. 실앱 육안 1회 전 확정 금지P1
B7결재 승인(mod+Enter) 오발동파괴적 액션 — 스펙이 4상 옴(확인 오버레이/유예)으로 방어 설계, 구현 검증 대상P1
B8데모 날짜(07-14) 고정 화면현장 사용자 혼동("오늘"이 아님) — 실데이터 배선 전 파일럿 금지 사유P2
B9다크/라이트 배지 대비힌트 라벨·모드 표시기 대비 미검증P2

5. 예방조치 (권고 실행 순서)

P0 (투입 전 필수)

  • 빌딩서버 수신 가드: accept 루프에 read 타임아웃(논블로킹/poll) 또는 :9605 로컬 바인드 한정+게이트웨이만 공개(게이트웨이 타임아웃 방패) — 한선씨 수정 1곳
  • 공유장부 회전 유틸(한선씨): 이벤트버스.psv/docindex.psv 바이트 기준 회전(≤12KB, 한글 3B 감안) + 구독측 글자수 가드 — 오피스 학습층 회전(500줄 실측) 패턴 재사용
  • :9938 스냅샷 수신 API 스펙 확정(사장님 승인) → 라이브 검증 → 그때 동기화 배선(계약 §3 준수)
P1 (파일럿 주간)
  • ERP 회귀 하니스: 오피스 회귀하니스.js 선례 → ERP판(브릿지 스냅샷·울트라키보드 12 시나리오 자동화) — 앱 번들 교체 시 필수 게이트
  • 빌딩·투데이 구독측 배선(계약 토픽), IME isComposing 가드, WKWebView 실앱 육안 1회
  • 백업: CrownyERP/·CrownyShared/ → crowny-hub 편입
P2 (안정화)
  • crownystate 관제 등록, 윈도우 WebView2 검증, 테마 대비 점검, 교육자료

6. 사장님 결정 필요 항목 (제안)

  1. :9938 스냅샷 수신 API 스펙 승인(엔드포인트·인증·테넌트 매핑) — 실데이터 연동의 관문
  2. 파일럿 범위: 어느 테넌트(aimed/leum)·어느 현장(빌딩 모듈이면 실건물 게이트웨이 유무)부터
  3. 결재 승인 유예 정책: mod+Enter 즉시 vs 확인 오버레이 vs 2초 되돌리기 유예(스펙 기본=옴 확인)
  4. P0 예방조치 2건(서버 수신 가드·장부 회전) 즉시 착수 승인 — 각 소규모(한선씨 1~2파일)

관련 정본

  • 연동계약: bundle/erp/spec/ERP-연동계약.md · 울트라키보드 스펙: bundle/erp/spec/울트라키보드-스펙.md
  • 빌딩: 2026-07-16-크라우니빌딩-앱장착.md · 서버: 2026-07-17-crowny-building-서버-구축.md

이행 로그 (2026-07-17~18 — "전체 기능 작동" 순차 작업)

  • ✅ P0-B1 빌딩서버 행 방어(원인 정정: -1→"/" 오해석 오발송) — 19s→4s
  • ✅ P0-B2 장부회전(30분 주기 LaunchAgent + 계약 §7) — 신규 VM 함정 2종 가드레일 SSOT 반영(루프 배열반환 OOM·O(n²) 분리 재호출)
  • ✅ B5 IME isComposing 가드 — CDP 회귀 FAIL 0
  • ✅ P1 회귀 게이트 승격 — crowny-ultrakey/회귀실행.sh(미러동기+키맵 31/31+CDP)
  • 🔨 빌딩 브릿지 JS(팔레트 판정 표시+ERP 이벤트 구독) 진행 중 · 잔여 = B6 실앱 육안, :9938 수신 API(사장님 승인 대기)