이 항목에서는 UWP(유니버설 Windows 플랫폼) 앱에서 설정 로드 및 저장을 시작하기 위해 알아야 할 내용을 다룹니다. 기본 API가 도입되고 자세한 내용을 알아볼 수 있도록 링크가 제공됩니다.
설정을 사용하여 앱의 사용자 지정 가능한 측면을 기억합니다. 예를 들어 뉴스 읽기 프로그램은 앱 설정을 사용하여 표시할 뉴스 원본과 문서를 읽는 데 사용할 글꼴을 저장할 수 있습니다.
앱 설정을 저장하고 로드하는 코드를 살펴보겠습니다.
알아야 할 사항
앱 설정을 사용하여 사용자 기본 설정 및 앱 상태와 같은 구성 데이터를 저장합니다.
설정과 함께 사용할 수 있는 데이터 유형으로는 정수, 배정밀도 부동 소수점 숫자, 단정밀도 부동 소수점 숫자, 문자, 문자열, 점, 날짜와 시간 등이 있습니다. 하나의 단위로 처리해야 하는 여러 설정이 있을 때 유용한 ApplicationDataCompositeValue 클래스의 인스턴스를 저장할 수도 있습니다. 예를 들어 앱의 읽기 창에 텍스트를 표시하기 위한 글꼴 이름과 점 크기를 단일 단위로 저장/복원해야 합니다. 이렇게 하면 기본 프로그램과 백그라운드 작업 간의 동시 액세스로 인해 한 설정이 다른 설정과 동기화되지 않습니다.
앱 설정을 저장하거나 로드하기 위해 알아야 할 주요 API는 다음과 같습니다.
- Windows.Storage.ApplicationData.Current.LocalSettings 는 로컬 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다. 여기에 저장된 설정은 디바이스에 유지됩니다.
-
Windows.Storage.ApplicationData.Current.RoamingSettings 는 로밍 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다. 여기에 저장된 설정은 더 이상 로밍되지 않지만(Windows 11을 기준으로) 설정 저장소를 계속 사용할 수 있습니다. RoamingSettings에 대한 권장 대체는 Azure App Service
입니다. Azure App Service는 널리 지원되고, 잘 문서화되고, 신뢰할 수 있으며, iOS, Android 및 웹과 같은 플랫폼 간/에코시스템 간 시나리오를 지원합니다. - Windows.Storage.ApplicationDataContainer는 앱 설정을 키/값 쌍으로 나타내는 컨테이너입니다. 이 클래스를 사용하여 설정 값을 만들고 검색합니다.
- Windows.Storage.ApplicationDataCompositeValue 은 단위로 직렬화되어야 하는 여러 앱 설정을 나타냅니다. 이는 한 설정을 다른 설정과 독립적으로 업데이트해서는 안 되는 경우에 유용합니다.
앱 설정 저장
이 소개에서는 간단한 앱 설정 저장 및 로드, 복합 글꼴/글꼴 크기 설정 저장 및 로드의 두 가지 간단한 시나리오에 초점을 맞춥니다.
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
// Save a setting locally on the device
localSettings.Values["test setting"] = "a device specific setting";
// Save a composite setting locally on the device
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["Font"] = "Calibri";
composite["FontSize"] = 11;
localSettings.Values["FontInfo"] = composite;
먼저 를 사용하여 로컬 설정 데이터 저장소의 Windows.Storage.ApplicationData.Current.LocalSettings를 가져온 후에 설정을 저장합니다. 이 인스턴스에 할당하는 키/값 사전 쌍은 로컬 디바이스 설정 데이터 저장소에 저장됩니다.
위의 코드 조각에서 ApplicationDataCompositeValue 는 여러 키/값 쌍을 저장합니다. 복합 값은 서로 동기화되지 않아야 하는 여러 설정이 있는 경우에 유용합니다. ApplicationDataCompositeValue를 저장하면 값이 단위 또는 원자 단위로 저장되고 로드됩니다. 이 방식으로 관련된 설정이 동기화 상태를 유지합니다.
앱 설정 로드
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
// load a setting that is local to the device
String localValue = localSettings.Values["test setting"] as string;
// load a composite setting
Windows.Storage.ApplicationDataCompositeValue composite = (ApplicationDataCompositeValue)localSettings.Values["FontInfo"];
if (composite != null)
{
String fontName = composite["Font"] as string;
int fontSize = (int)composite["FontSize"];
}
를 사용하여 로컬 설정 데이터 저장소에 대한 Windows.Storage.ApplicationData.Current.LocalSettings 인스턴스를 먼저 가져온 후 설정을 로드합니다. 그런 다음 키/값 쌍을 검색하는 데 사용합니다. 데이터가 없는 경우 null 개체를 가져옵니다. C#에서, 설정이 존재하지 않는 경우 localValue는 null을 의미합니다.
비슷한 패턴을 따라 복합 설정을 로드합니다. 로컬 설정 데이터 저장소에서 키/값 쌍에 액세스합니다. 데이터가 없으면 ApplicationDataContainernull이 표시됩니다. 그렇기 때문에 위 예제 코드에 if (composite != null) 확인이 들어 있습니다.
유용한 API 및 문서
다음은 앱 설정 저장 및 로드를 시작하는 데 도움이 되는 API 및 기타 유용한 설명서에 대한 간략한 요약입니다.
유용한 API
| 응용 프로그램 인터페이스 (API) | 설명 |
|---|---|
| ApplicationData.LocalSettings |
로컬 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다. |
| 응용 프로그램 데이터.로밍 설정 | 로밍 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다. |
| ApplicationDataContainer | 앱 설정을 위한 컨테이너로, 컨테이너 계층 구조의 생성, 삭제, 열거 및 탐색을 지원합니다. |
| Windows.UI.ApplicationSettings 네임스페이스 | Windows 셸의 설정 창에 표시되는 앱 설정을 정의하는 데 사용할 클래스를 제공합니다. |
유용한 문서
| 주제 | 설명 |
|---|---|
| 앱 설정에 대한 지침 | 앱 설정을 만들고 표시하기 위한 모범 사례를 설명합니다. |
| 설정 및 기타 앱 데이터 저장 및 검색 | 설정을 저장하고 검색하는 방법 안내입니다. |
유용한 코드 샘플
| 코드 샘플 | 설명 |
|---|---|
| 애플리케이션 데이터 샘플 | 시나리오 2-4 설정에 집중 |