setSharedData
Description
앱 실행 중 전역으로 공유되는 인메모리 데이터를 저장합니다.
저장된 데이터는 앱이 실행되는 동안 어느 페이지·스크립트에서도 $app.getSharedData(key) 로 읽을 수 있습니다. 앱이 종료되면 사라집니다(비영구적).
data 에 null 을 전달하면 해당 키가 삭제됩니다.
Parameters
| 파라미터 | 타입 | 설명 |
|---|---|---|
| sharedKey | String | 데이터를 식별하는 키 이름 |
| data | dynamic | 저장할 값. null 이면 해당 키를 삭제 |
Returns
void
Notes
- 데이터는 앱 프로세스 메모리에만 존재하며 앱 재시작 시 초기화됩니다.
- 모든 페이지가 동일한 메모리 맵을 공유하므로 페이지 간 데이터 전달에 적합합니다.
- 영구 저장이 필요하면
$app.setStoreData()를 사용하세요. - 스튜디오에서 정의한 앱 변수를 변경하려면
$app.setVar()를 사용하세요. - 값의 타입 제한 없음 — 문자열, 숫자, 객체, 배열 모두 저장 가능합니다.
Example
// 로그인 후 사용자 정보를 전역으로 저장
$app.setSharedData("currentUser", { id: 1, name: "홍길동", role: "admin" });
// 다른 페이지에서 읽기
var user = $app.getSharedData("currentUser");
console.log(user.name); // "홍길동"
// 키 삭제 (로그아웃 시)
$app.setSharedData("currentUser", 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) | 빠름 (메모리) |
언제 무엇을 쓸까?
- 세션 데이터, 페이지 간 전달 →
setSharedData— 빠르고 간편, 앱 종료 시 자동 소멸 - 설정값, 로그인 상태, 즐겨찾기 →
setStoreData— 앱 재시작 후에도 값 유지 필요 - 스튜디오 UI 변수 업데이트 →
setVar— 스튜디오에서 미리 선언한 변수만 변경 가능
Related
$app.getSharedData(sharedKey)$app.setStoreData(key, data)$app.getStoreData(key)$app.setVar(appVarName, data)$app.getVar(appVarName)