규모확장 Wave A: 전 11모듈 svc 30→75·batch 22→35 + 전 모듈 운영데이터 시드
- svc 330→825 (모듈당 +45 고유 실업무: chargeback·재매입·심사워크플로·전문유형별· 대사세분·정산시뮬·지급재처리·복식결산·마감워크플로·마스터심사·검증룰·전문라우팅 등) - batch 242→385 (모듈당 +13), 카피북 헤더·디스패처 advertise 전 75 반영 - db/schema.d/95-module-seed.sql: 전 모듈 테이블 운영데이터(au 8.4k·st 15.9k·mg 16.9k· lg 14.6k·rc 7.7k·py 2.9k·vl 8.5k·cm 10.4k 등, 총 ~171k행) — base 거래와 정합 - 화면 매니페스트 825 재생성, 큐 메모리 튜닝(NDRX_MSGMAX 50→30) - 검증: build DONE modules=11 batches=385, 12서버 runok, xadmin psc 828 AVAIL, 매입체인 XA 커밋(status=S), 새서비스 시드데이터 스모크(ACQ_MERCHSUM/RC_STATS 실값), 전 코퍼스 .pgc 클론 0, 헤드리스 스크린샷 확인 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
19acf4ed96
commit
ea90bef264
1292 changed files with 53968 additions and 20 deletions
18
app/src/au/dbio/au_blacklist_hit_batch.h
Normal file
18
app/src/au/dbio/au_blacklist_hit_batch.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* au_blacklist_hit_batch.h - copybook for au_blacklist_hit_batch (XA client).
|
||||
* 블랙리스트 카드 승인시도 검출 컨텍스트. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_BLACKLIST_HIT_BATCH_H
|
||||
#define AU_BLACKLIST_HIT_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long hit_cards; /* 시도 적발 카드수 */
|
||||
long hit_auths; /* 시도 승인건수 */
|
||||
long logged; /* fraud_log 신규 기록 */
|
||||
} au_blacklist_hit_ctx_t;
|
||||
|
||||
/* 블랙리스트 히트는 무조건 만점(999) 점수. */
|
||||
long aub_blacklist_hit_score(void);
|
||||
|
||||
#endif /* AU_BLACKLIST_HIT_BATCH_H */
|
||||
19
app/src/au/dbio/au_cancel_reproc_batch.h
Normal file
19
app/src/au/dbio/au_cancel_reproc_batch.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* au_cancel_reproc_batch.h - copybook for au_cancel_reproc_batch (XA client).
|
||||
* 미반영 승인취소 일괄 재처리 컨텍스트. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_CANCEL_REPROC_BATCH_H
|
||||
#define AU_CANCEL_REPROC_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long reproc_full; /* FULL/기타 -> C 전환 */
|
||||
long reproc_void; /* VOID -> V 전환 */
|
||||
long reproc_partial; /* PARTIAL 감액 반영 */
|
||||
long skipped; /* 상태 부적합으로 건너뜀 */
|
||||
} au_cancel_reproc_ctx_t;
|
||||
|
||||
/* 재처리 합계. */
|
||||
long aub_cancel_reproc_total(const au_cancel_reproc_ctx_t *ctx);
|
||||
|
||||
#endif /* AU_CANCEL_REPROC_BATCH_H */
|
||||
19
app/src/au/dbio/au_delay_watch_batch.h
Normal file
19
app/src/au/dbio/au_delay_watch_batch.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* au_delay_watch_batch.h - copybook for au_delay_watch_batch (XA client).
|
||||
* 승인->매입 지연 감시 컨텍스트 + 지연구간 라벨 헬퍼. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_DELAY_WATCH_BATCH_H
|
||||
#define AU_DELAY_WATCH_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
long pending; /* 미매입 승인(A) 잔량 */
|
||||
long avg_age_sec; /* 평균 경과초 */
|
||||
long max_age_sec; /* 최대 경과초 */
|
||||
long over_1h; /* 1시간 초과 체류 건수 */
|
||||
long over_1d; /* 24시간 초과 체류 건수 */
|
||||
} au_delay_watch_ctx_t;
|
||||
|
||||
/* 경과초를 지연구간 라벨(FRESH/AGING/STALE/CRITICAL)로 변환. */
|
||||
const char *aub_delay_bucket(long age_sec);
|
||||
|
||||
#endif /* AU_DELAY_WATCH_BATCH_H */
|
||||
18
app/src/au/dbio/au_dup_auth_batch.h
Normal file
18
app/src/au/dbio/au_dup_auth_batch.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* au_dup_auth_batch.h - copybook for au_dup_auth_batch (XA client).
|
||||
* 중복승인 검출 컨텍스트 + 초과분 계산 헬퍼. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_DUP_AUTH_BATCH_H
|
||||
#define AU_DUP_AUTH_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long dup_groups; /* 중복 그룹수 (카드+가맹점+금액) */
|
||||
long extra_auths; /* 원거래를 뺀 잉여 승인건수 */
|
||||
long extra_gross; /* 잉여 승인 금액합 */
|
||||
} au_dup_auth_ctx_t;
|
||||
|
||||
/* 그룹 건수에서 원거래 1건을 뺀 잉여 건수. */
|
||||
long aub_dup_extra(long group_cnt);
|
||||
|
||||
#endif /* AU_DUP_AUTH_BATCH_H */
|
||||
19
app/src/au/dbio/au_hourly_stat_batch.h
Normal file
19
app/src/au/dbio/au_hourly_stat_batch.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* au_hourly_stat_batch.h - copybook for au_hourly_stat_batch (XA client).
|
||||
* 시간대별 승인 통계 컨텍스트 (24칸 히스토그램). Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_HOURLY_STAT_BATCH_H
|
||||
#define AU_HOURLY_STAT_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long by_hour[24]; /* 시간대별 건수 히스토그램 */
|
||||
long total;
|
||||
int peak_hour;
|
||||
long peak_count;
|
||||
} au_hourly_stat_ctx_t;
|
||||
|
||||
/* 히스토그램에서 피크 시간대를 찾아 ctx.peak_* 를 채운다. */
|
||||
void aub_hourly_find_peak(au_hourly_stat_ctx_t *ctx);
|
||||
|
||||
#endif /* AU_HOURLY_STAT_BATCH_H */
|
||||
20
app/src/au/dbio/au_issuer_mix_batch.h
Normal file
20
app/src/au/dbio/au_issuer_mix_batch.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* au_issuer_mix_batch.h - copybook for au_issuer_mix_batch (XA client).
|
||||
* 발급사(카드망)별 구성비 집계 컨텍스트 + BIN 선두자리 -> 망 이름 헬퍼.
|
||||
* Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_ISSUER_MIX_BATCH_H
|
||||
#define AU_ISSUER_MIX_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long networks; /* 관측된 카드망 수 */
|
||||
long total; /* 전체 승인건수 */
|
||||
char top_network[16];
|
||||
long top_count;
|
||||
} au_issuer_mix_ctx_t;
|
||||
|
||||
/* 카드번호 선두 한 자리를 카드망 이름으로 매핑. */
|
||||
const char *aub_issuer_network(char lead);
|
||||
|
||||
#endif /* AU_ISSUER_MIX_BATCH_H */
|
||||
16
app/src/au/dbio/au_limit_restore_batch.h
Normal file
16
app/src/au/dbio/au_limit_restore_batch.h
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* au_limit_restore_batch.h - copybook for au_limit_restore_batch (XA client).
|
||||
* 임시한도 일괄 복원 컨텍스트. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_LIMIT_RESTORE_BATCH_H
|
||||
#define AU_LIMIT_RESTORE_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
long restored_cards; /* 복원한 카드수 */
|
||||
long restored_amount; /* 걷어낸 임시한도 총액 */
|
||||
} au_limit_restore_ctx_t;
|
||||
|
||||
/* 복원 결과 요약 한 줄을 out 에 만든다 (버퍼 cap 바이트). */
|
||||
void aub_limit_restore_summary(const au_limit_restore_ctx_t *ctx, char *out, int cap);
|
||||
|
||||
#endif /* AU_LIMIT_RESTORE_BATCH_H */
|
||||
21
app/src/au/dbio/au_merch_rank_batch.h
Normal file
21
app/src/au/dbio/au_merch_rank_batch.h
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* au_merch_rank_batch.h - copybook for au_merch_rank_batch (XA client).
|
||||
* 가맹점 승인 순위 TOP-N 컨텍스트. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_MERCH_RANK_BATCH_H
|
||||
#define AU_MERCH_RANK_BATCH_H
|
||||
|
||||
#define AU_MERCH_RANK_TOP 5
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long listed; /* 출력한 순위 줄 수 */
|
||||
long top_gross; /* 1위 가맹점 금액 */
|
||||
char top_merchant[64]; /* 1위 가맹점 */
|
||||
long grand_gross; /* TOP-N 합계 금액 */
|
||||
} au_merch_rank_ctx_t;
|
||||
|
||||
/* 1위 대비 점유율(%)을 계산. */
|
||||
long aub_rank_share_pct(long gross, long top_gross);
|
||||
|
||||
#endif /* AU_MERCH_RANK_BATCH_H */
|
||||
19
app/src/au/dbio/au_night_auth_batch.h
Normal file
19
app/src/au/dbio/au_night_auth_batch.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* au_night_auth_batch.h - copybook for au_night_auth_batch (XA client).
|
||||
* 심야 승인 집계 컨텍스트 + 심야비중 등급 헬퍼. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_NIGHT_AUTH_BATCH_H
|
||||
#define AU_NIGHT_AUTH_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long night_count;
|
||||
long night_gross;
|
||||
long day_count;
|
||||
long night_bps; /* 전체 대비 심야건수 비중 (bps) */
|
||||
} au_night_auth_ctx_t;
|
||||
|
||||
/* 심야비중 bps 를 등급 문자열로 변환 (LOW/ELEVATED/ALERT). */
|
||||
const char *aub_night_grade(long bps);
|
||||
|
||||
#endif /* AU_NIGHT_AUTH_BATCH_H */
|
||||
18
app/src/au/dbio/au_noauth_detect_batch.h
Normal file
18
app/src/au/dbio/au_noauth_detect_batch.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* au_noauth_detect_batch.h - copybook for au_noauth_detect_batch (XA client).
|
||||
* 무승인 매입 검출 컨텍스트 + 심각도 헬퍼. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_NOAUTH_DETECT_BATCH_H
|
||||
#define AU_NOAUTH_DETECT_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long purchases; /* 검사한 매입건수 */
|
||||
long suspects; /* 무승인 의심건수 */
|
||||
long suspect_gross; /* 의심 금액합 */
|
||||
} au_noauth_detect_ctx_t;
|
||||
|
||||
/* 의심비중으로 심각도 판정 (0=CLEAN, 1=MINOR, 2=MAJOR). */
|
||||
int aub_noauth_severity(long suspects, long purchases);
|
||||
|
||||
#endif /* AU_NOAUTH_DETECT_BATCH_H */
|
||||
18
app/src/au/dbio/au_preauth_convert_batch.h
Normal file
18
app/src/au/dbio/au_preauth_convert_batch.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* au_preauth_convert_batch.h - copybook for au_preauth_convert_batch (XA client).
|
||||
* 만기 선승인 처분(자동확정/자동취소) 컨텍스트. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_PREAUTH_CONVERT_BATCH_H
|
||||
#define AU_PREAUTH_CONVERT_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char cutoff_date[16]; /* 이 날짜 이전 P 건이 처분 대상 */
|
||||
long confirmed; /* 고액 -> C 자동확정 */
|
||||
long expired; /* 일반 -> X 자동취소 */
|
||||
long released_amount; /* 취소로 풀린 홀드 금액 */
|
||||
} au_preauth_convert_ctx_t;
|
||||
|
||||
/* 처분 방침: 금액이 문턱 이상이면 확정(1), 아니면 취소(0). */
|
||||
int aub_preauth_should_confirm(long amount, long threshold);
|
||||
|
||||
#endif /* AU_PREAUTH_CONVERT_BATCH_H */
|
||||
18
app/src/au/dbio/au_standin_settle_batch.h
Normal file
18
app/src/au/dbio/au_standin_settle_batch.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* au_standin_settle_batch.h - copybook for au_standin_settle_batch (XA client).
|
||||
* 대행승인(stand-in) 정산반영 컨텍스트. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_STANDIN_SETTLE_BATCH_H
|
||||
#define AU_STANDIN_SETTLE_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long settled; /* A -> S 전환 건수 */
|
||||
long settled_gross; /* 전환 금액 합계 */
|
||||
long skipped; /* 금액 0 이하로 건너뛴 건수 */
|
||||
} au_standin_settle_ctx_t;
|
||||
|
||||
/* 정산반영이 하나라도 있었는지 (1/0). */
|
||||
int aub_standin_any(const au_standin_settle_ctx_t *ctx);
|
||||
|
||||
#endif /* AU_STANDIN_SETTLE_BATCH_H */
|
||||
18
app/src/au/dbio/au_velocity_flag_batch.h
Normal file
18
app/src/au/dbio/au_velocity_flag_batch.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* au_velocity_flag_batch.h - copybook for au_velocity_flag_batch (XA client).
|
||||
* velocity 위반 카드 적발 컨텍스트 + 점수 헬퍼. Kept in dbio/ for -I resolution.
|
||||
*/
|
||||
#ifndef AU_VELOCITY_FLAG_BATCH_H
|
||||
#define AU_VELOCITY_FLAG_BATCH_H
|
||||
|
||||
typedef struct {
|
||||
char biz_date[16];
|
||||
long threshold; /* 일일 건수 임계값 */
|
||||
long flagged_cards; /* 적발 카드수 */
|
||||
long logged; /* 신규 기록한 fraud_log 건수 */
|
||||
} au_velocity_flag_ctx_t;
|
||||
|
||||
/* 위반 건수를 fraud score 로 환산 (650 + 초과건수*15, 상한 999). */
|
||||
long aub_velocity_score(long cnt, long threshold);
|
||||
|
||||
#endif /* AU_VELOCITY_FLAG_BATCH_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue