[내일배움캠프 본 캠프 51일차] 이벤트버스에 대한 이해
2025. 12. 9. 23:18ㆍ본 캠프

이번 프로젝트에서는 옵저버 패턴에서 벗어나 이벤트버스를 활용하려고 계획중인데
Additive Scene을 통해 UI전용 신을 분리해서 플레이신 위에 덧씌운 형태로 사용하는데 특화되어 있는 구조다.
기존에는 항상 UIManager가 메인신에 오브젝트(컴포넌트)로 붙어있었고
누군가가 메인신을 건드리게 되면 UI작업 시 충돌할 확률이 높았기 때문에 협업에서 불편함이 꽤 많았다.
그래서 Additive Scene을 사용하기로 결정했다.
이벤트버스는 특히 발행자와 구독자간의 의존성이 없기 때문에 결합도가 낮아서 분리된 시스템으로
Mock 테스트, 디버깅 등에서 강점이 있다.
그래서 지금 UIManager는 EventBus 형식으로 수치가 변화하는 이벤트를 받아서 출력하는 형태로 변경하고
해당 이벤트도 EventStructs 라는 별도 의 스크립트로 보관하면 협업에 있어서 좋다고 생각이 들었다.

구독

아직 멀티캐스트에 대한 이해도가 부족해서 Delegate 멀티캐스트는 미뤄두고 콜백을 리스트로 관리하는 방식을 채용했다.
이벤트 종류를 타입형태로 받아서 key형태로 딕셔너리를 통해 관리한다.
만약 콜백이 없다면 새로운 리스트를 만들고
콜백이 있다면 기존에 구독자에게 해당 콜백 리스트를 추가한다.
해지

발행

플레이어 측 이벤트 발행

'본 캠프' 카테고리의 다른 글
| [내일배움캠프 본 캠프 53일차] 볼륨/비네팅 DOTween (0) | 2025.12.11 |
|---|---|
| [내일배움캠프 본 캠프 52일차] 이벤트버스 구성 (0) | 2025.12.10 |
| [내일배움캠프 본 캠프 50일차] R&D 기간 (0) | 2025.12.08 |
| [내일배움캠프 본 캠프 49일차] 팀프로젝트 5일차 (0) | 2025.12.05 |
| [내일배움캠프 본 캠프 48일차] 팀프로젝트 4일차 (0) | 2025.12.04 |