Windows 런타임을 사용하여 앱 데이터 액세스(Windows 런타임 앱)

Applies to Windows and Windows Phone

앱 데이터는 특정 앱에 대한 변경 가능한 데이터입니다. 여기에는 런타임 상태, 사용자 기본 설정 및 기타 설정이 포함됩니다. 앱 데이터는 앱이 실행 중일 때 만들기, 읽기, 업데이트, 삭제가 수행됩니다.

데스크톱 앱은 레지스트리를 사용하여 설정을 저장하고 Program Files 폴더를 사용하여 파일을 저장하는 것이 좋습니다. Windows 런타임 앱은 각 앱과 사용자별로 고유한 설정 및 파일에 대한 앱 데이터 저장소를 사용하는 것이 좋습니다. 시스템에서는 다른 앱과 다른 사용자로부터 격리되도록 앱의 데이터 저장소를 관리합니다. 또한 시스템은 사용자가 앱에 업데이트를 설치할 때는 이러한 데이터 저장소의 콘텐츠를 보호하고, 앱을 제거할 때는 데이터 저장소의 콘텐츠가 완전하게 깨끗하게 제거합니다.

응용 프로그램 데이터 샘플에서는 Windows 런타임 앱 데이터 API를 사용하여 각 사용자 및 Windows 런타임 앱과 관련된 데이터를 저장하고 검색하는 방법을 보여 줍니다.

앱 데이터에 대한 중요 정보:  앱 데이터의 수명은 앱의 수명으로 제한됩니다. 앱이 제거되면 결과적으로 앱 데이터가 모두 손실됩니다. 사용자에게 중요하거나 대체할 수 없는 사용자 데이터나 항목을 저장하는 데 앱 데이터를 사용하지 마세요. 이러한 종류의 정보는 사용자 라이브러리 및 OneDrive를 사용하여 저장하는 것이 좋습니다. 앱 데이터는 앱 관련 사용자 기본 설정, 설정 및 즐겨찾기를 저장하는 데 적합합니다.

앱 데이터 저장소

앱이 설치되면 시스템은 설정 및 파일 같은 앱 데이터에 대한 사용자별 데이터 저장소를 앱에 할당합니다. 시스템이 실제 저장소를 관리하므로 개발자는 이 데이터가 어디에 또는 어떻게 저장되는지는 알 필요가 없습니다. 앱 데이터로 쉽게 작업할 수 있게 해주는 앱 데이터 API를 사용하기만 하면 됩니다.

데이터 저장소의 종류는 다음과 같습니다.

로컬

현재 장치에 있고 클라우드에 백업되는 데이터입니다.

로밍

사용자가 앱을 설치한 모든 장치에 존재하는 데이터

임시

언제든지 시스템에서 제거할 수 있는 데이터

localcache

현재 장치에만 존재하는 영구적 데이터

앱을 제거하면 이러한 데이터 저장소가 삭제됩니다.

선택적으로, 앱에 대한 앱 데이터에 버전을 지정할 수 있습니다. 이렇게 하면 앱의 이전 버전과 호환성 문제를 일으키지 않고 앱 데이터의 형식을 변경하는 차기 앱 버전을 만들 수 있습니다. 앱은 데이터 저장소에서 앱 데이터의 버전을 확인하며, 그 버전이 앱 버전보다 낮을 경우 앱은 앱 데이터를 새 형식으로 업데이트하고 버전을 업데이트해야 합니다. 자세한 내용은 Application.Version 속성 및 ApplicationData.SetVersionAsync 메서드를 참조하세요.

앱 설정

앱 데이터 저장소의 설정은 레지스트리에 저장됩니다. 앱 데이터 API를 사용하면 레지스트리 액세스가 투명합니다. 각 앱의 앱 데이터 저장소에는 설정에 대한 루트 컨테이너가 있습니다. 앱은 루트 컨테이너에 설정 및 새 컨테이너를 추가할 수 있습니다. 설정을 구성하려면 새 컨테이너를 만듭니다. 컨테이너는 트리 범위의 제한 없이 32개 수준 깊이까지 중첩될 수 있습니다.

상호 의존적인 설정의 원자성 업데이트를 쉽게 처리하려면 복합 설정을 사용합니다. 시스템은 동시 액세스 및 로밍 중에 복합 설정의 무결성을 보장합니다. 복합 설정은 소량의 데이터에 최적화되어 있으며 대규모 데이터 집합에 사용할 경우에는 성능이 저하됩니다.

앱 설정은 로컬 또는 로밍 중 하나가 될 수 있습니다. 앱이 로컬 데이터 저장소에 추가하는 설정은 로컬 장치에만 존재합니다. 시스템은 사용자가 앱을 설치한 모든 장치의 데이터 저장소에 앱이 추가하는 설정을 자동으로 동기화합니다.

다음과 같은 대부분의 Windows 런타임 데이터 형식이 앱 설정에서 지원됩니다.

이진 형식은 지원되지 않습니다. 이진 데이터를 저장해야 할 경우 앱 파일을 사용하세요.

다른 개체 유형을 앱 데이터에 직접 할당할 수 없습니다. 지원되는 데이터 형식 중 하나로 데이터를 직렬화할 수 있습니다. 예를 들어 데이터를 JSON으로 직렬화하고 문자열로 저장할 수 있지만 해당 직렬화를 처리해야 합니다.

시스템은 기록된 데이터의 크기가 데이터 형식의 크기와 일치하는지 확인합니다. 시스템에서 데이터의 유효성이 확인되지 않으면 데이터를 쓴 시점과 이를 다시 읽은 시점 사이에 데이터가 변경되었는지 직접 확인해야 합니다.

앱 파일

앱 데이터 저장소의 파일은 파일 시스템에 저장됩니다. 앱은 Windows 7에서 사용자 프로필의 AppData 부분에서 파일을 사용하듯이 데이터 저장소의 파일을 사용할 수 있습니다. 각 앱의 앱 데이터 저장소 내에는 시스템에서 정의한 루트 디렉터리가 있습니다. 총 3개로, 각각 로컬 파일, 로밍 파일, 임시 파일을 위한 것입니다. 앱은 루트 디렉터리에 새 파일 및 새 디렉터리를 추가할 수 있습니다. 손쉽게 파일을 구성하려면 새 컨테이너를 만듭니다. 앱 데이터 저장소의 디렉터리는 트리 범위의 제한 없이 32개 수준 깊이까지 중첩될 수 있습니다.

앱 파일은 로컬 또는 로밍 중 하나가 될 수 있습니다. 앱이 로컬 데이터 저장소에 추가하는 파일은 로컬 장치에만 존재합니다. 시스템은 사용자가 앱을 설치한 모든 장치의 데이터 저장소에 앱이 추가하는 파일을 자동으로 동기화합니다.

로컬 앱 데이터

로컬 앱 데이터는 앱 세션 간에 유지해야 하고 로밍 앱 데이터에 적절한 유형 또는 크기가 아닌 모든 정보에 사용해야 합니다. 다른 장치에서 적용할 수 없는 데이터도 여기에 저장해야 합니다. 저장된 로컬 데이터에 대한 일반 크기 제한은 없습니다. 위치는 localFolder 속성을 통해 사용할 수 있습니다. 로밍하기 적절하지 않은 데이터 및 대규모 데이터 집합에 대해 로컬 앱 데이터 저장소를 사용합니다.

예제 코드는 다음을 참조하세요.

로밍 앱 데이터

앱에서 로밍 데이터를 사용하는 경우 사용자는 손쉽게 앱의 앱 데이터를 여러 장치 간에 동기화 상태로 유지할 수 있습니다. 사용자가 여러 장치에 앱을 설치하는 경우, OS는 앱 데이터를 동기화 상태로 유지하여 사용자가 두 번째 장치에 앱을 설치할 때 수행해야 할 설치 작업이 줄어듭니다. 또한 로밍을 사용하면 목록 작성 같은 작업을 중단했다가 다른 장치에서 바로 이어서 진행할 수 있습니다. OS는 로밍 데이터가 업데이트되면 이를 클라우드로 복제하고, 앱이 설치된 다른 장치의 데이터와 동기화합니다.

OS에서는 각 앱이 로밍할 수 있는 앱 데이터의 크기를 제한합니다. ApplicationData.RoamingStorageQuota | roamingStorageQuota을 참조하세요. 앱이 이 제한에 도달하면 앱의 로밍된 총 앱 데이터가 다시 제한보다 낮아질 때까지 앱의 앱 데이터가 클라우드로 복제되지 않습니다. 따라서 사용자 기본 설정, 링크 및 소규모 데이터 파일에만 로밍 데이터를 사용하는 것이 가장 좋습니다.

일반적으로 앱은 데이터가 변경될 것을 예상하지 않습니다. 그러나 로밍 앱 데이터는 언제든 변경할 수 있습니다. 앱은 로밍 앱 데이터가 변경될 때마다 발생하는 DataChanged | datachanged 이벤트를 처리하도록 등록해야 합니다.

사용자가 앱의 최신 버전을 설치하여 장치에서 앱 데이터가 새 버전으로 업데이트되면 앱 데이터가 클라우드로 복사됩니다. 사용자가 앱을 설치한 다른 장치에서도 앱이 업데이트될 때까지 시스템은 해당 장치에 앱 데이터를 업데이트하지 않습니다.

앱의 로밍 데이터는 사용자가 일부 장치에서 정해진 기간 내에 액세스하는 경우에는 클라우드에서 사용할 수 있습니다. 사용자가 이 기간보다 오래 앱을 실행하지 않으면 로밍 데이터는 클라우드에서 제거됩니다. 사용자가 앱을 제거하면 로밍 데이터는 클라우드에서 자동으로 제거되지 않고 보존됩니다. 사용자가 정해진 기간 내에 앱을 다시 설치하면 로밍 데이터는 클라우드에서 동기화됩니다. 현재 정책은 이 기간을 30일로 지정하고 있습니다. 위치는 roamingFolder 속성을 통해 사용할 수 있습니다.

운영 체제에서는 기회가 될 때 앱 데이터를 로밍하므로 즉각적인 동기화가 보장되지 않습니다. 사용자가 오프라인이거나 지연이 자주 발생하는 네트워크인 경우 로밍이 상당히 지연될 수 있습니다. 시간이 중요한 설정의 경우 더 자주 업데이트를 제공하는 우선 순위가 높은 특수 설정 단위를 사용할 수 있습니다. 이름이 “HighPriority”여야 하는 하나의 특정 설정으로 제한됩니다. 복합일 수 있지만 총 크기는 8KB로 제한됩니다. 이 제한을 초과하는 경우 이 제한이 적용되지 않고 설정 단위 또는 설정 복합이 일반 설정 단위 또는 복합으로 처리됩니다.

예제 코드는 다음을 참조하세요.

지침은 로밍 앱 데이터 지침을 참조하세요.

임시 앱 데이터

임시 앱 데이터 저장소는 캐시처럼 작동합니다. 파일이 로밍되지 않으면 언제든 제거할 수 있습니다. 시스템 유지 관리 작업에서 이 위치에 저장된 데이터를 언제든지 자동으로 삭제할 수 있습니다. 사용자는 디스크 정리를 수행하여 임시 데이터 저장소에서 파일을 지울 수도 있습니다. 임시 앱 데이터는 앱 세션 중 임시 정보를 저장하는 데 사용할 수 있습니다. 시스템에서 필요한 경우 사용된 공간을 재사용할 수 있으므로 앱 세션이 끝난 이후까지 이 데이터가 유지된다고 보장할 수는 없습니다. 위치는 temporaryFolder 속성을 통해 사용할 수 있습니다.

예제 코드는 다음을 참조하세요.

앱 데이터 프로그래밍 인터페이스

관련 항목

지침
로밍 앱 데이터 지침
앱 설정에 대한 지침
샘플
응용 프로그램 설정 샘플
응용 프로그램 데이터 샘플

 

 

표시:
© 2014 Microsoft