
MonoBehaviour의 비대화 문제와 해결책
Unity 개발 시 MonoBehaviour에 상태 변경, UI 업데이트, 타 시스템 알림 로직이 섞이면 코드 파악이 어려워지고 버그가 발생하기 쉬움. 특히 필드 변수를 직접 수정하는 방식은 의도치 않은 상태 변경의 원인이 됨. 이를 해결하기 위해 본문에서는 함수형 프로그래밍의 개념을 도입한 설계를 제안함.
제안하는 설계의 핵심 요소
본 설계는 크게 두 가지 축으로 구성됨:
- 상태의 불변성: C# 9의 record 타입을 사용하여 상태를 직접 수정하지 않고, 변경된 부분만 교체한 새로운 인스턴스를 생성함.
- 로직의 자산화: 로직을 ScriptableObject(SO)로 작성하여 '상태를 받아 새로운 상태를 반환'하는 순수 함수로 설계함.
구조적 이점
이러한 방식을 적용하면 MonoBehaviour는 로직을 직접 수행하지 않고, SO가 반환한 결과를 받아 화면에 출력하는 외곽(Shell) 역할만 수행하게 됨. 로직이 Unity 엔진 API와 분리되어 순수 C# 영역에서 관리되므로 유지보수와 검증이 매우 간편해짐.
1
검열관 메모 (0)
아직 검열관 메모가 없습니다. 첫 번째 메모를 남겨보세요.