{ "documentInfo": { "title": "레거시 전환 분석 증적 목록", "version": "1.0", "createdDate": "2025-07-14", "project": "runtime-role-smoke-202607140500" }, "inputSources": [ { "id": "IN-001", "name": "데이터베이스 스키마", "path": "/legacy/db/schema/", "type": "DDL", "validationCriteria": "무결성 제약조건", "lastModified": "2025-06-30" }, { "id": "IN-002", "name": "API 명세서", "path": "/legacy/api/specs/", "type": "OpenAPI/Swagger", "validationCriteria": "버전 관리 여부", "lastModified": "2025-07-01" }, { "id": "IN-003", "name": "배치 잡 정의", "path": "/legacy/batch/jobs/", "type": "XML/JSON", "validationCriteria": "스케줄 주기", "lastModified": "2025-06-28" }, { "id": "IN-004", "name": "설정 파일", "path": "/legacy/config/", "type": "Properties/YAML", "validationCriteria": "암호화 여부", "lastModified": "2025-07-05" }, { "id": "IN-005", "name": "업무 흐름도", "path": "/legacy/docs/workflows/", "type": "BPMN/Visio", "validationCriteria": "버전 관리 여부", "lastModified": "2025-06-25" } ], "businessRules": { "coreRules": [ { "id": "BR-001", "name": "결제 정산 로직", "currentImplementation": "일 1회 배치", "expectedAfterTransition": "실시간 처리", "verificationMethod": "결과 비교" }, { "id": "BR-002", "name": "회원 등급 산정", "currentImplementation": "월 1회 갱신", "expectedAfterTransition": "이벤트 트리거", "verificationMethod": "등급 변경 이력" }, { "id": "BR-003", "name": "재고 차감 정책", "currentImplementation": "선점 방식", "expectedAfterTransition": "낙관적 잠금", "verificationMethod": "동시성 테스트" }, { "id": "BR-004", "name": "알림 발송 규칙", "currentImplementation": "즉시 발송", "expectedAfterTransition": "큐 기반 처리", "verificationMethod": "발송 순서" }, { "id": "BR-005", "name": "데이터 보존 정책", "currentImplementation": "무제한", "expectedAfterTransition": "7년 보존", "verificationMethod": "삭제 검증" } ], "dataTransformationRules": [ { "id": "TR-001", "sourceField": "OLD_STATUS_CD", "targetField": "new_status", "transformationLogic": "매핑 테이블 참조", "exceptionHandling": "미매핑 시 DEFAULT" }, { "id": "TR-002", "sourceField": "REG_DT (YYYYMMDD)", "targetField": "created_at (TIMESTAMP)", "transformationLogic": "포맷 변환", "exceptionHandling": "NULL 허용" }, { "id": "TR-003", "sourceField": "AMT (원 단위)", "targetField": "amount (원 단위)", "transformationLogic": "소수점 처리", "exceptionHandling": "반올림" } ] }, "riskAreas": { "highRisk": [ { "id": "RK-001", "description": "데이터 손실", "likelihood": "높음", "impact": "심각", "mitigation": "이중 백업 + 검증 쿼리" }, { "id": "RK-002", "description": "서비스 중단", "likelihood": "중간", "impact": "심각", "mitigation": "블루-그린 배포" }, { "id": "RK-003", "description": "성능 저하", "likelihood": "중간", "impact": "보통", "mitigation": "부하 테스트" } ], "mediumRisk": [ { "id": "RK-004", "description": "호환성 불일치", "likelihood": "중간", "impact": "보통", "mitigation": "API 게이트웨이" }, { "id": "RK-005", "description": "설정 누락", "likelihood": "낮음", "impact": "보통", "mitigation": "설정 검증 체크리스트" } ] }, "evidenceLocations": { "preTransition": [ { "id": "EV-001", "type": "원본 소스", "path": "/archive/legacy/v1.0/", "retentionPeriod": "전환 완료 후 5년", "accessLevel": "감사팀" }, { "id": "EV-002", "type": "데이터 스냅샷", "path": "/archive/snapshot/20250701/", "retentionPeriod": "5년", "accessLevel": "DBA" }, { "id": "EV-003", "type": "설정 백업", "path": "/archive/config/backup/", "retentionPeriod": "영구", "accessLevel": "보안팀" }, { "id": "EV-004", "type": "로그 아카이브", "path": "/archive/logs/legacy/", "retentionPeriod": "3년", "accessLevel": "운영팀" } ], "postTransition": [ { "id": "EV-101", "type": "전환 보고서", "path": "/transition/report/", "generatedAt": "전환 완료 시", "verificationCycle": "일회성" }, { "id": "EV-102", "type": "비교 검증 결과", "path": "/transition/validation/", "generatedAt": "전환 후 24시간", "verificationCycle": "전환 후 7일" }, { "id": "EV-103", "type": "모니터링 대시보드", "path": "/monitoring/dashboard/", "generatedAt": "실시간", "verificationCycle": "상시" }, { "id": "EV-104", "type": "감사 로그", "path": "/audit/logs/", "generatedAt": "실시간", "verificationCycle": "상시" } ] }, "validationChecklist": { "dataIntegrity": [ "원본 데이터 건수 vs 전환 데이터 건수 일치", "필수 필드 NULL 체크", "외래 키 참조 무결성", "인덱스 재생성 여부", "통계 정보 업데이트 여부" ], "functional": [ "핵심 API 응답 동일성", "배치 잡 실행 결과 동일성", "예외 처리 동작 동일성", "로그 출력 형식 동일성" ], "performance": [ "응답 시간 기준 충족 (P95 < 500ms)", "동시 접속자 수 기준 충족 (1000명)", "배치 처리 시간 기준 충족 (기존 대비 ±10%)" ] }, "approvalProcess": [ { "step": 1, "role": "분석가", "approver": "TBD", "deadline": "전환 3일 전", "signaturePath": "/approval/analyst/" }, { "step": 2, "role": "아키텍트", "approver": "TBD", "deadline": "전환 2일 전", "signaturePath": "/approval/architect/" }, { "step": 3, "role": "프로젝트 매니저", "approver": "TBD", "deadline": "전환 1일 전", "signaturePath": "/approval/pm/" } ] }