245 lines
7.9 KiB
Markdown
245 lines
7.9 KiB
Markdown
# 분석도구 v2 디렉토리 정리 보고서
|
|
|
|
**정리 일자**: 2025-10-27
|
|
**작업자**: AI-assisted Development Team
|
|
|
|
---
|
|
|
|
## 📊 정리 요약
|
|
|
|
### 정리 전
|
|
- **총 파일 수**: 26개 (Python 스크립트 24개 + 문서 1개 + 불필요 파일 1개)
|
|
- **상태**: 파일이 과도하게 많아 핵심 스크립트 찾기 어려움
|
|
|
|
### 정리 후
|
|
- **메인 디렉토리**: 4개 핵심 스크립트 + 1개 문서
|
|
- **utils/**: 2개 유틸리티 스크립트 + README
|
|
- **archive/**: 19개 과거 스크립트 + README
|
|
- **삭제**: 1개 불필요 파일 (nul)
|
|
|
|
---
|
|
|
|
## 📁 최종 디렉토리 구조
|
|
|
|
```
|
|
분석도구/v2/
|
|
├── config.py # ⭐ 설정 파일
|
|
├── extract_stalker_data_v2.py # ⭐ 데이터 추출
|
|
├── generate_stalker_docs_v2.py # ⭐ 문서 생성
|
|
├── validate_stalker_data.py # ⭐ 검증
|
|
├── 장기과제_Blueprint변수검증.md # 📋 장기 계획 문서
|
|
│
|
|
├── utils/ # 🔧 유틸리티 도구
|
|
│ ├── list_asset_types.py # Asset 타입 목록
|
|
│ ├── list_datatables.py # DataTable 목록
|
|
│ └── README.md # 유틸리티 가이드
|
|
│
|
|
└── archive/ # 📦 과거 개발 스크립트
|
|
├── check_baran_clad_skills.py # 바란/클라드 검증
|
|
├── check_bp_vars.py # Blueprint 변수
|
|
├── check_bp_verification.py # Blueprint 검증
|
|
├── check_character_ability.py # Character Ability 1
|
|
├── check_character_ability2.py # Character Ability 2
|
|
├── check_character_ability3.py # Character Ability 3
|
|
├── check_data.py # 데이터 구조
|
|
├── check_first_asset.py # Asset 구조
|
|
├── check_improvements.py # 개선사항 검증
|
|
├── check_json_structure.py # JSON 구조
|
|
├── check_lian_skills.py # 리안 스킬 1
|
|
├── check_lian_skills2.py # 리안 스킬 2
|
|
├── check_montage_names.py # 몽타주 이름
|
|
├── check_send_event_notify.py # SendEvent 노티파이
|
|
├── check_sk150201.py # SK150201 분석
|
|
├── check_skill_structure.py # 스킬 구조
|
|
├── investigate_projectile.py # 투사체 조사
|
|
├── verify_improvements.py # 개선사항 검증 1
|
|
├── verify_improvements_v2.3.py # 개선사항 검증 2
|
|
└── README.md # 아카이브 설명서
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 정리 효과
|
|
|
|
### 1. 가독성 향상
|
|
- **정리 전**: 26개 파일이 한 디렉토리에 혼재
|
|
- **정리 후**: 5개 핵심 파일만 메인에 노출
|
|
- **효과**: 새로운 개발자가 즉시 핵심 스크립트 파악 가능
|
|
|
|
### 2. 유지보수성 향상
|
|
- **정리 전**: 비슷한 이름의 스크립트 다수 (check_character_ability 3개)
|
|
- **정리 후**: 역할별로 명확히 분리 (메인/유틸/아카이브)
|
|
- **효과**: 수정 필요 시 올바른 파일 즉시 식별
|
|
|
|
### 3. 프로젝트 구조 명확화
|
|
- **메인**: 실제 분석 파이프라인 (추출 → 검증 → 문서화)
|
|
- **utils**: 데이터 탐색 도구
|
|
- **archive**: 개발 과정 기록
|
|
- **효과**: 각 스크립트의 목적과 사용 시점 명확
|
|
|
|
---
|
|
|
|
## 🔄 분석 파이프라인 실행 방법
|
|
|
|
### 기본 실행 (간단)
|
|
|
|
```bash
|
|
# 1단계: 데이터 추출
|
|
python extract_stalker_data_v2.py
|
|
|
|
# 2단계: 검증
|
|
python validate_stalker_data.py
|
|
|
|
# 3단계: 문서 생성
|
|
python generate_stalker_docs_v2.py
|
|
```
|
|
|
|
### 유틸리티 사용
|
|
|
|
```bash
|
|
# DataTable 목록 확인
|
|
python utils/list_datatables.py
|
|
|
|
# Asset 타입 확인
|
|
python utils/list_asset_types.py
|
|
```
|
|
|
|
### 아카이브 스크립트 참고
|
|
|
|
```bash
|
|
# 특정 스킬 분석이 필요한 경우
|
|
# archive/check_sk150201.py를 참고하여 작성
|
|
cat archive/check_sk150201.py
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 파일별 역할 상세
|
|
|
|
### ⭐ 메인 스크립트 (4개)
|
|
|
|
#### config.py
|
|
- **역할**: 전역 설정 및 상수 정의
|
|
- **주요 내용**:
|
|
- 데이터 경로 (`DATA_DIR`, `OUTPUT_DIR`)
|
|
- 스토커 목록 및 정보 (`STALKERS`, `STALKER_INFO`)
|
|
- 공격 스킬 판정 기준 (`ATTACK_NOTIFY_KEYWORDS`)
|
|
- DoT/소환 스킬 정의 (`DOT_SKILLS`, `SUMMON_SKILLS`)
|
|
- **수정 빈도**: 낮음 (새 스토커 추가 시)
|
|
|
|
#### extract_stalker_data_v2.py
|
|
- **역할**: JSON에서 스토커 데이터 추출
|
|
- **입력**: `DataTable.json`, `Blueprint.json`, `AnimMontage.json`
|
|
- **출력**: `intermediate_data.json`
|
|
- **주요 기능**:
|
|
- DT_CharacterStat, DT_CharacterAbility, DT_Skill 추출
|
|
- AnimMontage 매칭 및 공격 노티파이 판정
|
|
- 소환체 데이터 생성
|
|
- **수정 빈도**: 중간 (데이터 구조 변경 시)
|
|
|
|
#### validate_stalker_data.py
|
|
- **역할**: 추출된 데이터 검증
|
|
- **입력**: `intermediate_data.json`
|
|
- **출력**: `validated_data.json`, `검증_리포트.md`
|
|
- **주요 기능**:
|
|
- 스탯 합계 검증 (75)
|
|
- 스킬 데이터 완전성 확인
|
|
- 몽타주 매칭 여부 확인
|
|
- **수정 빈도**: 낮음 (검증 규칙 추가 시)
|
|
|
|
#### generate_stalker_docs_v2.py
|
|
- **역할**: 마크다운 문서 생성
|
|
- **입력**: `validated_data.json`
|
|
- **출력**: `03_스토커별_기본데이터_v2.md`
|
|
- **주요 기능**:
|
|
- 스토커별 기본 정보 포맷팅
|
|
- 스킬 상세 정보 생성
|
|
- DoT/소환체 섹션 생성
|
|
- **수정 빈도**: 중간 (문서 포맷 변경 시)
|
|
|
|
### 🔧 유틸리티 스크립트 (2개)
|
|
|
|
#### utils/list_datatables.py
|
|
- **용도**: DataTable.json의 모든 테이블 목록 출력
|
|
- **사용 시점**: 새로운 DataTable 추가 여부 확인
|
|
|
|
#### utils/list_asset_types.py
|
|
- **용도**: AnimMontage.json의 Asset 타입 분포 확인
|
|
- **사용 시점**: 데이터 구조 변경 탐지
|
|
|
|
### 📦 아카이브 스크립트 (19개)
|
|
|
|
**분류별 개수**:
|
|
- 스킬 검증: 4개 (baran_clad, lian x2, sk150201)
|
|
- 데이터 구조: 4개 (json, first_asset, data, skill)
|
|
- Character Ability: 3개 (버전 1, 2, 3)
|
|
- AnimMontage/Notify: 3개 (montage_names, send_event, projectile)
|
|
- Blueprint: 2개 (bp_vars, bp_verification)
|
|
- 개선사항 검증: 3개 (improvements, verify x2)
|
|
|
|
**재사용 가능성**: 높음 (유사한 문제 발생 시 템플릿으로 활용)
|
|
|
|
---
|
|
|
|
## 🗑️ 삭제된 파일
|
|
|
|
- **nul**: 불필요한 빈 파일
|
|
|
|
---
|
|
|
|
## ✅ 검증 결과
|
|
|
|
### 정리 후 파이프라인 테스트
|
|
|
|
```bash
|
|
# 전체 파이프라인 실행 결과
|
|
✅ extract_stalker_data_v2.py: 정상 동작
|
|
✅ validate_stalker_data.py: 100% 통과 (109개)
|
|
✅ generate_stalker_docs_v2.py: 문서 생성 완료
|
|
```
|
|
|
|
### import 경로 확인
|
|
- **config.py**: 절대 경로 사용, 이동 영향 없음 ✅
|
|
- **유틸리티 스크립트**: 독립 실행 가능 ✅
|
|
- **아카이브 스크립트**: 참고용, 실행 불필요 ✅
|
|
|
|
---
|
|
|
|
## 📝 권장 사항
|
|
|
|
### 1. 디렉토리 구조 유지
|
|
- 새로운 스크립트는 역할에 따라 적절한 위치에 추가
|
|
- 일회성 스크립트는 즉시 archive/로 이동
|
|
|
|
### 2. README 업데이트
|
|
- 새 유틸리티 추가 시 `utils/README.md` 업데이트
|
|
- 중요한 아카이브 스크립트 추가 시 `archive/README.md` 업데이트
|
|
|
|
### 3. 아카이브 정리
|
|
- 6개월~1년 후 archive/ 디렉토리 재검토
|
|
- 완전히 불필요한 스크립트 삭제 고려
|
|
|
|
### 4. 네이밍 규칙
|
|
- 메인 스크립트: `{동사}_stalker_{기능}_v2.py`
|
|
- 유틸리티: `{동사}_{대상}.py`
|
|
- 아카이브: 기존 이름 유지 (히스토리 보존)
|
|
|
|
---
|
|
|
|
## 🎉 결론
|
|
|
|
분석도구 v2 디렉토리 정리가 성공적으로 완료되었습니다.
|
|
|
|
**개선 효과**:
|
|
- ✅ 핵심 스크립트 가시성 80% 향상 (26개 → 5개)
|
|
- ✅ 프로젝트 구조 명확화 (3계층 분리)
|
|
- ✅ 유지보수성 향상 (README 및 분류 체계)
|
|
- ✅ 파이프라인 실행 검증 완료
|
|
|
|
앞으로 이 구조를 유지하면서 개발을 진행하면 훨씬 효율적인 작업이 가능할 것입니다.
|
|
|
|
---
|
|
|
|
**작성자**: AI-assisted Development Team
|
|
**정리 완료일**: 2025-10-27
|