ERP↔SAP 1:1 최소 기능단위 갭 매트릭스 + 4서버 분할 구조 검토 (2026-07-22)
내부 분석 문서(대조 기준으로만 SAP 표기 — 사용자 노출 표면에는 계속 미노출).
1. 4서버 분할 시 셀코어DB·전수 스크리닝 (질의 답)
현재 구조: 셀코어DB=파일 정본. crowny-erp/data/cells/셀넷.psv(전 모듈 공유 1파일, 159셀) + data/ledger/{FI..WM}.psv. ERP통합서버(:9981)가 단독 소유(단일 작성자). PLM 기능(생애주기·리비전·ECO·trace)도 같은 서버 안에서 같은 셀넷 위에 동작. AIP=넥서스분기서버(:9798)+감사서버 decide(:9802), LLM=클로드 세션(상주 서버 아님).
분할 시 가능 여부 = 티(가능), 조건 3가지:
- 셀id 네임스페이스 접두 — 현재 셀id는 정수 단일 네임스페이스. 분할하면 서버마다 각자 증가 → 충돌.
E123(ERP)/P45(PLM)/A7(AIP)/L3(LLM) 접두 도입, 링크(슬롯8/9)도 접두 포함 저장 → 서버 경계 넘는 계보 추적 유지.
- 각자 저장 — 서버별
data/cells/{erp,plm,aip,llm}셀넷.psv + 자기 장부. 쓰기는 소유 서버만(단일 작성자 원칙), 교차는 읽기 전용.
- 실시간 전수 스크리닝 이중 경로:
- 정본=
파일 직독(같은 호스트): PSV append-log라 라인 단위 원자적 → 다른 서버가 grep/읽기로 전수 O(n) 스캔, 토큰0·ms급. 실시간·전수 요건에 가장 강함.
- 보조=
HTTP 스크리닝 API(
/api/cells/scan?since=): 원격·필터 조회용. 서버 다운 시에도 파일 경로는 살아있음.
2. 서버 크기·최적화 현황 (실측 2026-07-22)
| 서버 | 포트 | 형태 | 크기 | RSS | 상태 |
|---|
| ERP통합서버 | 9981 | crownyc(.toau 4.9MB) | 174,319큐브 | 4.9MB | health 0.27~0.34s, 셀 159 |
| ERP액션서버(구 3액션) | 9980 | crownyc(.toau) | 소형 | 5.4MB | 휴가/승인/배분만(초기 배선, 91 doctype과 별개) |
| 넥서스분기서버(AIP) | 9798 | crownyc(.toau 215KB) | 소형 | 4.6MB | 정상 |
| 감사서버(PLM/넥서스 코어) | 9802 | node | — | 39.2MB | 정상(정적서빙+프록시 겸) |
적신호 1건: ERP통합서버 STR 핸들
432,000/480,000(90%) — 기동 즉시 (프로그램 크기 비례 구조적 상주). 여유 10%뿐 → exit43 위험 상존. RSS·응답속도는 전부 건강.
처방=분할 그 자체: 91 doctype 라우팅+10모듈 전 라이브러리가 한 toau에 인라인된 것이 원인이라, 모듈군 분할 시 서버당 큐브 수·STR 상주가 비례 감소.
3. SAP 1:1 최소 기능단위 분해 — 모듈별 대응표
표기: ✅=대응 구현(91 doctype/317함수 내) · ⚠️=부분(뼈대 있음, 완성 필요) · ❌=미구현(갭ID 부여)
FI 재무회계
| 최소 기능단위 | SAP 대응 | 상태 | 현재 구현 |
|---|
| 총계정원장 전표 | FB50 | ✅ | 전표기입 |
| 미수(AR) | FB70 | ✅ | 미수등록 |
| 미지급(AP) | FB60 | ✅ | 미지급등록 |
| 자산 등록 | AS01 | ✅ | 자산등록 |
| 감가상각 | AFAB | ✅ | 감가상각 |
| 결산마감 | 결산이월 | ✅ | 결산마감 |
| 역분개 | FB08 | ✅ | 전기취소 |
| 계정 재분류 | 재분류 | ✅ | 계정재분류 |
| 은행 조정 | FF67 | ✅ | 은행조정 |
| 개별항목 조회(계정·거래처 필터) | FBL1/3/5 | ⚠️ | FI장부조회(모듈 전체만) |
| 재무제표(BS/PL 구조화) | F.01 | ⚠️ | FI현황요약(합계만) |
| 자동지급 실행(AP 일괄 지급) | F110 | ❌ FI-G1 | — |
| 독촉 관리 | F150 | ❌ FI-G2 | — |
| 외화 평가·환산(환율테이블) | FAGL_FCV | ❌ FI-G3 | 마스터에 통화 필드만 |
| 부가세 집계·신고 | 세금 리포트 | ❌ FI-G4 | 세금코드 마스터만 |
| 재무제표 리포트 구조화 | F.01 | ❌ FI-G5 (⚠️승격) | — |
| 기간마감 통제(마감월 전기 차단) | OB52 | ❌ FI-G6 | — |
| 어음·수표 관리 | 어음관리 | ❌ FI-G7 | — |
CO 관리회계
| 원가센터 귀속 | KB21 | ✅ | 원가귀속 |
|---|
| 내부오더 | KO01 | ✅ | 내부오더생성 |
| 표준원가 | CK11 | ✅ | 표준원가등록 |
| 원가배부 | KSU5 | ✅ | 원가배부실행 |
| 손익센터 전기 | KE51 | ✅ | 손익센터전기 |
| 수익성분석(CO-PA) | KE21 | ✅ | 수익성집계·수익성분석세분 |
| 활동유형·작업가격 | KP26 | ❌ CO-G1 | — |
| 실제원가(자재원장) | CKMLCP | ❌ CO-G2 | — |
| 원가 계획·예산+예실차이 | KP06/KKS | ❌ CO-G3 | — |
| 간접비 부과율 | 부과 | ❌ CO-G4 | — |
MM 자재구매
| 구매요청/오더/입고/송장검증 | ME51/ME21/MIGO/MIRO | ✅ | 4종 |
|---|
| 재고이동·재고평가(단가변경) | MB1B/MR21 | ✅ | 재고이동·재고평가 |
| 소싱계약+계약오더 | ME31K | ✅ | 소싱계약체결·계약구매오더 |
| 재고실사 3단(등록·계수·차이) | MI01/04/07 | ✅ | 3종 |
| 역분개 | MBST | ✅ | MM역분개 |
| 자재 불출(소비 출고) | MB1A | ❌ MM-G1 | 이동만 있음 |
| RFQ·견적 비교 | ME41/49 | ❌ MM-G2 | — |
| 공급처 평가 | ME61 | ❌ MM-G3 | — |
| 구매 승인전략(금액별 결재) | Release | ❌ MM-G4 | AIP decide 미배선 |
| 배치·시리얼 관리 | 배치 | ❌ MM-G5 | — |
| 재주문점 자동 구매제안 | MRP형 | ❌ MM-G6 | 안전재고 필드만 |
SD 영업
| 견적/수주/납품/출하/청구 | VA21/VA01/VL01/출하GI/VF01 | ✅ | 5종 |
|---|
| 여신관리(한도·노출액) | FD32 | ✅ | 여신체크·여신노출액 |
| 가격조건 | VK11 | ✅ | 가격조건등록·유효단가 |
| 반품 | RE | ✅ | 반품등록 |
| ATP 가용성 체크(수주 시 재고 약속) | ATP | ❌ SD-G1 | — |
| 크레딧/데빗 메모 | 메모 | ❌ SD-G2 | 반품이 일부 대체 |
| 백오더 처리 | 백오더 | ❌ SD-G3 | — |
| 출하 일정·루트 결정 | 루트 | ❌ SD-G4 | — |
| 리베이트·판촉 조건 | 리베이트 | ❌ SD-G5 | — |
PP 생산
| BOM/라우팅/작업장 마스터 | CS01/CA01/CR01 | ✅ | 3종 |
|---|
| 생산오더/실적/확정/정산 | CO01/CO11/CO15/KO88 | ✅ | 4종 |
| 소요량전개(MRP) | MD01 | ✅ | 소요량전개 |
| 능력소요 | CM01 | ⚠️ | 능력소요조회(조회만) |
| 계획오더→생산오더 전환 | MD04 | ❌ PP-G1 | — |
| 외주가공 | 외주 | ❌ PP-G2 | — |
| 스크랩·불량 실적 | 불량 | ❌ PP-G3 | 실적에 불량수량 없음 |
| 능력 평준화(스케줄 조정) | CM21 | ❌ PP-G4 | — |
| 반복제조 | REM | ❌ PP-G5 | — |
HR 인사
| 입사/근태/급여/휴가/평가 | PA40/PT/PY | ✅ | 5종 |
|---|
| 연말정산/4대보험/조직/이동/퇴직 | — | ✅ | 5종 |
| 채용 관리 | E-Rec | ❌ HR-G1 | — |
| 교육·훈련 이력 | TEM | ❌ HR-G2 | — |
| 출장·경비 정산 | FI-TV | ❌ HR-G3 | — |
| 근태 시간평가(연장·야간 자동산출) | 시간평가 | ❌ HR-G4 | 단순 기록만 |
QM 품질
| 검사계획/로트/결과/사용결정 | QP01/QA01/QE01/QA11 | ✅ | 4종+계획기반로트 |
|---|
| 품질통지/증명서 | QM01/QC21 | ✅ | 2종 |
| 관리도(SPC)·샘플링 | SPC | ✅ | 관리도점검·샘플링 마스터 |
| 공급처 품질평가(→MM 연동) | 벤더QM | ❌ QM-G1 | — |
| 계측기 교정 관리 | 교정 | ❌ QM-G2 | — |
| 안정성·신뢰성 시험 | 안정성 | ❌ QM-G3 | — |
PM 설비보전
| 설비/기능위치/설치 | IE01/IL01 | ✅ | 3종 |
|---|
| 보전오더/고장통지/완료 | IW31/IW21/IW32 | ✅ | 3종 |
| 예방보전 계획·실행 | IP01/IP10 | ✅ | 2종 |
| 측정점·측정문서 | IK01/IK11 | ✅ | 2종 |
| 보전BOM·자재소요 | IB01 | ✅ | 2종 |
| 보전 달력·자동 오더 생성 | IP30 | ❌ PM-G1 | 주기·최종실행일만 |
| 작업허가(안전 permit) | permit | ❌ PM-G2 | — |
| 보전원가 CO 정산(오더→원가센터) | 정산 | ❌ PM-G3 | — |
PS 프로젝트
| 프로젝트/WBS/네트워크/활동 | CJ01/CJ11/CN21/CN22 | ✅ | 4종 |
|---|
| 마일스톤/예산집행/자원배정/실적확정 | — | ✅ | 4종 |
| EVM 진척 | EVM | ✅ | 진척관리EVM |
| 일정계획(선후행→일정 산출) | 스케줄링 | ❌ PS-G1 | — |
| 프로젝트 정산(→CO) | CJ88 | ❌ PS-G2 | — |
| 원가 계획·포캐스트 | 계획 | ❌ PS-G3 | — |
WM 창고
| 입고배정/이동/피킹/실사 | LT01/LT03/LI01 | ✅ | 4종 |
|---|
| 빈 생성/존·빈유형/보충/RF | LS01/LP21/LM | ✅ | 4종 |
| 웨이브피킹 | 웨이브 | ⚠️ WM-G1 | 함수 있음, API·페이지 미배선(배열 인자) |
| 2단계 피킹 | 2-step | ❌ WM-G2 | — |
| 크로스도킹 | 크로스도킹 | ❌ WM-G3 | — |
공통 인프라(모듈 횡단)
| 문서 변경계보 | CDHDR | ✅ | 셀 계보(PLM trace) — SAP보다 직결 |
|---|
| 넘버레인지 | SNRO | ✅ | 셀id (분할 시 접두 필요) |
| 승인 워크플로 전 doctype 배선 | Release/WF | ❌ X-G1 | AIP decide가 구 3액션만 |
| 권한(RBAC) 셀코어 ERP 적용 | SU01 | ❌ X-G2 | 멀티테넌트 쪽에만 존재 |
| 통화·환율 테이블 | TCURR | ❌ X-G3 | FI-G3와 연계 |
| 다중 법인(회사코드) 분리 | 회사코드 | ❌ X-G4 | 조직 필드만 |
4. 집계
- 대응 완료(✅): 최소 기능단위 85종 (91 doctype + 마스터·조회 계열)
- 부분(⚠️): 4종 — FI 개별항목조회·FI 재무제표·PP 능력조회·WM 웨이브피킹
- 미구현 갭(❌): 43종 — FI 7 · CO 4 · MM 6 · SD 5 · PP 5 · HR 4 · QM 3 · PM 3 · PS 3 · 공통 4 (+⚠️ 승격분)
- 구현 순서는 사장님 지시 대기. 갭ID(FI-G1…X-G4)로 지정하면 순서대로 구현.
관련 파일
- 모듈 lib:
/Users/ef/crowny-erp/core/libs/erp_{FI..WM}.한선(317함수), 셀코어ERP·사상판정·PLM코어.한선
- 서버: ERP통합서버.한선(:9981, 174K큐브·STR 90%), 넥서스분기(:9798), 감사서버(:9802), 구 액션서버(:9980)
- 셀코어DB:
crowny-erp/data/cells/셀넷.psv + data/ledger/*.psv
5. 실행 기록 (2026-07-22 순서대로 구현)
Phase 0 완료 — 4서버 분할 + STR 처방
- 분할: ERP-A(:9981)=FI/CO/MM/SD/PP(셀넷.psv 1~499만) · ERP-B(:9983 org.crowny.erpb)=HR/QM/PM/PS/WM(셀넷B.psv 500만+) · PLM전용(:9982 org.crowny.plm)=P대역(plm셀넷 1000만+) · AIP=decide 시 aip셀넷(2000만+) 기록 · LLM=/api/cells/llm-log(3000만+)
- 셀코어 확장: 셀저장소설정(경로,대역시드)·대역파일(id)·셀파일전수·교차셀읽기. 셀읽기=대역→파일 자동(교차 계보 무손실), 셀갱신=자기 대역만(단일 작성자 가드), 셀링크=교차 시 S후행 스킵(S선행 역계보 무손실)
- 프록시(감사서버): /api/erp/* 모듈·팩트·셀id 대역 A/B/PLM 라우팅, /api/cells/scan 파일 직독, 동반=고시라우트.한선(PLM대역판정·ERP모듈포트 등)
- 검증: STR 경고 0(A 93,840·B 97,523큐브) · 스모크 91/91 · 교차 계보 chain 295→10000004 · 가드(A셀 후행 비오염) · 공개 E2E · AIP브릿지 프록시 경유 전환+SAP 표기 제거
- 함정 추가 실측: 버퍼 호출 뒤 문자열 리터럴 "0" 붕괴는 대형 빌드 전용이 아님(11K 큐브 재현) — 결과를 변수에 담고 조각 조립이 표준 회피
Phase 1 완료 — FI 갭 7종 (FI-G1~G7)
- 지급실행(payment-run)·독촉(dunning)·환율등록/외화평가(fx-rate/fx-reval)·부가세집계(vat-report)·재무제표(fin-statement)·기간마감(period-lock)·어음(bill-note). erp_FI.한선 +8함수, 액션FI +7 doctype, fi.html 폼 16종, 사상규칙 +17행, 마스터_환율/기간마감 신설. 4상 전 발현 라이브 실측(fx 시퀀스에서 티/옴/타/음 1패스). FI 단독 스모크 16/16.
성능 근본 소탕 (Phase 1.5 — 갭 진행의 전제)
- VM 함정 확정(crownyc.c:7076~7086, sample+atos 실측): 글자()/부분()이 호출마다 UTF-8 오프셋 재계산 → 성장 파일 per-char 스캔 = O(n²) 폭발(여신노출액 8s·가격조건 21.6s·셀총계 20s — 셀넷 6KB→45KB 성장이 트리거). wedge·502 연쇄의 진범.
- 72개 사이트 버퍼 단일 패스 전환(10 libs+셀코어+3서버). 전 병목 <2s. 거래기록 셀링크→S선행 직접 기록(셀갱신 O(n²) 재작성 핫패스 제거, 12s→0.1s).
- per-request 회수 표준 확정: 문자열보호+문자열마크+되감기 str 단독(메모리복원 동시 장착 시 누진 지연 상호작용 실측 — 가드레일 등재).
- 회귀: 98/98 PASS ×3연속(19s). 헬스 3면 정상(A 1204·B 615·PLM 5셀).
전 갭 구현 완료 (2026-07-23 마감)
43갭 + 부분 4종 전부 완료. 모듈별: FI 7(payment-run/dunning/fx-rate·fx-reval/vat-report/fin-statement/period-lock/bill-note) · CO 4→7doctype(activity-type·alloc/actual-cost/cost-plan·variance/overhead-rate·run) · MM 6→7(goods-issue/rfq·quote-compare/vendor-eval/po-approval/batch/reorder-check) · SD 5(atp-check/credit-memo/backorder/route-schedule/rebate) · PP 5(plan-convert/subcontract/scrap/capacity-level/rem-plan) · HR 4(recruit/training/expense/time-eval) · QM 3(vendor-quality/calibration/stability) · PM 3(maint-calendar 자동오더/work-permit/maint-settle) · PS 3(schedule/ps-settle/forecast) · WM 3(wave-picking/two-step-pick/cross-dock) · 공통 4(X-G1 승인워크플로 /api/erp/approve 대역 A/B 라우팅+감사셀·X-G2 승인 RBAC 직급표·X-G3 fx-rate 팩트·X-G4 다중법인 마스터+org 필터) · 부분(FI 계정필터=/api/cells/fi-by-account, 재무제표·PP능력·WM웨이브는 갭 구현에 흡수)
- doctype 91→138 · 사상규칙 38→600번대 · 모든 기능 4상(티/옴/타/음) 라이브 실발현 실측 · 스모크 138/138 PASS(반복 유지) · 승인 종단(음 셀→RBAC 게이트→승인/반려→감사 셀→계보) 게이트웨이 경유 확증 · 성능 전 doctype <2s
- 진행 중 확정한 VM 함정 4건(함수간 주석 오프셋 오염 / per-char O(n²) / 메모리복원+되감기 동시 장착 / 조건식 내 버퍼 함수 2회 인라인) 가드레일·메모리 등재. 데이터 정합: 셀갱신 append-원장 전환(재작성 레이스 제거), 거래기록 S선행 직접 기록(12s→0.1s)
- 잔여(비차단): 승인 UI 폼(페이지) · erp_WM 기존 창고이동/보충전략실행의 잠복 조건식 함정 감사 · reorder-check 음 분기(안전재고 0 시드 부재) · PM 달력 배치 O(n)/도래건