Phase 2a: 모듈서버 패턴 + 재사용 빌드시스템 (ac 모듈 38서비스 실동작)

- ac_svr(30 매입서비스 advertise) + rc_svr/st_svr, dbio 정적라이브러리, common 라이브러리
- app/build.sh: 모듈 자동발견(app/src/<mod>/<mod>_svr.pgc) → ecpg+buildserver+ndrxconfig 생성
- ac 배치 2종, 스키마 9테이블, 검증: 41서비스 AVAIL, 체인·배치 psql 커밋, prepared_xacts=0

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
forge-bot 2026-07-19 09:37:17 +00:00
parent e6e29e6b5d
commit 05a0ff3e56
28 changed files with 1964 additions and 410 deletions

50
docs/service-catalog.md Normal file
View file

@ -0,0 +1,50 @@
# 서비스 카탈로그 — acquire-core-x (2000본 구성)
파일 2000본은 유지하되, **모듈당 온라인 서버 바이너리 1개가 그 모듈의 온라인 서비스 다수를
`tpadvertise`**하는 실제 Tuxedo 방식으로 프로세스를 구성한다.
## 프로세스 구성
| 종류 | 프로세스/파일 | 설명 |
|---|---|---|
| 모듈 온라인 서버 | 11개 서버 바이너리 = `<mod>_svr` | 각 ~30 서비스 advertise (총 ~350) |
| dbio | 링크 라이브러리 (`lib<mod>dbio.a`) | 서비스가 호출하는 EXEC SQL 함수 (~300 .pgc) |
| common | 링크 라이브러리 (`libacqcommon.a`) | leaf 유틸 (~120 .c) |
| batch | ~180 독립 실행파일 (`main`) | 마감/집계, 온디맨드, XA |
| tmsrv | RM1 (PostgreSQL XA) | 2PC 조율 |
## 모듈별 온라인 서비스 (대표, 각 32개 목표 → 총 ~350)
- **ac 매입**: ACQUIRE, ACQ_DDC, ACQ_EDI, ACQ_EDC, ACQ_CANCEL, ACQ_CORRECT, ACQ_PARTIAL,
ACQ_INSTALL, ACQ_FOREIGN, ACQ_UNMATCH, ACQ_REPROC, ACQ_DUPCHK, ACQ_LIMITCHK, ACQ_FEEADJ,
ACQ_STATUS, ACQ_MERCHSUM, ACQ_ISSUERCLS, ACQ_WHT, ACQ_TAXINV, ACQ_APPRLINK, ACQ_DATECHG,
ACQ_AMTFIX, ACQ_RECLASS, ACQ_XFERLINK, ACQ_APPRMAP, ACQ_SETTLELINK, …
- **au 승인/한도**: AUTH, LIMIT_CHK, LIMIT_DEC, LIMIT_RST, STANDIN, AUTH_CANCEL, AUTH_PARTCXL,
FRAUD_DETECT, AUTH_RETRY, INSTALL_AUTH, AUTH_STATUS, …
- **rc 대사**: RECONCILE, RC_APPR_ACQ, RC_ACQ_DEP, RC_RETURN, RC_AMTDIFF, RC_CNTDIFF,
RC_3WAY, RC_TOLERANCE, RC_REMATCH, RC_HOLD, RC_UNMATCH, …
- **st 정산/수수료**: SETTLE, ST_MDR, ST_VANFEE, ST_RELAYFEE, ST_NETTING, ST_VAT, ST_WHT,
ST_ADJUST, ST_ADVANCE, ST_DELAYINT, ST_HOLD, ST_SPLIT, ST_PAYDATE(T+n), …
- **py 지급**: PAY_FILEGEN, PAY_RESULT, PAY_REPROC, PAY_HOLD, PAY_CANCEL, PAY_ACCTCHK,
PAY_SPLIT, PAY_INT, PAY_XFERLINK, …
- **lg 원장**: LG_POST, LG_CREDIT, LG_DEBIT, LG_DOUBLE, LG_BALCHK, LG_REVERSE, LG_CARRY,
LG_CLOSE_LINK, …
- **cl 마감**: CL_DAILY, CL_MONTHLY, CL_QUARTER, CL_SNAPSHOT, CL_RECLOSE, CL_VERIFY, …
- **mm 마스터**: MM_MERCH_REG, MM_MERCH_UPD, MM_FEERATE, MM_BIN, MM_LIMIT, MM_CODE, …
- **vl 정합성**: VL_SALES, VL_CARD, VL_LIMIT, VL_AMOUNT, VL_ANOMALY, VL_REQUIRED, …
- **mg 전문게이트웨이**: MG_RECV, MG_SEND, MG_ISO8583, MG_STAN, MG_ROUTE, MG_RESEND, …
- **cm 공통**: CM_CODE, CM_BIZDAY, CM_AMT, CM_SEQ, CM_FX, CM_LUHN, …
## 대표 tpcall 체인 (실동작 검증 대상)
1. **매입 체인**: `ACQUIRE``RECONCILE``SETTLE``LG_POST` (글로벌 XA) ← 슬라이스 검증됨
2. **승인 체인**: `AUTH``LIMIT_DEC``FRAUD_DETECT`
3. **정산 체인**: `SETTLE``ST_MDR``ST_NETTING``PAY_FILEGEN`
4. **마감 배치**: `cl_daily_batch` (커서) → `CL_SNAPSHOT``LG_CLOSE_LINK`
## Phase 2 검증 게이트 (all must pass)
- 풀빌드: 모든 `.pgc` ecpg→buildserver, 모든 batch/common 컴파일 (EXIT 0)
- 전서버 부팅: `xadmin start` 후 모든 `<mod>_svr` + tmsrv `runok`
- 전서비스 advertise: `xadmin psc`에 ~350 서비스 AVAIL
- 대표 체인 4종: 클라이언트 실행 → psql 커밋 row 확인