UWP 앱의 설정 저장 및 로드

이 항목은 UWP(유니버설 Windows 플랫폼) 앱에서 설정을 로드하고 저장하기를 시작하기 위해 알아야 할 사항에 대해 다룹니다. 자세한 내용을 알아보는 것을 돕기 위해 주 API를 소개하며 링크가 제공됩니다.

앱에서 사용자 지정 가능한 측면을 기억하기 위해 설정을 사용합니다. 예를 들어, 뉴스 뷰어는 앱 설정을 사용하여 표시할 뉴스 소스와 문서 읽기에 사용할 글꼴을 저장합니다.

앱 설정을 저장 및 로드하는 코드를 살펴보겠습니다.

알아야 할 사항

앱 설정을 사용하여 사용자의 기본 설정 및 앱 상태 등 구성 데이터를 저장합니다.

다음 데이터 형식은 정수, 두 배로 증가, 부동, 문자, 문자열, 포인트, DateTime 등의 설정으로 사용할 수 있습니다. 여러 설정을 한 단위로 처리해야 하는 경우 유용한 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로 로컬 설정 데이터 저장소에 대한 ApplicationDataContainer를 가져와 설정을 저장합니다. 이 인스턴스에 할당한 키/값 사전 쌍은 로컬 디바이스 설정 데이터 저장소에 저장됩니다.

위의 코드 조각에서 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로 로컬 설정 데이터 저장소에 대한 ApplicationDataContainer 인스턴스를 가져와 설정을 로드합니다. 이를 사용하여 키/값 쌍을 검색합니다. 데이터가 없으면 null 개체가 표시됩니다. C#에서 이는 설정이 없는 경우 localValuenull이 되는 것을 의미합니다.

비슷한 패턴을 따라 복합 설정을 로드합니다. 로컬 설정 데이터 저장소에서 키/값 쌍에 액세스합니다. 데이터가 없으면 null ApplicationDataContainer가 표시됩니다. 그러한 이유 때문에 위 코드 예제에서 if (composite != null) 확인이 있습니다.

유용한 API 및 문서

여기에 앱 설정 저장 및 로드를 시작하는 데 도움이 되는 API의 빠른 요약 및 다른 유용한 문서가 제공됩니다.

유용한 API

API 설명
ApplicationData.LocalSettings 로컬 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다.
ApplicationData.RoamingSettings 로밍 앱 데이터 저장소에서 애플리케이션 설정 컨테이너를 가져옵니다.
ApplicationDataContainer 컨테이너 계층 만들기, 삭제, 열거 및 통과를 지원하는 앱 설정에 대한 컨테이너입니다.
Windows.UI.ApplicationSettings 네임스페이스 Windows 셸의 설정 창에 표시되는 앱 설정을 정의하는 데 사용할 수 있는 클래스를 제공합니다.

유용한 문서

토픽 설명
앱 설정에 대한 지침 앱 설정을 만들고 표시하기 위한 모범 사례를 설명합니다.
설정과 기타 앱 데이터의 저장 및 검색 설정을 저장하고 검색하는 단계를 안내합니다.

유용한 코드 샘플

코드 샘플 설명
애플리케이션 데이터 샘플 설정의 시나리오 2-4 포커스