"Forge가 얼마나 복잡한 레거시를 다룰 수 있는가"를 증명하는 Before 자산.
지표는 전부 소스에서 자동 집계(추정·과장 없음).
- tools/gen_metrics.py: 소스 실측 → app/ui/metrics.js + index.html 인라인
· 축A 규모: 파일 4,626 / 33만 LOC / EXEC SQL 23,742 / tpcall 989 /
tpbegin 1,234 / UBF 46,904 / 테이블 75 / 카피북 2,207
· 축B 자동변환 실패지점: ATMI·XA2PC(6단)·ECPG·UBF·카피북팬아웃·매크로
각각 실측 카운트 + Java/Spring 이전이 어려운 이유
· 축B 거래추적: ACQUIRE 6프로그램·6XA브랜치, PAY_APPROVE 5·5, CL_DAILY 6·6
(프로그램→테이블쓰기→XA브랜치 트리)
· 축C 레거시 인벤토리: acq_common.h 139프로그램 공유, 매크로 2,247,
sqlca 수동분기 18,719, EXEC밀도 9.8/파일
- 포털 신규 화면 "마이그레이션 난이도"(AR0002, #mig): 위 3축을 한 화면에
- docs/MIGRATION_COMPLEXITY.md: 피치덱용 브리프 (실동작 증거 + 발견된 실결함 4건)
- README: IR 자료 안내 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
IR·데모용으로 "복잡하게 얽힌 시스템"을 눈에 보이게 만든다. 지금까지 복잡도는
백엔드에 실재했지만 그리드 화면에는 드러나지 않았다.
- tools/gen_callgraph.py: svc/*.pgc 의 tpcall 관계를 추출해 호출그래프를 뽑고,
force-directed 레이아웃을 사전계산(외부 의존성 0, 시드 고정)해 index.html 에
인라인 주입(게이트웨이는 index.html 만 서빙 → 외부 .js 로드 불가).
552 노드 · 494 엣지 · 11 모듈 · 41 모듈간 호출경로 · 최대 체인 깊이 6단.
- 포털 신규 화면 "아키텍처·복잡도" (AR0001, 최상단 nav):
· 모듈뷰: 11개 도메인을 링으로 배치, 방향 화살표 + 호출수 비례 두께
· 서비스뷰: 552개 서비스 hairball, 모듈 색상 + 호출차수 비례 크기, 팬/줌/호버
· 대표 심층 업무체인 5개 칩(ACQUIRE 6단 등) 클릭 시 경로 하이라이트
· KPI: 온라인 1,463 / 배치 506 / 체인연결 552 / 엣지 494 / 최대깊이 6단
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- tools/gen_screens.py: svc 소스에서 입력(getl/gets_)·출력(setl/sets) 필드와
한글 설명을 추출해 app/ui/screens.js(330 화면 매니페스트) 생성
- index.html 확장: 모듈별 메뉴트리(11그룹×30화면) + 화면검색 + 주요업무 즐겨찾기 9종,
화면별 입력폼 자동구성(한글라벨·기본값), 조회성 화면 XA 자동 off, 결과그리드·거래저널
- README: 화면 계층(4.0) 문서화
- 검증: screens.js 서빙, ACQ_DUPCHK(조회)·RC_STATS(통계)·MM_MERCH_REG(XA 등록) 실호출 정상
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>