UWP 앱의 설정 저장 및 로드Save and load settings in a UWP app

이 항목은 UWP(유니버설 Windows 플랫폼) 앱에서 설정을 로드하고 저장하기를 시작하기 위해 알아야 할 사항에 대해 다룹니다.This topic covers what you need to know to get started loading, and saving, settings in a Universal Windows Platform (UWP) app. 자세한 내용을 알아보는 것을 돕기 위해 주 API를 소개하며 링크가 제공됩니다.The main APIs are introduced, and links are provided to help you learn more.

앱에서 사용자 지정 가능한 측면을 기억하기 위해 설정을 사용합니다.Use settings to remember the user-customizable aspects of your app. 예를 들어, 뉴스 뷰어는 앱 설정을 사용하여 표시할 뉴스 소스와 문서 읽기에 사용할 글꼴을 저장합니다.For example, a news reader could use app settings to save which news sources to display and what font to use for reading articles.

로컬 및 로밍 설정을 비롯한 앱 설정을 저장 및 로드하는 코드를 살펴보겠습니다.We’ll look at code to save and load app settings, including local and roaming settings.

알아야 할 사항What do you need to know

앱 설정을 사용하여 사용자의 기본 설정 및 앱 상태 등 구성 데이터를 저장합니다.Use app settings to store configuration data such as user preferences and app state. 디바이스에 관련된 설정은 로컬로 저장됩니다.Settings that are specific to the device are stored locally. 앱이 설치된 디바이스에 적용되는 설정은 로밍 데이터 저장소에 저장됩니다.Settings that apply on whichever device your app is installed on are stored in the roaming data store. 설정은 사용자가 동일한 Microsoft 계정으로 로그인한 동일한 버전의 앱이 설치되어 있는 디바이스 간에 로밍됩니다.Settings are roamed between devices on which the user is signed in with the same Microsoft Account and have the same version of the app installed.

다음 데이터 형식은 정수, 두 배로 증가, 부동, 문자, 문자열, 포인트, DateTime 등의 설정으로 사용할 수 있습니다.The following data types can be used with settings: integers, doubles, floats, chars, strings, Points, DateTimes, and more. 여러 설정을 한 단위로 처리해야 하는 경우 유용한 ApplicationDataCompositeValue 클래스 인스턴스를 저장할 수도 있습니다.You can also store instances of the ApplicationDataCompositeValue class which is useful when there are multiple settings that should be treated as a unit. 예를 들어 앱의 읽기 창에 텍스트를 표시하기 위한 글꼴 이름 및 크기는 하나의 단위로 저장/복원되어야 합니다.For example, a font name and point size for displaying text in the reading pane of your app should be saved/restored as a single unit. 이렇게 하면 다른 설정 이전에 한 설정을 로밍하는 지연 때문에 한 설정이 다른 설정과 비동기화되는 것을 방지할 수 있습니다.This prevents one setting from getting out of sync with the other due to delays in roaming one setting before the other.

앱 설정을 저장하거나 로드하는 데 알아야 할 주요 API는 다음과 같습니다.Here are the main APIs you need to know about to save or load app settings:

앱 설정 저장Save app settings

이 소개에서는 앱 설정을 로컬로 저장 및 로드하고 디바이스 간에 복합 글꼴/글꼴 크기 설정을 로밍하는 단순한 두 가지 시나리오에 중점을 둡니다.For this introduction, we will focus on two simple scenarios: saving and loading an app setting locally, and roaming a composite font/font size setting between devices.

// Save a setting locally on the device
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["test setting"] = "a device specific setting";

// Save a composite setting that will be roamed between devices
ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["Font"] = "Calibri";
composite["FontSize"] = 11;
roamingSettings.Values["RoamingFontInfo"] = composite;

먼저 로 로컬 설정 데이터 저장소에 대한 ApplicationDataContainerWindows.Storage.ApplicationData.Current.LocalSettings를 가져와 로컬 디바이스에 설정을 저장합니다.Save a setting to the local device, by first getting an ApplicationDataContainer for the local settings data store with Windows.Storage.ApplicationData.Current.LocalSettings. 이 인스턴스에 할당한 키/값 사전 쌍은 로컬 디바이스 설정 데이터 저장소에 저장됩니다.Key/value dictionary pairs that you assign to this instance are saved in the local device setting data store.

비슷한 패턴을 사용하여 로밍 설정을 저장합니다.Save a roaming setting using a similar pattern. 먼저 로 로밍 설정 데이터 저장소에 대한 ApplicationDataContainerWindows.Storage.ApplicationData.Current.RoamingSettings를 가져옵니다.First get an ApplicationDataContainer for the roaming settings data store with Windows.Storage.ApplicationData.Current.RoamingSettings. 그런 다음 이 인스턴스에 키/값 쌍을 할당합니다.Then assign key/value pairs to this instance. 이러한 키/값 쌍은 자동으로 디바이스 간에 로밍됩니다.Those key/value pairs will automatically roam between devices.

위의 코드 조각에서 ApplicationDataCompositeValue는 여러 키/값 쌍을 저장합니다.In the code snippet above, a ApplicationDataCompositeValue stores multiple key/value pairs. 복합 값은 서로 비동기화되어서는 안 되는 여러 설정을 사용하는 경우 유용합니다.Composite values are useful when you have multiple settings that shouldn't get out of sync with each other. ApplicationDataCompositeValue를 저장하면 값이 저장되고 하나의 단위로 또는 원자 단위로 자동으로 로드됩니다.When you save a ApplicationDataCompositeValue, the values are saved and loaded as a unit, or atomically. 이를 통해 설정이 개별적이지 않고 한 단위로 로밍되기 때문에 관련된 설정이 비동기화되지 않습니다.This way settings that are related won't get out of sync because they are roamed as a unit instead of individually.

앱 설정 로드Load app settings

// load a setting that is local to the device
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
String localValue = localSettings.Values["test setting"] as string;

// load a composite setting that roams between devices
ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
Windows.Storage.ApplicationDataCompositeValue composite = (ApplicationDataCompositeValue)roamingSettings.Values["RoamingFontInfo"];
if (composite != null)
{
    String fontName = composite["Font"] as string;
    int fontSize = (int)composite["FontSize"];
}

로 로컬 설정 데이터 저장소에 대한 ApplicationDataContainerWindows.Storage.ApplicationData.Current.LocalSettings 인스턴스를 가져와 로컬 디바이스에서 설정을 로드합니다.Load a setting from the local device, by first getting an ApplicationDataContainer instance for the local settings data store with Windows.Storage.ApplicationData.Current.LocalSettings. 이를 사용하여 키/값 쌍을 검색합니다.Then use it to retrieve key/value pairs.

비슷한 패턴을 따라 로밍 설정을 로드합니다.Load a roaming setting by following a similar pattern. 먼저 로 로밍 설정 데이터 저장소에서 ApplicationDataContainerWindows.Storage.ApplicationData.Current.RoamingSettings 인스턴스를 가져옵니다.First get an ApplicationDataContainer instance from the roaming settings data store with Windows.Storage.ApplicationData.Current.RoamingSettings. 해당 인스턴스에서 키/값 쌍에 액세스합니다.Access key/value pairs from that instance. 데이터가 아직 설정에 액세스하는 디바이스에 로밍되지 않은 경우 null ApplicationDataContainer를 얻습니다.If the data hasn't roamed yet to the device that you are accessing the settings from, you'll get a null ApplicationDataContainer. 그러한 이유 때문에 위 코드 예제에서 if (composite != null) 확인이 있습니다.That's why there is a if (composite != null) check in the example code above.

유용한 API 및 문서Useful APIs and docs

여기에 앱 설정 저장 및 로드를 시작하는 데 도움이 되는 API의 빠른 요약 및 다른 유용한 문서가 제공됩니다.Here is a quick summary of APIs, and other useful documentation, to help get you started saving and loading app settings.

유용한 APIUseful APIs

APIAPI 설명Description
ApplicationData.LocalSettingsApplicationData.LocalSettings 로컬 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다.Gets the application settings container from the local app data store.
ApplicationData.RoamingSettingsApplicationData.RoamingSettings 로밍 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다.Gets the application settings container from the roaming app data store.
ApplicationDataContainerApplicationDataContainer 컨테이너 계층 만들기, 삭제, 열거 및 통과를 지원하는 앱 설정에 대한 컨테이너입니다.A container for app settings that supports creating, deleting, enumerating, and traversing the container hierarchy.
Windows.UI.ApplicationSettings 네임스페이스Windows.UI.ApplicationSettings Namespace Windows 셸의 설정 창에 표시되는 앱 설정을 정의하는 데 사용할 수 있는 클래스를 제공합니다.Provides classes that you'll use to define the app settings that appear in the settings pane of the Windows shell.

유용한 문서Useful docs

항목Topic 설명Description
앱 설정에 대한 지침Guidelines for app settings 앱 설정을 만들고 표시하기 위한 모범 사례를 설명합니다.Describes best practices for creating and displaying app settings.
설정과 기타 앱 데이터의 저장 및 검색Store and retrieve settings and other app data 로밍 설정을 포함하여 설정을 저장하고 검색하는 단계를 안내합니다.Walk-through for saving and retrieving settings, including roaming settings.

유용한 코드 샘플Useful code samples

코드 샘플Code sample 설명Description
애플리케이션 데이터 샘플Application data sample 설정의 시나리오 2-4 포커스Scenarios 2-4 focus on settings