setStoreData
Description
값을 앱 스코프의 로컬 저장소(디스크)에 영구 저장합니다. data에 null을 전달하면 해당 키가 삭제됩니다. setSharedData와 달리 앱을 재시작해도 값이 유지됩니다.
Parameters
| 파라미터 | 타입 | 설명 |
|---|---|---|
| key | String | 저장할 데이터의 키 이름 |
| data | dynamic | 저장할 값. null이면 해당 키를 삭제 |
Returns
void
Notes
- 내부적으로
LucyStorage에 앱 스코프 prefix가 붙은 키로 저장됩니다. - 디스크 I/O를 사용하므로
setSharedData보다 상대적으로 느립니다. - 로그인 토큰, 테마/사용자 설정처럼 앱 재시작 후에도 유지되어야 하는 값에 사용하세요.
- 특정 키만 삭제하려면
null을 전달하거나$app.removeStoreData(key)를 사용하세요.
Example
// 다크 테마 설정을 영구 저장
$app.setStoreData("THEME_MODE", 1);
// 저장된 값 삭제
$app.setStoreData("THEME_MODE", null);
setSharedData vs setStoreData vs setVar 비교
| 구분 | setSharedData | setStoreData | setVar |
|---|---|---|---|
| 저장 위치 | 앱 프로세스 메모리 | 디스크 (LucyStorage) | 앱 변수 시스템 (LucyVarMngr) |
| 영속성 | 앱 종료 시 소멸 | 앱 재시작 후에도 유지 | 앱 종료 시 소멸 |
| 정의 방식 | 코드에서 자유롭게 키 지정 | 코드에서 자유롭게 키 지정 | 스튜디오에서 사전 정의 필요 |
| 읽기 함수 | $app.getSharedData(key) | $app.getStoreData(key) | $app.getVar(name) |
| 삭제 방법 | null 값 전달 | null 값 전달 | 값 변경만 가능 |
| 주요 용도 | 페이지 간 임시 데이터 공유 | 사용자 설정, 로그인 토큰 등 영구 저장 | 스튜디오 UI 와 연동된 앱 변수 제어 |
| 속도 | 빠름 (메모리) | 상대적으로 느림 (디스크 I/O) | 빠름 (메모리) |
Related
$app.getStoreData(key)$app.removeStoreData(key)$app.setSharedData(sharedKey, data)