본문으로 건너뛰기

setSharedData

Description

앱 실행 중 전역으로 공유되는 인메모리 데이터를 저장합니다.

저장된 데이터는 앱이 실행되는 동안 어느 페이지·스크립트에서도 $app.getSharedData(key) 로 읽을 수 있습니다. 앱이 종료되면 사라집니다(비영구적).

datanull 을 전달하면 해당 키가 삭제됩니다.

Parameters

파라미터타입설명
sharedKeyString데이터를 식별하는 키 이름
datadynamic저장할 값. 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 비교

구분setSharedDatasetStoreDatasetVar
저장 위치앱 프로세스 메모리디스크 (LucyStorage)앱 변수 시스템 (LucyVarMngr)
영속성앱 종료 시 소멸앱 재시작 후에도 유지앱 종료 시 소멸
정의 방식코드에서 자유롭게 키 지정코드에서 자유롭게 키 지정스튜디오에서 사전 정의 필요
읽기 함수$app.getSharedData(key)$app.getStoreData(key)$app.getVar(name)
삭제 방법null 값 전달null 값 전달값 변경만 가능
주요 용도페이지 간 임시 데이터 공유사용자 설정, 로그인 토큰 등 영구 저장스튜디오 UI 와 연동된 앱 변수 제어
속도빠름 (메모리)상대적으로 느림 (디스크 I/O)빠름 (메모리)

언제 무엇을 쓸까?

  • 세션 데이터, 페이지 간 전달setSharedData — 빠르고 간편, 앱 종료 시 자동 소멸
  • 설정값, 로그인 상태, 즐겨찾기setStoreData — 앱 재시작 후에도 값 유지 필요
  • 스튜디오 UI 변수 업데이트setVar — 스튜디오에서 미리 선언한 변수만 변경 가능
  • $app.getSharedData(sharedKey)
  • $app.setStoreData(key, data)
  • $app.getStoreData(key)
  • $app.setVar(appVarName, data)
  • $app.getVar(appVarName)