세이브데이터 구조 전면 개편 — 글로벌 출시의 숨은 블로커 해소
4개 언어 글로벌 출시 지원- 증상
- 세이브 파일은 코드가 아니라 데이터입니다. 그런데 기존 구조는 런타임 클래스 인스턴스를 그대로 JSON 직렬화하고 있어, 변수명 리팩토링만으로 하위호환이 깨지고 직렬화할 수 없는 자료구조는 저장되지 않았습니다. 언어 설정 관련 상태까지 세이브에 결합되어 있어, 게임 진행 중 언어를 바꿀 수 없다는 문제가 4개 언어 글로벌 출시의 블로커가 됐습니다.
- 원인
- 저장 포맷이 런타임 객체 구조에 직접 결합되어, 코드 변경과 로컬라이즈 상태 변경이 곧 세이브 호환성 파괴로 이어지는 구조였습니다.
- 조치
- 세이브 전용 클래스를 새로 도입하고, UID 기반으로 데이터를 저장·로드하는 방식으로 완전히 재설계했습니다. 런타임 객체와 저장 포맷을 분리해 코드 리팩토링과 세이브 호환성을 독립시켰습니다.
결과
게임 진행 중 언어 변경이 가능해졌고, 영어·한국어·중국어(간체/번체) 4개 언어 글로벌 출시를 지원했습니다.


