Merge pull request 'AA 역할 레거시 분석 smoke' (#6) from forge/runtime-role-matrix-live-20260714105818-v9-aa-001-attempt-2-run-404707bd57c4 into main

This commit is contained in:
forge-bot 2026-07-14 11:10:06 +00:00
commit e04bfc8458
6 changed files with 135 additions and 0 deletions

View file

@ -0,0 +1,3 @@
# runtime-role-matrix-live-20260714105818-v9-aa-001-attempt-2-run-404707bd57c4
Forge 이슈 작업 브랜치 `forge/runtime-role-matrix-live-20260714105818-v9-aa-001-attempt-2-run-404707bd57c4`.

View file

@ -0,0 +1,68 @@
# AA 역할 레거시 전환 분석
**문서 버전**: v1.1
**작성일**: 2025-07-14
**대상 역할**: AA
**분석 목적**: 레거시 시스템 전환을 위한 입력 소스, 업무 규칙, 위험 영역, 증적 위치 정리
---
## 1. 입력 소스 참조 테이블
| ID | 소스 유형 | 파일 경로 | 설명 | 상태 |
|-----|----------|-----------|------|------|
| IN-001 | 설정 파일 | `scope/role-aa/config.yaml` | 역할 기본 설정 | 활성 |
| IN-002 | 스키마 | `scope/role-aa/schema.json` | 데이터 스키마 정의 | 활성 |
| IN-003 | 매핑 규칙 | `scope/role-aa/mapping-rules.yaml` | 필드 매핑 규칙 | 활성 |
| IN-004 | 의존성 정의 | `scope/role-aa/dependencies.yaml` | 외부 의존성 선언 | **비활성/미포함** |
| IN-005 | 검증 스크립트 | `scope/role-aa/validation.sql` | 데이터 검증 쿼리 | 활성 |
### 1.1 비활성 항목 사유 (IN-004)
- **참조 파일**: `scope/role-aa/dependencies.yaml`
- **비활성 사유**: 해당 파일이 현재 배포 배치에 포함되지 않음
- **대응 조치**: 참조 상태를 "비활성/미포함"으로 변경
- **후속 필요 작업**: 의존성 관리가 별도 패키지로 분리될 경우 해당 파일 생성 또는 경로 갱신 필요
---
## 2. 업무 규칙
| 규칙 ID | 규칙명 | 설명 | 적용 조건 |
|---------|--------|------|----------|
| BR-001 | 역할 활성화 | AA 역할은 명시적 활성화 명령 없이는 비활성 상태 | 기본값 |
| BR-002 | 데이터 검증 | 모든 입력 데이터는 schema.json 검증 통과 필요 | IN-002 활성 시 |
| BR-003 | 매핑 순서 | mapping-rules.yaml의 순서대로 필드 매핑 수행 | IN-003 활성 시 |
---
## 3. 위험 영역
| 위험 ID | 위험명 | 영향도 | 완화 조치 |
|---------|--------|--------|----------|
| RK-001 | 입력 소스 누락 | 높음 | IN-004 비활성 상태로 문서화, 배치 완료 후 재평가 |
| RK-002 | 검증 실패 | 중간 | validation.sql 사전 실행 |
| RK-003 | 매핑 불일치 | 중간 | mapping-rules.yaml 버전 관리 |
---
## 4. 증적 위치
| 증적 유형 | 위치 | 회수 방법 |
|-----------|------|----------|
| 설정 증적 | `scope/role-aa/config.yaml` | 파일 직접 참조 |
| 스키마 증적 | `scope/role-aa/schema.json` | JSON 파싱 |
| 검증 로그 | `logs/validation-*.log` | 로그 파일 분석 |
---
## 5. 감사 추적
| 일자 | 작업자 | 변경 내용 | 버전 |
|------|--------|----------|------|
| 2025-07-14 | AA | 초기 문서 작성 | v1.0 |
| 2025-07-14 | AA | IN-004 참조 무결성 수정 (비활성 처리) | v1.1 |
---
**문서 종료**

View file

@ -0,0 +1,6 @@
# AA 역할 기본 설정
role: aa
version: "1.0"
enabled: false
defaultTimeout: 300
retryCount: 3

View file

@ -0,0 +1,13 @@
# AA 역할 필드 매핑 규칙
version: "1.0"
mappings:
- source: "userId"
target: "user_id"
transform: "snake_case"
- source: "roleName"
target: "role_name"
transform: "snake_case"
- source: "createdAt"
target: "created_at"
transform: "camel_to_snake"
order: sequential

28
scope/role-aa/schema.json Normal file
View file

@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "AA Role Schema",
"type": "object",
"properties": {
"roleId": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"timeout": {
"type": "integer",
"minimum": 1
},
"retryCount": {
"type": "integer",
"minimum": 0
}
}
}
},
"required": ["roleId", "enabled"]
}

View file

@ -0,0 +1,17 @@
-- AA 역할 데이터 검증 쿼리
-- 역할 활성화 상태 검증
SELECT COUNT(*) AS inactive_roles
FROM role_config
WHERE role_id = 'AA'
AND enabled = false;
-- 매핑 규칙 존재 확인
SELECT COUNT(*) AS mapping_count
FROM mapping_rules
WHERE role_id = 'AA';
-- 스키마 검증 (메타데이터 확인)
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name LIKE 'aa_%';