← 목록
기타 2026-07-22 14KB 읽기 14분

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가지:

  1. 셀id 네임스페이스 접두 — 현재 셀id는 정수 단일 네임스페이스. 분할하면 서버마다 각자 증가 → 충돌. E123(ERP)/P45(PLM)/A7(AIP)/L3(LLM) 접두 도입, 링크(슬롯8/9)도 접두 포함 저장 → 서버 경계 넘는 계보 추적 유지.
  2. 각자 저장 — 서버별 data/cells/{erp,plm,aip,llm}셀넷.psv + 자기 장부. 쓰기는 소유 서버만(단일 작성자 원칙), 교차는 읽기 전용.
  3. 실시간 전수 스크리닝 이중 경로:
- 정본=파일 직독(같은 호스트): PSV append-log라 라인 단위 원자적 → 다른 서버가 grep/읽기로 전수 O(n) 스캔, 토큰0·ms급. 실시간·전수 요건에 가장 강함. - 보조=HTTP 스크리닝 API(/api/cells/scan?since=): 원격·필터 조회용. 서버 다운 시에도 파일 경로는 살아있음.

2. 서버 크기·최적화 현황 (실측 2026-07-22)

서버포트형태크기RSS상태
ERP통합서버9981crownyc(.toau 4.9MB)174,319큐브4.9MBhealth 0.27~0.34s, 셀 159
ERP액션서버(구 3액션)9980crownyc(.toau)소형5.4MB휴가/승인/배분만(초기 배선, 91 doctype과 별개)
넥서스분기서버(AIP)9798crownyc(.toau 215KB)소형4.6MB정상
감사서버(PLM/넥서스 코어)9802node39.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 일괄 지급)F110FI-G1
독촉 관리F150FI-G2
외화 평가·환산(환율테이블)FAGL_FCVFI-G3마스터에 통화 필드만
부가세 집계·신고세금 리포트FI-G4세금코드 마스터만
재무제표 리포트 구조화F.01FI-G5 (⚠️승격)
기간마감 통제(마감월 전기 차단)OB52FI-G6
어음·수표 관리어음관리FI-G7

CO 관리회계

원가센터 귀속KB21원가귀속
내부오더KO01내부오더생성
표준원가CK11표준원가등록
원가배부KSU5원가배부실행
손익센터 전기KE51손익센터전기
수익성분석(CO-PA)KE21수익성집계·수익성분석세분
활동유형·작업가격KP26CO-G1
실제원가(자재원장)CKMLCPCO-G2
원가 계획·예산+예실차이KP06/KKSCO-G3
간접비 부과율부과CO-G4

MM 자재구매

구매요청/오더/입고/송장검증ME51/ME21/MIGO/MIRO4종
재고이동·재고평가(단가변경)MB1B/MR21재고이동·재고평가
소싱계약+계약오더ME31K소싱계약체결·계약구매오더
재고실사 3단(등록·계수·차이)MI01/04/073종
역분개MBSTMM역분개
자재 불출(소비 출고)MB1AMM-G1이동만 있음
RFQ·견적 비교ME41/49MM-G2
공급처 평가ME61MM-G3
구매 승인전략(금액별 결재)ReleaseMM-G4AIP decide 미배선
배치·시리얼 관리배치MM-G5
재주문점 자동 구매제안MRP형MM-G6안전재고 필드만

SD 영업

견적/수주/납품/출하/청구VA21/VA01/VL01/출하GI/VF015종
여신관리(한도·노출액)FD32여신체크·여신노출액
가격조건VK11가격조건등록·유효단가
반품RE반품등록
ATP 가용성 체크(수주 시 재고 약속)ATPSD-G1
크레딧/데빗 메모메모SD-G2반품이 일부 대체
백오더 처리백오더SD-G3
출하 일정·루트 결정루트SD-G4
리베이트·판촉 조건리베이트SD-G5

PP 생산

BOM/라우팅/작업장 마스터CS01/CA01/CR013종
생산오더/실적/확정/정산CO01/CO11/CO15/KO884종
소요량전개(MRP)MD01소요량전개
능력소요CM01⚠️능력소요조회(조회만)
계획오더→생산오더 전환MD04PP-G1
외주가공외주PP-G2
스크랩·불량 실적불량PP-G3실적에 불량수량 없음
능력 평준화(스케줄 조정)CM21PP-G4
반복제조REMPP-G5

HR 인사

입사/근태/급여/휴가/평가PA40/PT/PY5종
연말정산/4대보험/조직/이동/퇴직5종
채용 관리E-RecHR-G1
교육·훈련 이력TEMHR-G2
출장·경비 정산FI-TVHR-G3
근태 시간평가(연장·야간 자동산출)시간평가HR-G4단순 기록만

QM 품질

검사계획/로트/결과/사용결정QP01/QA01/QE01/QA114종+계획기반로트
품질통지/증명서QM01/QC212종
관리도(SPC)·샘플링SPC관리도점검·샘플링 마스터
공급처 품질평가(→MM 연동)벤더QMQM-G1
계측기 교정 관리교정QM-G2
안정성·신뢰성 시험안정성QM-G3

PM 설비보전

설비/기능위치/설치IE01/IL013종
보전오더/고장통지/완료IW31/IW21/IW323종
예방보전 계획·실행IP01/IP102종
측정점·측정문서IK01/IK112종
보전BOM·자재소요IB012종
보전 달력·자동 오더 생성IP30PM-G1주기·최종실행일만
작업허가(안전 permit)permitPM-G2
보전원가 CO 정산(오더→원가센터)정산PM-G3

PS 프로젝트

프로젝트/WBS/네트워크/활동CJ01/CJ11/CN21/CN224종
마일스톤/예산집행/자원배정/실적확정4종
EVM 진척EVM진척관리EVM
일정계획(선후행→일정 산출)스케줄링PS-G1
프로젝트 정산(→CO)CJ88PS-G2
원가 계획·포캐스트계획PS-G3

WM 창고

입고배정/이동/피킹/실사LT01/LT03/LI014종
빈 생성/존·빈유형/보충/RFLS01/LP21/LM4종
웨이브피킹웨이브⚠️ WM-G1함수 있음, API·페이지 미배선(배열 인자)
2단계 피킹2-stepWM-G2
크로스도킹크로스도킹WM-G3

공통 인프라(모듈 횡단)

문서 변경계보CDHDR셀 계보(PLM trace) — SAP보다 직결
넘버레인지SNRO셀id (분할 시 접두 필요)
승인 워크플로 전 doctype 배선Release/WFX-G1AIP decide가 구 3액션만
권한(RBAC) 셀코어 ERP 적용SU01X-G2멀티테넌트 쪽에만 존재
통화·환율 테이블TCURRX-G3FI-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)/도래건