10 Commits

Author SHA1 Message Date
rtgs
0c29884780 feat(deploy): RTGS 3센터 컨테이너 배포 산출물
- Dockerfile.backend: 7서비스 공용 이미지(멀티스테이지 gradle 빌드, SERVICE env 선택, curl 포함)
- docker-compose.yml: PG(3DB)+Kafka+순번기+DC1/DC2/DC3 각6서비스+프론트, 컨테이너 격리로 포트오프셋 불필요, depends_on 헬스 순서
- Dockerfile.frontend+nginx.conf: 콘솔+DT 정적빌드→nginx 서빙+API 리버스프록시(X-RTGS-DC 헤더/dcN 경로 센터 라우팅)
- init/init-3centers.sql, .dockerignore, README(Coder 런북 + Coolify 어댑테이션/정책 경고)
- vite.config: 배포 빌드에 dt.html 엔트리 추가(콘솔+DT 한번에)

빌드/기동 검증은 Coder(podman)에서 — 로컬 PC는 Docker 미지원. 프론트 build·compose 구조는 로컬 정적 검증 완료.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 18:14:03 +09:00
rtgs
427f361783 feat(3c): DT 단말 + 콘솔 센터(DC1/DC2/DC3) 전환
- DT 단말(:5180, dt.html/src/dt): 접속 센터 선택 후 해당 Gucci 관문으로 로그인·이체·조회.
  vite.dt.config 프록시 /dc1|/dc2|/dc3 -> 8095|8195|8295. X-Timestamp 초 단위(ReplayGuard).
- 콘솔 센터 전환: auth.ts getDc/setDc + X-RTGS-DC 헤더, App.tsx 드롭다운(+reload),
  vite.config router로 헤더 기반 포트 라우팅(+0/+100/+200) → 3센터 원장·대사·보고서 전환 조회.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 17:33:43 +09:00
rtgs
d180d516cd feat(3c): 3센터 A-A-A 기동 스크립트 + 인프라 멱등화
- run-3centers.cmd: 공유 인프라 + DC1(3c,순번기) + DC2/DC3 일괄 기동 오케스트레이터
- run-dc2/dc3: CHANEL_URL(자기 센터 Chanel 8191/8291) + RTGS_CONTROL_ENABLED=false
- start-infra-native: Kafka 9092 LISTENING이면 재기동 skip(중복 창 방지, 멱등)
- run-dt.cmd: 단말(DT) dev 서버 기동
- 전제: PostgreSQL max_connections>=300(19서비스 커넥션)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 17:33:27 +09:00
rtgs
5b706bfc33 feat(report): 처리량(TPS) 지표 추가
- /admin/report에 throughput(초당 버킷): 접수/완결 최대 TPS, 완결 평균 TPS(활성구간), 활성 초수
- 보고서 화면에 🚀 처리량(TPS) 섹션(지연시간 아래) + 드라이버 부하 기준 주의 문구

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 14:29:47 +09:00
rtgs
61ced29510 feat(report): 통계 현황 보고서 화면(📈 보고서 탭)
- LouisVuitton /admin/report: 전체 거래 집계(요약·대사·금액·처리시간·기관별)
- 처리시간은 stage timestamp 기반 접수→완결 avg/p50/p95/max + 단계별 평균(percentile_cont)
  · 인과 정합(접수≤순번) 행만 집계해 BMI 재사용 시계역전 건 제외
- 대사: transfer=journal_log=settlement_view 건수 일치 + 총액 보존 검증
- 프론트: Report.tsx 신규 + App.tsx 상단 '📈 보고서' 탭(ADMIN 로그인 게이트)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 14:13:55 +09:00
rtgs
c96664e52d feat(frontend): 포탈·운영·관리자 콘솔 및 매뉴얼·거래 타임라인·전문탭·서비스 제어 UI
- 콘솔을 포탈/운영/관리자 3뷰로 분리(Portal·AdminPanel·AdminLogin·auth·util), ADMIN JWT 로그인 게이트
- 상단 우측 '서비스 매뉴얼'(public/manual.html) 링크, 로그인 화면 불필요 계좌조회 에러 제거
- 거래 조회: 서비스별 처리시각 5단계 타임라인 + pacs.008/pacs.002 전문 탭(/notifications 프록시)
- 관리자: 서비스 제어 패널(기동/중지/재기동/로그, 4초 폴링, 인프라 상태 포함)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 13:41:35 +09:00
rtgs
1180013506 feat(admin): 서비스 실시간 지표 수집(actuator 집계)
- 7개 서비스 actuator 지표를 수집해 /admin/metrics/summary로 집계 제공(포탈 카드 지표 소스)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 13:41:18 +09:00
rtgs
552d9d716c feat(admin): 서비스 프로세스 기동·중지·재기동 제어
- LouisVuitton에 /admin/services (상태 통합), /admin/services/{id}/start|stop|restart, /log 추가
- 중지=하트비트 pid를 ProcessHandle 강제종료+행 삭제, 기동=동일 JDK(java.home)로 jar 실행·로그 캡처
- 제어 대상 화이트리스트(Sequencer·Chanel·Dior·Hermes·Prada), ADMIN 인증+rtgs.control.enabled 게이트
- 인프라(PostgreSQL/Kafka) TCP 도달성 포함. 로컬 프로토타입 전용

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 13:41:05 +09:00
rtgs
ffbeb35d18 feat(ledger): 거래 단계별 처리시각 기록·조회 및 pacs.002 결과통보 조회
- transfer에 pdng_at(Dior)·acsp_at(Hermes) 컬럼 추가(V5), Dior/Hermes가 각 단계 처리시각 기록
- Chanel /inquiry 응답에 접수·순번·기록·정산·완결 5단계 시각(rcvdAt/actcAt/pdngAt/acspAt/acccAt) 노출
- 경합 안전 upsert(Dior COALESCE, Hermes acsp_at 갱신·pdng_at 보존)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 13:40:46 +09:00
rtgs
58ca23b5d9 Initialize RTGS prototype repository
3센터 A-A-A RTGS 실시간총액결제 프로토타입 최초 버전관리 시작.
- backend: Kotlin/Gradle 멀티모듈(sequencer, common, 채널/센터 모듈)
- frontend: Vite + TS
- infra: docker-compose, prometheus/grafana, ELK 네이티브 스크립트
- loadtest(k6), sim(장애/순서/정합성 시나리오), docs(PoC 보고서/복원력방안)
2026-07-15 15:37:32 +09:00