# 54. 접두사 테이블 리팩토링 (Prefix Table Refactoring) ## 1. 목표 (Goal) - `ItemTable`에 하드코딩되어 있던 Normal 등급 접두사 로직(이름, 배율, 확률)을 `ItemPrefixTable`로 이동하여 데이터 기반으로 관리합니다. - `ItemModifier` 클래스를 확장하여 스탯 배율(`multiplier`)과 가중치(`weight`)를 지원하도록 개선합니다. ## 2. 구현 상세 (Implementation Details) ### `ItemPrefixTable` 개선 - **`ItemModifier` 구조 변경:** - `multiplier`: 퍼센트 기반 스탯 변경을 위한 필드 추가 (기본값 1.0). - `weight`: 랜덤 선택 가중치를 위한 필드 추가 (기본값 1). - **`normalPrefixes` 데이터 추가:** - Crude (0.9, weight 25) - Old (0.95, weight 25) - Standard (1.0, weight 25, empty prefix) - High-quality (1.1, weight 25) ### `ItemTable` 로직 수정 - **`createItem` 메서드:** - 하드코딩된 `if-else` 확률 로직을 제거. - `ItemPrefixTable.normalPrefixes`를 사용하여 가중치 기반 랜덤 선택(Weighted Random Selection) 알고리즘 구현. - 선택된 Modifier의 `multiplier`를 적용하여 스탯 계산. ## 3. 결과 (Result) - 접두사 데이터 추가 및 밸런스 조정이 `ItemPrefixTable` 수정만으로 가능해졌습니다. - 코드 중복이 줄어들고 확장성이 향상되었습니다.