이 항목에서는 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 단위로 serialize해야 하는 여러 앱 설정을 나타냅니다. 이는 한 설정을 다른 설정과 독립적으로 업데이트해서는 안 되는 경우에 유용합니다.
중요합니다
RoamingSettings는 Microsoft Store 앱 업데이트를 통해 유지되지 않을 수 있습니다. 앱 업데이트를 유지해야 하는 설정의 경우 LocalSettings 대신 사용합니다.
앱 설정 저장
이 소개에서는 간단한 앱 설정 저장 및 로드, 복합 글꼴/글꼴 크기 설정 저장 및 로드의 두 가지 간단한 시나리오에 초점을 맞춥니다.
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"];
}
ApplicationDataContainer 인스턴스를 먼저 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 설정에 집중 |