> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Datastore API 레퍼런스

바이너리 데이터 스토리지 기능




임의의 바이너리 데이터를 서버에 저장하는 기능을 제공합니다.<br>
업로드된 데이터에는 접근 권한 관리(ACL - Access Control List)가 적용됩니다.

데이터에는 누구나 접근할 수 있는 `public`<br>
지정한 사용자 ID의 게임 플레이어만 접근할 수 있는 `protected`<br>
본인만 접근할 수 있는 `private`, 이렇게 3종류의 ACL을 설정할 수 있습니다.

업로드된 데이터는 버전 관리되며, 데이터를 업데이트하거나 삭제하더라도<br>
오래된 세대의 데이터는 30일간 보관됩니다.<br>
세대 ID를 지정하여 다운로드하면 업데이트 전·삭제 전의 데이터를 가져올 수 있습니다.<br>
업로드된 데이터에는 고유 ID(UUID v4)와 세대 ID가 할당되며, 데이터를 업데이트하거나 삭제하면 세대 ID가 갱신됩니다.<br>
데이터를 다운로드할 때는 세대 ID를 지정하여 구체적인 파일을 특정합니다.

데이터를 업데이트하는 것과 동시에 다른 플레이어가 데이터에 접근하려고 할 때 의도치 않게 새 버전의 데이터를 가져오지 않도록 다운로드 요청에 세대 ID를 포함할 수 있습니다.<br>
세대 ID를 다운로드 요청에 추가함으로써, 목록을 조회한 시점의 데이터를 확실하게 다운로드하도록 보장할 수 있습니다.

다만, 오래된 세대의 데이터에 언제까지나 접근할 수 있는 것을 원하지 않는 게임도 있을 수 있습니다.<br>
이를 위해 데이터 소유자 이외의 사용자는 업데이트 후 60분 이내, 그리고 바로 이전 세대에 한해서만 오래된 세대의 데이터를 다운로드하도록 허용하는 옵션이 존재합니다.

이 기능을 사용하여 세이브 데이터를 관리할 때는 부정행위에 대한 내성을 고려하시기 바랍니다.<br>
다른 GS2 서비스에서는 게임 사양에 맞춰 가산·감산을 자유롭게 할 수 없도록 제어되고 있습니다.<br>
하지만 로컬 세이브 데이터를 신뢰하는 것은 치트 행위의 원인이 될 수 있습니다.<br>
GS2의 기능이 제공되는 경우에는 그것을 우선적으로 사용하고, UGC 콘텐츠의 교환이나 설정값(config) 등 조작되더라도 영향이 경미한 요소만을 관리하도록 하십시오.

[마이크로서비스 소개 / GS2-Datastore](../../microservices/datastore)



- [GS2-Datastore Deploy/CDK 레퍼런스](/ko/api_reference/datastore/deploy/)
  
- [GS2-Datastore SDK API 레퍼런스](/ko/api_reference/datastore/sdk/)
  
- [GS2-Datastore SDK for Game Engine API 레퍼런스](/ko/api_reference/datastore/game_engine/)
  
- [GS2-Datastore 스크립트 트리거 레퍼런스](/ko/api_reference/datastore/script/)
  
