2025. 12. 24. 23:23ㆍ본 캠프
오늘은 작업물을 합치고 게임루프를 한번 돌려보는 과정을 거쳤는데
EventBus 구조가 신 재로딩을 할 때 구독이 누적되는 경우도 있고
디버깅하는 과정이 생각보다 많이 까다로웠다.
특히 지금 문제가 되는 신 재로딩을 통해서 진입하게 되면 InGameMenu쪽의 연결이 깨지는 현상이 있다.
원인으로서 추정되는건 위에서 언급한 것처럼 구독누적으로 인한 이벤트/구독/해지 가 중첩되면서 오류가 나는 현상으로 보여서
해결하는데 시간이 좀 걸릴 거 같다.
이처럼 EventBus의 구조를 통해 각 연결을 이벤트를 통해서 하다보니
어떤 시점에서 구독/해지에 문제가 생기는지 신호를 수신하거나 발행하는 쪽이 문제인건지 직관적으로 파악하기가 어렵다.
GC가 콜백을 수거하는 시점도 명확하게 파악하기가 어렵다보니 언제 어떻게 버그가 터지는지 알기가 힘들다.
처음 PlayScene에 진입했을 때는 아무런 문제가 없었지만 신 재로딩을 통한 2일차에서 메뉴를 키는 부분에서 문제가 생기다보니
놓칠수 밖에 없었다.

화이트보드의 오브젝트와 상호작용을 통해 UI를 통해 정보를 얻는 과정에서도 이벤트가 쓰이고 있고
현재 게임의 페이즈가 어떤 상태인지도 이벤트를 수신하다보니 EventBus구조를 쓰기 좋은 환경과 그렇지 않은 부분에 대한 고민도 해볼 필요가 있다는 생각이 들었다.
처음엔 느슨한 결합, 서로 모르는게 제일 좋은거 아닌가? 디버깅이나 협업적인 측면이나? 라고 생각을 했지만
막상 실제 개발과 디버깅을 통한 과정의 경험속에서 느낀건 단순한 구조가 때로는 더 효율적일 수도 있겠다는 생각을 했다.
게임의 구조가 커질 수록 이런 이벤트구조가 빛을 발하지만, 처음부터 이벤트형식으로 써서 그런지 아직 익숙치 않은 부분도 있어서 디버깅과 QA에 있어서 꽤나 애를 먹고 있는 상황이다.

게임이 페이즈단위로 쪼개져있는게 생각보다 처리하기 어렵다는 생각도 많이 들었다.
어떤 페이즈에선 비활성화 시키고 활성화시키고에 대한 정책이나 규칙같은 것들을 명확히 설정하고 진입했어야 했는데
모호한 상태로 들어가다보니 고려해야되는게 점점 많아지고 여기저기서 필요할 때마다 생성 및 수정하는 행위가 꽤나 피곤하게 느껴지기 도 했다.
이번주안으로 UI 데이터연결과 상세보기용 오브젝트를 더 추가하고, UI를 연결하는 데 있어서 이런 문제가 생기지 않도록
좀 더 면밀히 디버깅해볼 필요성을 느낀 하루였다.
'본 캠프' 카테고리의 다른 글
| [내일배움캠프 본 캠프 64일차] 월드 오브젝트에 UI를 표시하기 (0) | 2025.12.29 |
|---|---|
| [내일배움캠프 본 캠프 63일차] 플레이루프 및 상세보기 테스트 (0) | 2025.12.26 |
| [내일배움캠프 본 캠프 61일차] Input값이 여러 개일 때 EventBus (0) | 2025.12.23 |
| [내일배움캠프 본 캠프 60일차] 같은 오브젝트, 다른 상태 (0) | 2025.12.22 |
| [내일배움캠프 본 캠프 59일차] 사물을 확대해서 돌려보기_2 (0) | 2025.12.19 |