# RTGS SW 산출물 관리대장

> 목적: **코드와 문서의 정합성 유지**(과거 PoC 시 문서 미갱신으로 코드와 설계서가 어긋난 문제 재발 방지).
> 원칙: 개발·변경이 있을 때 **관련 산출물을 같은 작업에서 즉시 갱신**하고, 개발일지에 이력을 남긴다.
> 관리: 루비(AI) · 검토: 양팀장님 · 최초 2026-07-10

---

## 1. 정합성 원칙 (Single Source of Truth)

| 정보 | 진실의 출처(코드/설정) | 문서는 이를 "반영"만 |
|---|---|---|
| 포트·서비스 구성 | `run-dc1.cmd`, 각 `application.yml` | 아키텍처 설계서 §3·§4, 부록 A |
| Kafka 토픽 | `common/Constants.kt (Topics)` | 아키텍처 §5.3, 워크플로우 §4 |
| DB 스키마 | **Flyway** `backend/louisvuitton/.../db/migration/V*.sql` (수기 ALTER 금지, 신규는 V+1 추가) + JPA 엔티티 | 아키텍처 §5.2 |
| 인증/권한(관리자) | Gucci JWT 발급 + LouisVuitton 검증(role ADMIN), 비밀키 BCrypt | 아키텍처 §8.5 |
| 항목 한글명(데이터 사전) | **DB `COMMENT ON COLUMN`** (→ `/meta/labels`) | 화면 라벨·문서 표 |
| 전문(ISO20022) | `common/resources/iso20022/xsd/*` + 샘플 | 아키텍처 §6.1, 테스트 시나리오 |
| API 목록 | 각 `*Controller.kt` | 아키텍처 §6.2, 테스트 시나리오 |
| 상태머신 | `common/TxSts.kt` + 서비스 로직 | 아키텍처 §5.4, 워크플로우 §3 |

> 문서가 코드와 다르면 **코드가 맞다고 간주**하고 문서를 고친다(반대 아님). 의도적 설계 변경이면 코드·문서를 함께 바꾼다.

---

## 2. 필수 산출물 목록

| 산출물 | 목적 | 갱신 트리거 | 최신 갱신 |
|---|---|---|---|
| **RTGS 아키텍처 설계서.md** | 구조·스택(OS-WAS-DB)·데이터·인터페이스·보안 | 서비스/포트/스택/스키마/API/전문/보안 변경 | 2026-07-10 |
| **RTGS 프로토타입 워크플로우.md** | 처리 흐름·토픽·서비스 책임 | 처리흐름/토픽/서비스 역할 변경 | 2026-07-10 |
| **RTGS 프로토타입 로컬 테스트 시나리오.md** | 기능·엔드포인트·샘플 시험 절차 | 기능/엔드포인트/샘플/포트 변경 | 2026-07-10 |
| **RTGS 프로토타입 개발일지.md** | 일자별 개발·변경 이력(감사 추적) | **모든 작업·변경 시(必)** | 2026-07-10 |
| **sim/README.md** | 복원력 검증(S1/S2/S4) 절차·결과 | 검증 수행·시나리오 변경 | 2026-07-10 |
| SW 산출물 관리대장.md (본 문서) | 산출물·정합성 관리 규칙 | 산출물/규칙 변경 | 2026-07-10 |
| (메모리) rtgs-project 등 | 세션 간 지식 유지 | 아키텍처·결정 변경 | 2026-07-10 |

**참고 자료(입력물, 갱신 대상 아님)**: `2센터흐름도.png`, `chanel/dior/hermes/prada.png`, `UML.xlsx`, `pacs.7z`,
복원력방안 PDF, PoC 1~3차 결과보고, `rtgs 프로젝트 개요.txt`(양팀장님 관리).

---

## 3. 변경 유형 → 갱신 대상 매핑 (체크리스트)

작업 시 해당 행의 문서를 **모두** 갱신한다.

| 변경 유형 | 갱신할 산출물 |
|---|---|
| 서비스 추가/포트 변경 | 아키텍처(§3·§4·부록A) · `run-dc1.cmd` · 테스트 시나리오(포트) · 개발일지 · 메모리 |
| 처리 흐름/토픽 변경 | 워크플로우 · 아키텍처(§5.3·§7) · 개발일지 |
| DB 스키마 변경 | **Flyway 새 마이그레이션 `V+1__*.sql` 추가**(+ `COMMENT`) · 엔티티 · 아키텍처(§5.2) · (초기화 대상이면 admin reset) · 개발일지 |
| API 추가/변경 | 컨트롤러 · 아키텍처(§6.2) · 테스트 시나리오 · 개발일지 |
| 전문(ISO) 변경 | XSD/샘플 · 아키텍처(§6.1) · 테스트 시나리오 · 개발일지 |
| 보안/인증 변경 | 아키텍처(§8.5) · 워크플로우(Gucci) · 개발일지 |
| 검증(sim/k6) 수행 | sim/README(결과) · 개발일지 |

---

## 4. 정합성 점검 (주기·릴리스 전)

아래가 **문서와 실제가 일치**하는지 확인한다(불일치 시 문서 수정):
- 포트: `run-dc1.cmd`/`application.yml` ↔ 아키텍처 부록 A
- 토픽: `Constants.kt` ↔ 아키텍처 §5.3
- 테이블: Flyway 마이그레이션(V*) ↔ 아키텍처 §5.2 (실DB `flyway_schema_history`로 적용본 확인)
- API: `*Controller.kt` ↔ 아키텍처 §6.2 / 테스트 시나리오
- 전문 버전: XSD 파일명 ↔ 아키텍처 §6.1
- 서비스 수: 빌드 모듈 수 ↔ 문서의 "N개 서비스"

> (자동화 여지) 위 항목은 grep 기반 점검 스크립트로 만들 수 있음 — 필요 시 `docs/tools/`에 추가.

---

## 5. 최종 산출물 변환
- 개발 중: `.md` 유지. 완성 시: `docs/tools/convert.cmd`로 **PPT/PDF** 생성(→ `docs/_dist/`).
- 다이어그램: 참고 PNG 임베드 + 신규는 Mermaid. PPT/PDF 변환 전 Mermaid는 PNG로 선렌더.
