프로그래밍
17시간 전
이 글은 Rust 기반 게임 개발에서 개발 편의를 위한 핫리로딩(hotreloading) 구현 방법을 상세히 설명합니다.
핵심 아이디어는 프로그램을 **호스트(host)**와 워커(worker) 두 부분으로 나누어, 워커를 동적 라이브러리로 빌드해 실행 중에 교체할 수 있게 하며, 호스트는 상태를 보유해 재로드 시 상태를 유지하도록 하는 것입니다.
특히, 상태 보존 문제를 해결하기 위해 직렬화(serialize) 후 재로드 시 역직렬화(deserialize) 하는 방식을 도입해, 동적 디스패치(vtable) 문제와 메모리 오류를 방지하며, 이를 통해 실시간으로 코드를 수정하고 즉시 게임에 반영할 수 있는 효율적이고 안정적인 개발 환경을 제공합니다.