본문으로 건너뛰기

dotgimon 제작기 08. AsyncStorage에서 SQLite로 저장소 이전

·2 min read·8 / 21

저장소를 SQLite 테이블 네 개로 나눴다

SQLite 저장소(pixelpet.db)를 만들었다. SQLite는 앱 안에 파일 하나로 들어가는 관계형 데이터베이스다. 테이블은 네 개로 나눴다.

테이블담는 것
profile기기 UUID, 표시 이름
current_save최신 엔진 스냅샷
pets세대 + 출생 시각을 키로 쓴 개체 기록
life_events부화, 진화, 합체, 대전, 사망, 리셋 기록

pets는 세대와 출생 시각을 키로 썼다. 진화해도 같은 개체로 추적하기 위해서다.

기존 데이터는 원본을 남겨둔 채 한 번만 옮겼다

기존 데이터는 AsyncStorage에 있었다. AsyncStorage는 React Native의 키-값 저장소로, 웹의 localStorage와 비슷한 역할을 한다. 이 데이터를 검증한 뒤 첫 초기화 트랜잭션에서 한 번 이전했고, 원본은 지우지 않고 유지했다.

기록한 적 없는 과거는 이전으로도 살릴 수 없었다

예전에 기록하지 않은 데이터는 이전으로 복원할 수 없었다. 이전 세대나 정확한 진화 시각 같은 것들이다. 기존 펫은 "가져오기" 이벤트로 표시하고 넘어갔다.