> For the complete documentation index, see [llms.txt](https://docs.overdare.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overdare.com/korean/development/api-reference/classes/datastoreservice.md).

# DataStoreService

DataStoreService : `Instance`

## Overview

DataStoreService는 서버 환경에서 데이터 저장소에 접근할 수 있도록 하는 기능을 제공합니다.

## Properties

## Methods

### GetDataStore

입력된 이름을 기반으로 새로운 DataStore 객체를 만들어 반환합니다. 만약 같은 이름으로 다시 호출하면 이전에 생성된 동일한 인스턴스를 재사용하게 됩니다.

#### Parameters

| `string` name      | DataStore 객체의 이름입니다.                                                      |
| ------------------ | ------------------------------------------------------------------------- |
| `string` scope     | DataStore 내부에서 키를 구분하기 위한 범위(scope) 문자열입니다. 비워둘 수 있으며, 입력 시 50자 이내여야 합니다. |
| `Instance` options | DataStore 생성 시 추가 동작을 지정하기 위한 옵션 인스턴스입니다. 지정하지 않으면 기본 설정으로 생성됩니다.         |

#### Return

| `GlobalDataStore` | 반환된 DataStore 객체입니다. |
| ----------------- | -------------------- |

#### Code Samples

```lua
local DataStoreService = game:GetService("DataStoreService")
local GoldStore = DataStoreService:GetDataStore("PlayerGold")
```

### GetGlobalDataStore

시스템에서 제공하는 기본 전역 데이터 스토어를 반환합니다. 특정 이름을 가진 별도의 데이터 저장소에 접근하려면 GetDataStore 함수를 사용해야 합니다.

#### Parameters

#### Return

| `GlobalDataStore` | 반환된 GlobalDataStore 객체입니다. |
| ----------------- | -------------------------- |

#### Code Samples

```lua
local DataStoreService = game:GetService("DataStoreService")
local GlobalStore = DataStoreService:GlobalDataStore()
```

### GetOrderedDataStore

입력된 이름과 범위(scope)에 해당하는 OrderedDataStore 객체를 반환합니다. OrderedDataStore는 정수 값만 저장할 수 있으며, 저장된 값을 기준으로 정렬해 조회할 수 있어 리더보드를 만들 때 사용합니다.

같은 이름과 scope로 다시 호출하면 이전에 반환된 동일한 객체를 반환합니다. scope를 생략한 호출과 scope에 global을 지정한 호출은 같은 객체를 반환합니다.

이 메서드는 서버의 Script에서만 호출할 수 있습니다. 클라이언트의 LocalScript에서 호출하면 오류가 발생합니다.

**주의사항**

* GetDataStore로 가져온 DataStore와 이름이 같아도 서로 다른 저장 공간을 사용하며, 값이 섞이지 않습니다.
* 이름, scope, 키는 모두 대소문자를 구분합니다. 대소문자만 다른 이름은 서로 다른 저장 공간입니다.
* 스튜디오 테스트 환경에서는 별도 설정 없이 임시 저장소를 사용하며, 테스트 플레이가 종료되면 저장한 데이터가 삭제됩니다.

#### Parameters

| `string` name  | OrderedDataStore 객체의 이름입니다. 1 \~ 50자 이내여야 합니다.                                                                                            |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `string` scope | <p>(선택 사항) OrderedDataStore 내부에서 저장 공간을 구분하기 위한 범위 문자열입니다.</p><ul><li>생략하면 global이 사용됩니다.</li><li>빈 문자열이거나 50자를 초과하면 오류가 발생합니다.</li></ul> |

#### Return

| `OrderedDataStore` | 반환된 OrderedDataStore 객체입니다. |
| ------------------ | --------------------------- |

#### Code Samples

```lua
local DataStoreService = game:GetService("DataStoreService")
local LeaderboardStore = DataStoreService:GetOrderedDataStore("KillLeaderboard")

local Season1Store = DataStoreService:GetOrderedDataStore("KillLeaderboard", "Season1")
```

## Events

## See also

{% content-ref url="/pages/qR9T5h2LzZt8YVAA07D4" %}
[Saving & Loading Data](/korean/manual/script-manual/advanced-gameplay-systems/datastore.md)
{% endcontent-ref %}

{% content-ref url="/pages/LBBPet4iHQBSYAPFmfBF" %}
[커스텀 리더보드](/korean/manual/script-manual/advanced-gameplay-systems/ordereddatastore.md)
{% endcontent-ref %}
