CREATE YOUR WORLD
데이터 저장소 (Data Storage)
World DataStorage
7분
zepeto의 데이터 저장소는 사용자 게임 플레이 데이터를 월드별로 저장하고 관리하는 원격 데이터베이스입니다 사용자 id에 의해 저장되고 관리되므로 여러 플레이 세션에서 유지되거나 업데이트해야 하는 사용자 게임 플레이 데이터를 저장하는 데 적합합니다 사용자의 플레이 데이터를 관리하려면 api https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/ 를 사용하여 zepeto 멀티플레이 서버에서 사용할 수 있습니다 zepeto 스튜디오의 월드 데이터 관리 메뉴에서 데이터 저장소에 저장된 사용자별 플레이 데이터를 보고 수정할 수 있습니다 📘 다음 가이드를 참조하십시오 \[ 월드 데이터 매니지먼트 docid\ qggr fyhst 0ftvopqzix ] 데이터 저장소 api 📘 다음 api 참조를 참조하십시오 zepeto multiplay datastorage api https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage 서버 코드 index ts sandbox를 작성해 주세요 unity editor 환경의 로컬 서버에서 서버가 종료되고 다시 실행될 때 데이터가 보존되지 않습니다 월드 배포 후 데이터는 zepeto db에 저장되고 유지됩니다 아래 규칙이 충족되지 않으면 데이터가 저장되지 않습니다 값이 제공되지 않음 저장할 수 없는 값이 입력됨 데이터 저장 제약 조건 키 길이 제한 50자 키에는 알파벳, 숫자 및 밑줄( )만 허용됩니다 최대 키 수 사용자 id당 1000개 최대 값 데이터 크기 500,000자 값 데이터는 실제 서버에 저장될 때 내부 식별자와 함께 직렬화됩니다 안전 여유를 두고 사용하세요 단일 키에 대한 데이터 읽기 / 쓰기 / 삭제 로컬 플레이어의 datastorage에서 단일 키에 대한 데이터를 읽고, 쓰고, 삭제할 수 있습니다 datastorage get https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#get , datastorage set https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#set 및 datastorage remove https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#remove import { datastorage } from 'zepeto multiplay datastorage'; export default class extends sandbox { // async onjoin(client sandboxplayer) { // 로컬 플레이어의 데이터 저장소 로드 const playerstorage datastorage = client loaddatastorage(); // 'level' 키와 관련된 값 가져오기 	 let playerlevel = await playerstorage get("level") as number; if (playerlevel == null) { playerlevel += 1; } // 증가된 값 저장 await playerstorage set("level", playerlevel); // 데이터 삭제 await playerstorage remove("level"); } } 여러 키에 대한 데이터 읽기 / 쓰기 로컬 플레이어의 데이터 저장소에서 여러 키에 대한 데이터를 읽고, 쓰고, 삭제할 수 있습니다 datastorage mget https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#mget 및 datastorage mset https //developer zepeto me/docs/multiplay server/interfaces/zepeto multiplay datastorage datastorage/#mset import { datastorage } from 'zepeto multiplay datastorage'; export default class extends sandbox { // async onjoin(client sandboxplayer) { const storage = client loaddatastorage(); // mset (다중 키 값) 저장 const success = await storage mset\<number>(\[ { key 'key1', value 1 }, { key 'key2', value 2 } ]); // 성공하면 if (success) { // key1과 key2의 값을 한 번에 가져오기 const keys = \['key1', 'key2']; const keyvaleus = await storage mget(keys); keys foreach(key => { const value = keyvaleus\[key]; console log(value); }); } } } 오류 처리 datastorage api를 호출할 때 발생하는 예외에 대한 적절한 처리를 구현할 수 있습니다 이는 datastorageerror https //developer zepeto me/docs/multiplay server/enums/zepeto multiplay datastorage datastorageerror import { datastorage } from 'zepeto multiplay datastorage'; export default class extends sandbox { // async onjoin(client sandboxplayer) { // 로컬 플레이어의 데이터 저장소 로드 const playerstorage datastorage = client loaddatastorage(); try { let playerlevel = await playerstorage get("level") as number; } catch (error) { let systemerror = (error as systemerror); if (systemerror code === datastorageerror unknown || systemerror code === datastorageerror networkerror) { // 시스템 오류 또는 네트워크 오류 console log(systemerror message); } else if (systemerror code === datastorageerror keyconstraintviolated) { // 키 제약 조건 위반 console log(systemerror message); } else if (systemerror code === datastorageerror valueconstraintviolated) { // 값 제약 조건 위반 console log(systemerror message); } } } } 사용자 id로 데이터 저장소에 접근하기 특정 사용자의 데이터 저장소에 userid를 사용하여 접근하는 것도 가능합니다 datastorage loaddatastorage https //developer zepeto me/docs/multiplay server/namespaces/zepeto multiplay datastorage? highlight=loaddatastorage#loaddatastorage , 대신 로컬 플레이어의 데이터 저장소를 사용합니다 const userstorage datastorage = await loaddatastorage(userid); 👍 팁 다양한 월드 간에 데이터를 저장하고 싶다면, multiplay 서버에서 http 요청하기 docid\ f2p5ntq 0lu4os iavgj8 구현하세요