내일배움캠프 13일차 TIL
📌 오늘의 상황
오늘은 팀원이 구현한 MonsterItemDrop.MonsterDrops() 메서드를 기반으로, 내가 직접 작성한 플레이어 인벤토리 시스템과 통합하는 작업을 진행했다.
목표는 다음과 같았는데,
- 전투 종료 후 MonsterDrops()로부터 드롭된 아이템을 받아
- player.Inven.AddItem()을 통해 내 인벤토리에 반영하고
- 드롭된 골드도 플레이어 소지 골드에 더하며
- UIManager를 통해 드롭 결과를 출력
📌 트러블슈팅 로그
DropResult 클래스 접근 오류
문제 상황
MonsterItemDrop.MonsterDrops() 메서드가 DropResult 타입을 반환하지만, 외부에서
DropResult result = dropper.MonsterDrops(...);
이렇게 선언했더니 DropResult를 찾을 수 없다는 오류가 발생했다.
원인 분석
DropResult 클래스는 MonsterItemDrop 클래스 내부에 중첩 클래스로 정의되어 있었기 때문에, 외부에서는 반드시 MonsterItemDrop.DropResult로 접근해야 했던 것!
해결
MonsterItemDrop.DropResult result = dropper.MonsterDrops(monsterLv);
이렇게 정확히 명시해줌으로써 해결했다.
UIManager에서 드롭 결과 출력 불가
문제 상황
전투 후 UIManager.DisplayDrops(Monster target)을 호출해 드롭 내용을 출력하고자 했지만, result가 전달되지 않아 출력할 드롭 정보를 접근할 수 없었다.
원인 분석
MonsterDrops()의 반환값 DropResult result는 전투 내부의 지역 변수였고, UIManager 쪽에는 전달되지 않고 있었음,,
해결
UIManager.DisplayAttackResult()의 시그니처에 DropResult를 추가
UIManager.DisplayAttackResult(Monster target, MonsterItemDrop.DropResult result);
그리고 내부에서 다시 DisplayDrops(result)로 출력 처리해서 해결!
드롭된 골드 반영 누락
문제 상황
드롭된 아이템은 인벤토리에 정상적으로 들어가지만, 골드는 플레이어에게 반영되지 않고 있었다.
원인 분석
드롭 처리 로직에서 player.Stats.Gold += ... 처리가 빠져 있었음
해결
골드 반영 구문 추가를 통해 해결
player.Stats.Gold += target.Stats.goldDrop;
최종 처리 코드 요약
//몬스터 처리시 랜덤으로 아이템 드롭
var dropper = new MonsterItemDrop();
MonsterItemDrop.DropResult result = dropper.MonsterDrops(target.Stats.Lv);
foreach (var item in result.DroppedItems)
{
player.Inven.AddItem(item); //드롭된 아이템 인벤토리에 추가
player.Stats.Gold += target.Stats.goldDrop; //드롭된 골드 소지골드에 추가
}
//공격 결과 출력
UIManager.DisplayAttackResult(target, result);
💭 느낀 점
- 중첩 클래스 접근 방식은 외부에서 사용할 경우 반드시 명확히 경로를 작성해야 오류를 피할 수 있다.
- 게임 시스템은 출력/로직/데이터가 서로 엮여 있으므로 데이터 전달 경로를 일관성 있게 설계해야 한다.
- 다른 팀원의 코드와 통합할 때는 타입 구조와 반환값을 정확히 파악하는 것이 중요하다.
.
🔑 기억 포인트
| 트러블 종류 | 원인 | 해결방법 |
| DropResult 접근 오류 | 중첩 클래스 외부 접근 시 경로 미지정 | MonsterItemDrop.DropResult로 명시 선언 |
| UI 출력 연동 실패 | 드롭 결과를 UI에 전달하지 않음 | DropResult를 함께 전달 |
| 골드 반영 누락 | 드롭 결과에 골드 처리 누락 | 수동으로 += 처리 |
| 통합 작업 시 데이터 충돌 | 다른 팀원의 반환값 구조를 명확히 파악하지 않음 | 반환 타입과 사용 위치를 꼼꼼히 분석 |

'TIL' 카테고리의 다른 글
| 전투 시스템 리팩토링 (0) | 2025.04.25 |
|---|---|
| 아이템 누적, 포션 사용 로직 연결! 전투 이후 인벤토리 리팩터링 (0) | 2025.04.24 |
| Git 브랜치 전환 & 충돌 해결 (0) | 2025.04.22 |
| TextRPG 팀 프로젝트 기획 & 협업 환경 세팅 (0) | 2025.04.21 |
| 오버로딩과 오버라이딩 (0) | 2025.04.18 |