42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
# 24. Enum 리팩토링 (Refactor Enums)
|
|
|
|
## 1. 배경 (Background)
|
|
|
|
현재 프로젝트 내 여러 파일에 `enum`들이 산재해 있어 관리가 어렵고, 의존성이 복잡해질 우려가 있습니다. 이를 하나의 파일로 통합하여 관리 효율성을 높이고자 합니다.
|
|
|
|
## 2. 목표 (Objective)
|
|
|
|
- 프로젝트 전반에 흩어져 있는 `enum` 정의들을 `lib/game/enums.dart` 파일 하나로 통합합니다.
|
|
- 기존 파일들에서 `enum` 정의를 제거하고, 새로운 파일을 import 하여 사용하도록 수정합니다.
|
|
|
|
## 3. 대상 Enum 목록 (Target Enums)
|
|
|
|
다음 파일들에 정의된 Enum들을 이동합니다:
|
|
|
|
1. **`lib/providers/battle_provider.dart`**
|
|
- `ActionType`
|
|
- `RiskLevel`
|
|
- `EnemyActionType`
|
|
2. **`lib/game/model/status_effect.dart`**
|
|
- `StatusEffectType`
|
|
3. **`lib/game/model/stat.dart`**
|
|
- `ModifierType`
|
|
4. **`lib/game/model/stage.dart`**
|
|
- `StageType`
|
|
5. **`lib/game/model/item.dart`**
|
|
- `EquipmentSlot`
|
|
|
|
## 4. 작업 상세 (Implementation Details)
|
|
|
|
1. **새 파일 생성:** `lib/game/enums.dart`
|
|
2. **Enum 이동:** 위 목록의 Enum들을 새 파일로 복사합니다.
|
|
3. **기존 코드 수정:**
|
|
- 원래 파일에서 Enum 정의 삭제.
|
|
- 해당 Enum을 사용하는 모든 파일에 `import 'package:game/game/enums.dart';` (또는 상대 경로) 추가.
|
|
- `battle_provider.dart`의 `EnemyIntent` 클래스는 `battle_provider.dart`에 남겨두거나, 필요하다면 별도 모델 파일로 분리 고려 (이번 작업에서는 Enum만 이동).
|
|
|
|
## 5. 기대 효과 (Expected Outcome)
|
|
|
|
- Enum 정의가 한곳에 모여 있어 찾기 쉽고 수정이 용이해짐.
|
|
- 순환 참조 문제 예방 및 코드 구조 개선.
|