بنقرة واحدة
verify-inventory-system
인벤토리의 데이터 구조(ItemDatabaseSO)와 환전(판매) 로직의 구현 상태를 검증합니다.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
인벤토리의 데이터 구조(ItemDatabaseSO)와 환전(판매) 로직의 구현 상태를 검증합니다.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
인게임 핵심 시스템(GameManager, UIManager), 초기화 순서 안전성, UI 데이터 바인딩을 검증합니다.
로비 UI의 팝업 관리 및 뒤로가기(ESC) 로직을 검증합니다. PopupManager 등록 및 중복 입력 처리 여부를 확인합니다.
타이틀 씬의 로그인 흐름(MVVM), 어드레서블 로딩, 앱 업데이트 관리를 검증합니다.
프로젝트 전체의 사운드 구현 패턴을 검증합니다. 싱글톤(Singleton) 대신 인터페이스 주입(DI) 방식의 사용을 권장합니다.
세션 변경사항을 분석하여 검증 스킬 누락을 탐지합니다. 기존 스킬을 동적으로 탐색하고, 새 스킬을 생성하거나 기존 스킬을 업데이트한 뒤 GEMINI.md를 관리합니다.
플레이어 데이터의 DTO/Service 구조, 암호화 처리, 로컬 저장소 정합성을 검증합니다.
| name | verify-inventory-system |
| description | 인벤토리의 데이터 구조(ItemDatabaseSO)와 환전(판매) 로직의 구현 상태를 검증합니다. |
인벤토리 시스템 리팩토링의 핵심 목표인 '환전(판매)' 기능과 '레거시 제거(데이터베이스화)'가 올바르게 수행되었는지 검증합니다:
ItemDatabaseSO가 존재하고, 기존 InventoryDataManager의 역할을 대체하는지 확인InventorySystem.SellItem 메서드가 구현되어 있고, PlayerDataService.AddCurrency와 연결되는지 확인InventoryViewModel에서 판매 명령(SellItem)을 호출하고 UI와 바인딩되는지 확인InventoryDataManager의 사용처가 제거되었거나, 파일 자체가 삭제되었는지 확인InventoryDataManager의 의존성을 제거하는 리팩토링을 수행한 후| File | Purpose |
|---|---|
Assets/_Game/Scripts/ScriptableObjects/ItemDatabaseSO.cs | 신규 아이템 데이터베이스 |
Assets/_Game/Scripts/ScriptableObjects/InventorySystem.cs | 인벤토리 비즈니스 로직 (판매 기능 추가) |
Assets/_Game/Scripts/ScriptableObjects/InventoryDataSO.cs | 인벤토리 데이터 구조 (SO) |
Assets/_Game/Scripts/ScriptableObjects/InventoryPersistence.cs | 인벤토리 데이터 영속성 (서버 통신) |
Assets/_Game/Scripts/Lobby/InventoryManager.cs | 전역 인벤토리 관리자 (DI 적용) |
Assets/_Game/Scripts/Lobby/ViewModels/InventoryViewModel.cs | 인벤토리 뷰모델 (판매 명령) |
Assets/_Game/Scripts/Lobby/UI/Popups/InventoryView.cs | 인벤토리 팝업 UI (View) |
신규 데이터 구조인 ItemDatabaseSO.cs와 InventoryDataSO.cs 파일이 생성되었는지 확인합니다.
파일: Assets/_Game/Scripts/ScriptableObjects/
검사:
ls Assets/_Game/Scripts/ScriptableObjects/ItemDatabaseSO.cs
ls Assets/_Game/Scripts/ScriptableObjects/InventoryDataSO.cs
PASS: 모든 파일 존재 FAIL: 특정 파일 없음 수정: 누락된 SO 클래스 생성 및 구현
InventorySystem 클래스 내에 SellItem 메서드가 존재하는지 확인합니다.
파일: Assets/_Game/Scripts/ScriptableObjects/InventorySystem.cs
검사:
grep "SellItem" Assets/_Game/Scripts/ScriptableObjects/InventorySystem.cs
PASS: SellItem 메서드 정의 확인
FAIL: 메서드 없음
수정: InventorySystem에 아이템 판매 및 재화 가산 로직 구현
리팩토링 전 사용되었던 레거시 매니저 클래스들이 정해진 위치에서 제거되었는지 확인합니다.
검사:
# 1. 이전 경로의 파일 존재 여부 확인
ls Assets/InventoryDataManager.cs 2>/dev/null
ls Assets/_Game/Scripts/ScriptableOJB/InventoryDataManagerDontdestory.cs 2>/dev/null
# 2. 코드 내 참조 확인
grep -r "InventoryDataManager" Assets/_Game/Scripts/
PASS: 파일이 존재하지 않고 검색 결과가 없거나 주석만 존재함
FAIL: 레거시 파일이 남아있거나 활성 코드에서 참조됨
수정: 레거시 파일 삭제 및 참조 코드를 InventorySystem 등으로 이관
InventoryPersistence 및 InventoryManager가 서버 서비스를 주입받는지 확인합니다.
검사:
# 1. InventoryPersistence 생성자 주입 확인
grep "public InventoryPersistence(InGame.Services.ILogService logService, IGameDataService gameDataService)" Assets/_Game/Scripts/ScriptableObjects/InventoryPersistence.cs
# 2. InventoryManager.Init 메서드 확인
grep "public void Init(IGameDataService gameDataService)" Assets/_Game/Scripts/Lobby/InventoryManager.cs
PASS: 명시적인 서비스 주입 인터페이스가 존재함
FAIL: ServerManager.Instance에 직접 의존함
수정: 리팩토링된 DI 패턴 적용 (Init 메서드 및 생성자 수정)
| 검사 항목 | 상태 | 파일/상세 |
|---|---|---|
| 데이터베이스 SO | PASS | 파일 존재함 |
| 판매 로직 | PASS | SellItem 구현됨 |
| 레거시 의존성 | WARNING | 아직 3곳에서 참조 중 |
InventoryDataManager가 존재할 수 있으나, 최종적으로는 삭제되어야 함.