Crowny Admin Widget — 전 서비스 관리자 요청 모듈
2026-05-19 | 공용 모듈
개요
ABTI의 관리자 수정/고도화 요청 시스템을 모든 크라우니 서비스에 적용 가능한 공용 모듈로 추출. 100% 한선씨 코드로 구현.구현 내용
한선씨 소스 파일 (1,058줄)
| 파일 | 줄수 | 역할 |
|---|---|---|
| 위젯.한선 | 384 | 관리자 위젯 JS 생성기 |
| 스타일.한선 | 356 | 위젯 CSS 생성기 |
| 서버핸들러.한선 | 318 | Node.js 서버 핸들러 모듈 생성기 |
| 빌드.한선 | - | 전체 빌드 스크립트 |
생성된 출력물 (dist/)
| 파일 | 크기 | 역할 |
|---|---|---|
| crowny-admin-widget.js | 17KB | 자기완결형 위젯 (CSS inline, auto-init) |
| crowny-admin-widget.css | 4.6KB | 독립 CSS (선택 사용) |
| crowny-admin-server.js | 8.6KB | Node.js require() 핸들러 모듈 |
위젯 기능
- 우측 하단 FAB 버튼 (기어 아이콘)
- 관리자 패널 (로그인/로그아웃)
- 3개 탭: 수정요청, 고도화, 이력
- 서비스별 계정 분리 (localStorage prefix)
- 크라우니디자인표준2026 peace 팔레트
서버 핸들러 기능
- createAdminHandler(config) 팩토리 패턴
- 세션 관리 (24시간 TTL, Bearer 토큰)
- 요청 CRUD + 디스패치 파이프라인
- crowny-knowledge.sh 연동
- auto-execute.sh 자동 트리거
ABTI 적용 완료
- server.js: 기존 인라인 admin 코드 제거 → 공용 핸들러로 교체
- index.html: 기존 admin HTML 제거 →
<script data-service="abti">한 줄로 교체 - API 전체 테스트 통과 (login, CRUD, logout, 인증차단)
전체 52개 서비스 배포 완료 (2026-05-20)
crowny-admin-init.js — http.createServer 몽키패치 방식으로 Express/Raw HTTP 모두 대응.
서비스당 변경: server.js 첫줄 require('./crowny-admin-init'); 1줄 + index.html <script> 1줄.
배포 스크립트 deploy.sh --all로 shebang 자동 감지, 문법 검증, 실패 시 자동 롤백.
배포 통계:
- 성공: 52개 (ABTI 수동 + 51개 자동)
- shebang 서비스 7개 (#!/usr/bin/env node) — 2번째 줄에 require 삽입으로 해결
관련 파일
- 모듈:
/Users/ef/crowny-admin-widget/ - 배포 스크립트:
/Users/ef/crowny-admin-widget/deploy.sh - ABTI (수동 적용):
/Users/ef/crowny-abti/server.js,/Users/ef/crowny-abti/public/index.html
잔여 이슈
- 대시보드 탭은 서비스별 커스텀 (ABTI의 유형분포 등)
- npm 패키지화 (@crowny/admin-widget) 가능
- 관리자 계정 서비스별 분리 (현재 공통 michael@crowny.org)