앱 데이터(Windows 런타임 앱)

Applies to Windows and Windows Phone

Windows 런타임 앱은 다양한 위치에 데이터를 저장할 수 있습니다. 데이터를 저장하는 적절한 위치는 시나리오에 따라 다르며 HTML5 및 JavaScript를 Visual C++ 구성 요소 확장(C++/CX), C# 또는 Microsoft Visual Basic을 사용하여 XAML로 작성했는지 아니면 C++와 함께 Microsoft DirectX를 사용하여 작성했는지에 따라 달라집니다. 여기서는 저장소 매체의 전체 범위를 간략하게 살펴보고 각 매체가 가장 잘 작동하는 시나리오를 강조 표시합니다.

앱 데이터의 유형

앱이 자주 관리하거나 조작하는 데이터는 두 종류가 있습니다.

  • 앱 데이터

    앱 자체에서 만들고 관리하는 데이터로, 특정 앱의 내부 함수나 구성과 관련된 변경 가능한 데이터입니다. 이 데이터에는 런타임 상태, 사용자 기본 설정, 참조 콘텐츠(예: 사전 앱의 사전 정의) 및 기타 설정이 포함됩니다. 앱 데이터는 앱의 존재와 관련이 있으며 해당 앱에서만 의미가 있습니다.

  • 사용자 데이터

    사용자가 앱을 사용할 때 만들고 관리하는 데이터입니다. 이 데이터에는 문서 또는 미디어 파일, 메일 또는 통신 기록, 사용자가 만든 콘텐츠를 보유하는 데이터베이스 레코드 등이 포함됩니다. 사용자가 선택한 기본 설정이나 앱 구성 옵션은 사용자 데이터가 아닌 앱 데이터로 간주됩니다. 사용자 데이터는 둘 이상의 앱에 유용하거나 의미가 있을 수 있습니다. 사용자가 앱 자체와 별개로 문서와 같은 엔터티로 전송하거나 조작하려는 데이터인 경우가 많습니다.

시스템에서 해당 용도로 제공하는 Windows 런타임 앱의 앱 데이터를 해당 앱 및 사용자와 관련된 데이터 저장소에 저장합니다. 그러면 시스템에서 이러한 데이터 저장소를 관리하고 다른 앱 및 다른 사용자로부터 격리되도록 할 수 있습니다. 시스템은 사용자가 앱에 업데이트를 설치할 때 이러한 데이터 저장소를 유지합니다. 또한 사용자가 앱을 제거할 때는 이러한 데이터 저장소의 콘텐츠를 완전히 깨끗하게 제거합니다. 사용자 데이터가 이러한 특성을 우회하도록 만들어진 저장소 위치에는 앱 데이터를 저장하지 마세요.

앱 데이터 저장소의 수명은 앱의 수명과 연결되어 있으므로 앱 데이터용 데이터 저장소에 문서나 미디어 같은 사용자 데이터를 저장하지 마세요. 사용자의 라이브러리 및 Microsoft OneDrive를 사용하여 이러한 종류의 정보를 저장하세요.

다음 표에는 앱에서 사용할 수 있는 다양한 데이터 위치, 제한 사항 및 권장 사용 방법이 요약되어 있습니다. 일부 데이터 위치에 대한 액세스는 JavaScript를 사용하는 Windows 런타임 앱 내에서 문서의 컨텍스트에 따라 제한됩니다. 또한 모든 저장소 크기 제한도 저장소 매체의 전체 크기에 의해 제한됩니다.

사용자 데이터

데이터 위치사용 가능한 앱기능 및 제한 사항권장 사용 방법

Windows 런타임 StorageFilefile pickers에서 액세스한 라이브러리

  • JavaScript로 작성한 Windows 런타임 앱(로컬 컨텍스트)
  • C++, C# 또는 Visual Basic으로 작성한 Windows 스토어 앱
  • C++과 함께 DirectX를 사용하여 작성한 Windows 스토어 앱
  • 사용자의 라이브러리에 파일 로드 및 저장
  • 비동기 API
  • 크기 제한 없음
  • 파일 및 폴더 선택기:
    • 파일 및 폴더 선택기를 사용하여 사용자가 파일 선택 및 만들기를 제어하도록 합니다.
  • 프로그래밍 방식 액세스:
    • 앱에서 쓰거나 쓴 항목을 읽을 수 있는 위치에서 다운로드하는 경우를 제외하면 각 라이브러리에 대한 패키지 매니페스트의 접근 권한 값이 필요합니다.
    • 문서 또는 이동식 저장 위치에 대해 열 수 있는 파일에 대한 패키지 매니페스트에 원하는 파일 형식의 확장이 필요합니다.

앱의 수명을 유지하도록 되어 있거나 사용자가 개별적으로 관리하는 사용자 데이터에 사용합니다.

OneDrive

  • JavaScript로 작성한 Windows 런타임 앱
  • C++, C# 또는 Visual Basic으로 작성한 Windows 스토어 앱
  • DirectX로 작성된 Windows 스토어 앱
  • 클라우드에 있는 사용자 데이터의 저장소를 지원하며 여러 장치 플랫폼에서 사용할 수 있음
  • REST 및 JSON(JavaScript Object Notation) 기반 API
  • 잘 정의된 지원되는 파일 형식 목록으로 제한됨
  • 다른 사용자가 공유한 콘텐츠 액세스 허용
  • 크기 할당량은 사용자 계정을 기반으로 함

사용자가 여러 장치, 플랫폼 또는 앱에서 액세스하려는 사용자 데이터에 사용합니다.

HTML5 파일 API

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • C++, C# 또는 Visual Basic으로 작성한 Windows 스토어 앱
  • DirectX로 작성된 Windows 스토어 앱
  • 웹 표준

파일의 업로드 및 다운로드와 관련된 시나리오에만 기본적으로 사용됩니다. 앱이 활성화되지 않은 경우에도 계속되는 전송에는 로컬 컨텍스트의 Windows 런타임 BackgroundTransfer를 사용합니다.

 

이 표에서 설명하는 저장소 옵션뿐만 아니라 타사 데이터베이스 및 클라우드 저장소 솔루션을 사용할 수도 있습니다.

앱 데이터

데이터 위치사용 가능한 앱기능 및 제한 사항권장 사용 방법

Windows 런타임의 응용 프로그램 데이터 API

  • JavaScript로 작성한 Windows 런타임 앱(로컬 컨텍스트)
  • C++, C# 또는 Visual Basic으로 작성된 Windows 스토어 앱
  • DirectX로 작성된 Windows 스토어 앱
  • 로컬 데이터 저장소 및 로밍 데이터 저장소 제공
  • 시스템에 의한 디스크 정리가 적용되는 임시 데이터 저장소도 제공
  • 고도로 구조화된 콘텐츠(설정) 지원
  • 복합 유형(원자 단위로 관리되는 설정 집합) 지원
  • 구조화되지 않은 데이터(파일) 지원
  • 설정에서 동기 API 사용
  • 파일에서 비동기 API 사용
  • 설정은 설정당 8K 또는 복합 설정당 64K로 제한됨. 설정 수에는 제한이 없으며 1MB 이하의 데이터를 저장하는 것이 좋습니다.
  • 파일 크기에 제한 없음
  • 로밍 파일 및 설정의 전체 크기는 ApplicationData.RoamingStorageQuota에 정의된 대로 패키지별로 제한되며, 그렇지 않으면 로밍이 수행되지 않음
  • 시스템에서 로밍이 수행되는 시기를 관리하여 대역폭 및 배터리 수명을 유지합니다. HighPriority 설정은 다른 설정보다 더 높은 빈도로 로밍합니다.
  • 임시 데이터의 크기 제한 없음

설정 및 구조화되지 않은 데이터 파일에 사용합니다.

IndexedDB

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • ISAM 저장소 기술
  • 인덱싱되거나 순차적인 커서 탐색
  • 저장소는 앱당 250MB로 제한됨
  • 30GB보다 작은 드라이브의 경우 저장소가 설치된 모든 앱 중에서 375MB로 제한됨
  • 30GB보다 큰 드라이브의 경우 저장소가 설치된 모든 앱 중에서 드라이브 크기의 4% 또는 20GB 중 더 작은 값으로 제한됨
  • 앱의 시작 페이지에서 ms-enable-external-database-usage meta 태그를 설정하지 않은 경우 앱의 URL이 앱 패키지 매니페스트의 ApplicationContentUriRules 부분에 있으면 웹 기반 웹 컨텍스트 페이지는 IndexedDB만 사용할 수 있음

JavaScript에서만 사용되도록 구조화되고 인덱싱된 데이터에 사용합니다. 기본적으로 캐싱 시나리오에 사용하기 위한 것입니다.

ESE(Extensible Storage Engine)

  • 모든 앱, 그러나 비 C/C++ 호출자가 사용할 수 있으려면 먼저 개발자가 Windows 런타임 개체에서 호출을 래핑해야 함
  • ISAM 저장소 기술
  • 인덱싱되거나 순차적인 커서 탐색
  • 트랜잭션 데이터
  • 시스템 크래시가 발생한 경우에도 안정적인 데이터 일관성
  • 신속한 검색을 위해 캐시된 데이터
  • 큰 크기로 확장 가능하며 일반적으로 50GB 이상으로 확장 가능
  • Windows 런타임 ApplicationData API와 같은 다른 방법을 통해 디스크에 배치된 플랫 이진 파일에 저장됨
  • C/C++ API만 제공됨

C/C++에서 사용하거나 개발자가 제작한 Windows 런타임 개체에서 래핑되는 구조화되고 인덱싱된 데이터 저장소에 사용합니다.

HTML5 웹 저장소

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • C++, C# 또는 Visual Basic으로 작성된 Windows 스토어 앱(WebView 컨트롤 사용)
  • 문자열 키-값 쌍 사용
  • 웹 표준
  • 사용자 단위 및 앱 단위 기반으로 브라우저 캐시에서 격리됨
  • 동기 API
  • 10MB의 크기 제한이 있음

웹 컨텍스트에서 경량 저장소가 필요하고 Windows 런타임을 사용할 수 없는 경우 localStorage를 사용합니다. sessionStorage는 메모리에만 존재하고 앱 종료 후에는 유지되지 않으므로 사용하지 마세요. 다른 앱으로 전환하는 사용자가 중단시키지 않을 것 같은 일시 저장소에만 사용합니다.

WinJS.Application.sessionState

  • JavaScript로 작성한 Windows 런타임 앱(로컬 컨텍스트)
  • 앱 정의 속성이 있는 JavaScript 개체
  • 로컬 ApplicationData로 일시 중단될 경우 JavaScript용 Windows 라이브러리에서 자동으로 저장함
  • 크기 제한 없음

앱이 일시 중단되고 종료된 경우 동일한 상태에서 다시 시작하기 위해 일시적인 앱 상태를 저장하는 위치로만 기본적으로 사용됩니다.

WinJS.Application.local 상태 저장소

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • ApplicationData용 편의 래퍼
  • 웹 컨텍스트에 있는 경우 메모리 내 구현으로 폴백됨

웹 컨텍스트와 로컬 컨텍스트에서 모두 실행되어야 하는 JavaScript에 사용합니다.

WinJS.Application.roaming 상태 저장소

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • ApplicationData용 편의 래퍼
  • 웹 컨텍스트에 있는 경우 메모리 내 구현으로 폴백됨

웹 컨텍스트와 로컬 컨텍스트에서 모두 실행되어야 하는 JavaScript에 사용합니다.

 

이 표에서 설명하는 저장소 옵션뿐만 아니라 타사 데이터베이스 및 클라우드 저장소 솔루션을 사용할 수도 있습니다.

서버

앱이 웹 사이트 및 웹 서비스를 조작하는 경우 몇 가지 다른 데이터 저장소 위치를 사용할 수 있습니다.

데이터 위치사용 가능한 앱기능 및 제한 사항권장 사용 방법

HTML5 응용 프로그램 캐시

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • JavaScript로 작성한 Windows 런타임 앱(웹 기반 응용 프로그램 캐시 매니페스트 사용)
  • 웹 표준
  • 오프라인으로 쉽게 사용할 수 있도록 웹 기반 앱 태그, 스크립트, 스타일시트 및 리소스의 미리 가져오기 허용
  • 로컬 컨텍스트 페이지에서는 웹 기반 응용 프로그램 캐시만 사용하여 코드가 포함되지 않은 리소스를 가져올 수 있습니다. 예를 들어 오프라인으로 사용할 이미지, 오디오, 비디오 또는 xml을 가져오는 데 사용할 수 있습니다.
  • 스크립트를 통해 작성할 수 없음
  • 웹 컨텍스트의 페이지에서 응용 프로그램 캐시에 액세스하려면 앱 패키지 매니페스트의 ApplicationContentUriRules 부분에 페이지의 URL을 추가해야 합니다. 로컬 컨텍스트의 페이지에는 이 요구 사항이 없습니다.

콘텐츠가 읽기 전용이고 웹 서버에서 제공되었으며 장치가 오프라인인 동안 액세스해야 하는 경우에 사용합니다. HTML5 응용 프로그램 캐시를 사용하여 개별화된 콘텐츠를 제공할 수 있지만 기본적으로 오프라인 데이터 액세스를 위한 캐싱 전략으로 사용됩니다.

쿠키

  • JavaScript로 작성한 Windows 런타임 앱(웹 컨텍스트 및 로컬 컨텍스트)
  • C++, C# 또는 Visual Basic으로 작성된 Windows 스토어 앱(WebView 사용)
  • IXMLHTTPRequest2를 사용하는 앱
  • 웹 표준
  • 사용자 단위 및 앱 단위 기반으로 브라우저 캐시에서 격리됨
  • 쿠키당 4K 크기 제한, 쿠키 수는 제한 없음
  • 웹에 대한 로컬 컨텍스트의 페이지에서 XHR을 통해 보내고 받은 쿠키에는 일반적인 웹 도메인 쿠키 공유 규칙이 적용됨

웹 서버에 대한 각 요청과 공유해야 하는 데이터에 사용합니다.

클라우드 서비스, OpenData 서비스 및 클라우드 데이터베이스

  • 모든 앱
  • 전체 클라우드 데이터베이스 솔루션 허용
  • 서버 쪽에서 트리거한 처리 또는 정기적인 처리 사용
  • 기능은 채택한 클라우드 서비스에 따라 달라짐

볼륨이 크거나, 타사 원본에서 생성되거나, 앱뿐만 아니라 웹 사이트에도 표시되는 콘텐츠 작업을 할 때 기본적으로 사용됩니다.

 

 

 

표시:
© 2014 Microsoft