← 목록
기타 2026-06-23 8KB 읽기 10분

irum.crowny.org — 더이룸 프리미엄 맞춤 서비스 구축

개요

티옴타음 4-오푸스 출범검증(조건부출범 62점) → critical 2건 폐쇄 후 irum.crowny.org 별도 구축. academy.crowny.org = 학원관리 전용 SaaS(멀티테넌트). irum.crowny.org = 단일테넌트 더이룸 프리미엄 맞춤 서비스.

아키텍처 (핵심)

irum = academy 코어 코드(server.js) + IRUM_MODE 오버레이. 같은 server.js를 IRUM_MODE=1, PORT=9867로 별도 프로세스 기동.
  • 향상 자동 환류: 같은 코드라 academy 개선이 irum에 자동 적용.
  • 맞춤 레이어: modules-custom/(IRUM_MODE에서만 로드) + public-irum/(레이어드 정적, public-irum 우선→public 폴백).
  • tier 메커니즘: modules-custom/manifest.json tier=custom/tier2/promoted. 좋은 맞춤기능=tier2 표시 후 modules/로 이동하면 academy 전체가 받음.
  • 별도: 서비스(com.crowny.irum)/포트(9867)/도메인(irum.crowny.org)/브랜딩(랜딩).
  • 데이터 공유: 동일 DATA_DIR(theirum 데이터) — irum은 같은 더이룸 데이터 위 프리미엄 UX/기능.

맞춤 기능 (초기 1개)

irum-insight(/api/irum/insight) — 더이룸 프리미엄 360° 통합 인사이트. academy 킬러기능(Dual-AI/성장/인증서/오답/채점)을 학생 1명 단일 리포트로 합성 + S/A/B 프리미엄 등급 판정(셀코어 룰). 한선씨 동반 irum통합인사이트.한선(셀코어 3룰, COMPILE OK).

검증

  • irum 9867: 39/39 라우터(academy 38 + irum-insight), 랜딩 200, self-host vendor 200, 공유 /theirum SPA 200, /api/irum/insight service=irum total=3 등급분포{A1,B1}.
  • academy 9865 회귀 없음: 38/38(irum-insight 미로드), 루트=기존 관리자.

4-오푸스 검증 후속 수정 (clean base)

  • CRITICAL: demo-token 백도어 영구제거(lib/auth.js+security.js) → 401. NODE_ENV=production(플리스트). 테넌트 피벗 폐쇄.
  • HIGH: 외부 CDN self-host(public/vendor/ tailwind.js·chart.min.js·PretendardVariable.woff2·pretendard.css, 3 HTML CDN참조 0) = academy 공통(tier2 환류).
  • 자동백업 가동. 광고문구 정직화("규칙기반 4상 AI 분석", "셀코어 분석 중").
  • 폰트버그: Pretendard @import가 :root 뒤라 무시→미로드→faux-bold. <head> link로 수정(self-host로 최종).

관련 파일

  • IRUM_MODE: server.js(MODULE_ROUTES 뒤 맞춤모듈 로드 + 레이어드 정적)
  • 맞춤: modules-custom/manifest.json, modules-custom/irum-insight/routes.js, 한선씨/irum통합인사이트.한선
  • 프론트: public-irum/index.html, public/vendor/*
  • 서비스: ~/Library/LaunchAgents/com.crowny.irum.plist (포트 9867, gateway.yaml 등록)

잔여

  • 공개도메인 노출: irum.crowny.org 8443 SNI 아직 000 — 게이트웨이가 새 서브도메인 stunnel SNI/cert 미반영. 게이트웨이 세션이 결선(crowny-ports set로 8080 핫리로드는 됐으나 8443 HTTPS는 SNI블록/리로드 필요).
  • KPS 결정 잔여(음 관점): 개인정보(미성년자) 법적준수, 셀프가입 정책(academy), 스케일(JSON DB), API 규약 문서화.

결선 완료 + 프리미엄 전략 #2 (2026-06-23)

게이트웨이 결선 (HTTP+HTTPS 깨끗)

  • gateway.yaml domain: irum(축약 버그)→irum.crowny.org+httpOnly, gw reload. HTTP 8080 결선.
  • cert: 공유 crownybus.com 재발급은 제외목록 ~200도메인 degraded라 위험 → irum 전용 단독 cert(certbot --cert-name irum.crowny.org, 공유 cert 무영향).
  • ACME 핵심 수정(재사용 자산): server.js가 /.well-known/acme-challenge/를 게이트웨이 webroot에서 서빙(SPA 폴백보다 먼저, traversal 차단). 게이트웨이가 백엔드로 프록시해도 HTTP-01 통과 → academy 서버 돌리는 모든 백엔드프록시 도메인 cert 발급 가능. (tier2 재사용)
  • stunnel: stunnel-live-443.conf(443)+stunnel-live.conf(8443)에 irum SNI 슬레이브 블록(전용 cert) 추가, 443 stunnel 재기동(워치독 복구, 일시 blip 후 안정).
  • 검증: https://irum.crowny.org strict 200, cert CN=irum.crowny.org(~9/21), 랜딩 서빙. 회귀 없음(academy/crowny.org/docs 200).

프리미엄 전략 #2 학부모 톤변환 (irum-tone, tier2)

  • modules-custom/irum-tone: POST /api/irum/tone(성향4×대화법3×언어레벨3=9조합), GET /presets. 셀코어 4룰(성향→톤코드), 한선씨 irum톤변환.한선 COMPILE OK. 외부 LLM 없음(규칙기반).
  • 라이브: 불안형/공감 → "안심하셔도 됩니다. 함께 응원하겠습니다" 톤. irum 40라우터. manifest tier2(학부모포털/리포트 승격가치).

프리미엄 전략 11개 전체 구현 (2026-06-24) — irum 51 라우터

울트라병렬 12에이전트(11빌더 sonnet+opus감사). 각 전략=modules-custom/<name>+한선씨 셀코어(전부 COMPILE OK), mock/규칙기반(외부 LLM/PG/체인 호출 없음).
모듈prefixtier셀코어룰핵심
irum-pay/api/irum/paytier26결제+4상정산(T즉시 절감10500/건, 수수료0)
irum-contract/api/irum/contractcustom8전자계약 공증(SHA256+해시체인, 약관유효성)
irum-twin/api/irum/twincustom9메타인지 트윈(9유형+8역량셀 에이징)
irum-coach/api/irum/coachcustom6유형맞춤 코칭챗(7상태 전이)
irum-career/api/irum/careercustom12진로적성 4상 진단(트랙/유형/과목전략)
irum-portfolio/api/irum/portfoliocustom4합격 포트폴리오(공개slug+체인배지)
irum-credential/api/irum/credentialtier24자격지갑+시험(4상등급 합격증+해시체인)
irum-cockpit/api/irum/cockpitcustom7경영AI 콕핏(지표→4상 오늘결정카드)
irum-channel/api/irum/channelcustom7성장채널(난수URL 피드)+소개 1맘
irum-talent/api/irum/talentcustom4달란트 학자금(3배수 한도 810만/4단계)
irum-franchise/api/irum/franchisetier212가맹 본부 관제탑(전테넌트 그룹드바·위험알림)
- 결선: manifest.json 13개(11신규+tone+insight) prefix 구체적 순, /api/irum(insight) 맨끝(startsWith 충돌 방지). 동시편집 충돌은 메인이 재구성. lib/auth.js 공개경로 3개(channel feed/portfolio/credential verify GET 무인증, issue/build/exam 보호).
  • 검증: 51/51 라우터, 13모듈 스모크 전부 실데이터(pay정산/twin창의형/career이공계/talent810만/cockpit결정카드/franchise지점4매출154만/credential등급T). 무인증 공개 3경로 200, 보호 401. irum 로컬 443 cert CN=irum.crowny.org.
  • 함정: 한글 파일경로 직접 컴파일 STR풀 wedge→ASCII 임시경로 컴파일. credential exam은 {correct,total 정수} 입력.

/guide 테스터 페이지 + 작업 /task 정리 (2026-06-25)

  • /guide (core, academy+irum 공통): modules/guide/routes.js — GET /api/guide/accounts(공개), POST /api/guide/feedback(공개, 중요도 셀코어 판정), GET /api/guide/feedback(관리자), PUT 상태변경. 한선씨 가이드.한선(중요도 3룰). public/guide.html(navy/amber self-host). server.js /guide 라우트+모듈 등록, lib/auth.js 공개경로(accounts GET·feedback POST).
  • 등급별 임시 테스트 계정: 데이터/가이드/계정-{irum,academy}.json. irum 4등급(원장 director@irum.test/irum2026director·강사 teacher@irum.test/irum2026teacher 로그인 + 학부모 /report/난수토큰 + 학생 성장채널 /api/irum/channel/난수토큰), academy 3등급(원장·강사·학부모). theirum 테넌트.
  • 목적: "irum.crowny.org/guide 보고 각 등급 테스트→원하는 것 기록→KPS가 체크하고 수정/개선". 피드백은 테넌트 스코프 데이터/가이드/피드백, 중요도(높음/보통/낮음) 자동판정.
  • 검증: /guide 양 서비스 200, accounts irum4/academy3, 피드백 POST 무인증 접수·목록 401보호/관리자조회, 테스트계정 로그인 OK, CDP 스크린샷 정상.
  • 작업 /task 정리: 하니스 Task 5건(THE IRUM 플랫폼·킬러기능+하드닝·irum구축+결선·프리미엄12전략·/guide) — 1~4 완료, 5 완료처리.