← 목록
한선씨 2026-05-28 5KB 읽기 4분

Enterprise 한선씨 단독 가동 준비 — 격리 검증 완료 / 운영 가동 보류

개요

한선씨 서버.한선의 단독 가동을 위해 (1) 회귀 방지, (2) 셀코어 30규칙 매핑, (3) 데모데이터 가드, (4) 운영 data 백업을 차례로 완료. 격리 환경(포트 19701)에서 단독 동작 풀 검증 통과. 운영 직접 가동은 별도 VM 안정화 작업 후 진행 예정.

완료 사항

1. 회귀 방지 — 셀DB.한선 원본 보존

셀DB.한선은 27개 한선씨 파일에서 import되는 표준 라이브러리. 표준 라이브러리를 직접 패치하지 않고 Enterprise 전용 헬퍼로 우회.

  • 신규 파일: libs/셀DB행맵헬퍼.한선 (44줄, 2144 bytes)
  • 노출 함수: 행수행맵(행맵배열), 집계행맵(행맵배열, 종류, 컬럼)
  • 단위 검증: SUM/COUNT/AVG/MIN/MAX 정확, 빈 배열 안전
자동 일괄 치환 16개 파일 108건:
  • 서버.한선: 26건
  • modules/{영업,재무,공급망,인사,프로젝트,생산,포네,워크플로우,이슈,자산,문서,보안}.한선: 79건
  • libs/{조직,알림}.한선: 3건
  • 헬퍼 import도 16개 파일에 추가
영향 범위 0:
  • crowny-play, crowny-project, CrownyOS tests, pkg/libs/ORM 등 외부 26개 사용처는 그대로 셀DB.한선 사용

2. 셀코어 30규칙 매핑 복구

셀코어_엔터프라이즈.한선은 30규칙 정의 + 엔터프라이즈오케생성() 완성됐으나 서버.한선이 import하지 않아 비활성 상태였음. 매핑 연결:

  • 서버.한선에 가져오기 "셀코어_엔터프라이즈.한선" 추가
  • ERP초기화() 끝에 엔터프라이즈오케생성() 호출 추가 — 30규칙 자동 등록
  • /api/selcore/rules GET 라우트 추가 — 30규칙 메타(카테고리 17개) JSON 노출
  • 부팅 메시지: [ENT] 셀코어 30규칙 등록 완료

3. 데모데이터 가드

CLAUDE.md 함정 — 파일존재()는 항상 -1 반환. 읽기() 길이로 우회:

변수 _기존ERP = 읽기(데이터경로)
만약 (글자수(_기존ERP) > 0) {
    출력값("[ENT] 운영 데이터 감지 (" + 문자열변환(글자수(_기존ERP)) + " bytes) — 복원 보류, 데모 스킵")
} 아니면 {
    데모데이터()
}

검증 결과 (격리 환경):

  • erp.dat 없음 → 데모 실행, /api/finance 분개 3, /api/hrm 직원 5
  • erp.dat 있음 → 데모 스킵, /api/finance 분개 0, /api/hrm 직원 0

4. 운영 data 백업 + 무결성

  • 백업: /Users/ef/crowny-enterprise/data.backup-20260528-033305.tar.gz (20K, 202 파일)
  • 운영 erp.dat MD5: ea4e3c1ae2d25c2437d94c0c1091c81b (변경 없음)
  • 운영 data 196개 .dat 보존
  • 운영 9700 proxy 영향 없음

격리 검증 결과 (Phase 2 — 임시 포트 19701)

엔드포인트상태
/health, /api/status, /api/finance, /api/scm, /api/hrm, /api/crm, /api/dashboard (1337 bytes 12모듈), /api/selcore/rules (316 bytes 30규칙)전부 HTTP 200
런타임 에러0 (err.log 1줄, 부팅 메시지뿐)
모듈 초기화12 + 6 + 셀코어30규칙
엔드포인트GET 28 + POST 40 + PUT 14 + DELETE 3 = 85개

보류 — Phase 3 운영 가동

운영 디렉토리(cwd=/Users/ef/crowny-enterprise)에서 한선씨 서버를 띄우면 196개 .dat 파일을 모듈 init이 처리하다 VM 문자열 풀 폭주 발생 (count 524288/524288, 무한 loop). 별도 task #10 (VM 풀 폭주 추적)으로 분리. 안정화 후 Phase 3 진행 예정.

알려진 보조 이슈:

  • ERP불러오기() 손상/짧은 erp.dat에 무한 loop (가드로 호출 자체 우회 처리)
  • 셀코어 import 시 함수 이름 경고 3건 (_비교, 이벤트발행, 감사기록 — 충돌이지만 컴파일/실행 OK)

관련 파일

  • /Users/ef/crowny-enterprise/libs/셀DB행맵헬퍼.한선 (신규)
  • /Users/ef/crowny-enterprise/서버.한선 (가드 + 셀코어 import + /api/selcore/rules)
  • /Users/ef/crowny-enterprise/data.backup-20260528-033305.tar.gz (백업)
  • /Users/ef/CrownyOS/crownyc/libs/셀DB.한선 (원본 보존, 변경 없음)

다음 단계 (Phase 3 prereq)

  1. VM 문자열 풀 폭주 원인 모듈 추적 — 모듈 init을 차례로 활성화하며 어느 단계에서 [STR] count가 폭주하는지 격리 환경에서 재현 (운영 data 카피본 사용)
  2. 원인 모듈의 .dat 자동 로드 코드 수정 (32KB 캡 인지)
  3. ERP불러오기/ERP테이블불러오기 안정화 — 손상 데이터 방어
  4. 격리 + 운영-카피 환경에서 풀 부팅 가능 검증
  5. proxy 9700 → 한선씨 9700 직접 전환 (단독 가동 완성)