앱 로컬 데이터를 인덱싱하는 방법
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
앱의 로컬 저장 데이터를 WSS(Windows Search Service)를 통해 인덱싱할 수 있습니다.
앱이 문서, 메일 또는 미디어(사진, 음악, 비디오 등)와 같은 파일을 관리하는 경우 사용자가 데이터를 빠르고 효율적으로 관리하고 검색할 수 있도록 파일의 내용이나 속성을 구조적으로 인덱싱하기 위한 중요한 요구 사항이 있습니다. 앱 내에서 인덱서를 빌드할 필요는 없습니다. 앱 개발자에게 편리하고 안전한 옵션이 있습니다. WSS를 사용하도록 설정하기만 하면 앱 데이터를 인덱싱할 수 있습니다.
WSS를 사용하여 앱 데이터를 인덱싱하는 경우의 주요 장점은 다음과 같습니다.
- WSS는 가장 일반적으로 사용되는 문서 유형의 전체 내용 텍스트 인덱싱을 지원합니다. 또한 WSS는 파일 속성 인덱싱도 지원합니다.
- 기본 제공 검색 계약 및 파일 API가 있으면 인덱싱된 데이터를 쉽게 가져오고 다시 사용할 수 있습니다.
- Windows Search에서는 파일 시스템 검색 설정을 따르므로 Windows 인덱서에 저장된 인덱싱된 앱 데이터를 안전하게 유지합니다.
Windows Search는 JavaScript, C#, C++ 및 VB.Net을 사용하여 작성된 앱을 비롯해 모든 Windows 스토어 앱에서 작동합니다.
앱에 Windows Search 사용
앱 데이터를 인덱싱하도록 Windows Search에 요청하는 작업은 간단합니다. 앱 데이터 폴더 아래에 이름이 indexed인 폴더를 만들고 이 폴더 안에 인덱싱해야 하는 콘텐츠를 저장하면 됩니다. Windows Search에서는 하드 드라이브의 다른 인덱싱 위치와 마찬가지로 이 indexed 폴더를 처리합니다. 이 폴더 및 모든 하위 폴더에 포함된 파일 콘텐츠 또는 파일 메타 데이터(속성)가 인덱싱됩니다. 다음은 중요한 고려 사항 목록입니다.
- indexed 폴더는 다음 지침을 따라야 합니다.
- indexed 폴더는 localFolder 루트 아래에 만들어야 합니다. Windows Search는 이 폴더에 포함된 콘텐츠를 세부적으로 인덱싱합니다. 이 폴더 또는 해당 하위 폴더(모든 수준의 하위 폴더 포함)에 로컬로 저장되어 있는 모든 파일이 인덱싱됩니다. indexed 폴더는 앱당 하나씩만 허용됩니다.
- 폴더 이름 indexed는 대/소문자를 구분하지 않습니다.
- 앱 데이터 폴더를 Windows 런타임 API에서는 localFolder라고 하지만 실제 하드 드라이브에서의 이름은 LocalState입니다. 테스트 목적으로 이 폴더에 액세스하려면 다음 폴더 경로를 사용합니다. %user%\ AppData\Local\Packages\%packageName%\LocalState
- indexed 폴더 아래의 폴더 구조는 깊을 수 있지만 Windows API에서는 MAX_PATH(260자)보다 긴 파일/폴더의 경로 길이를 허용하지 않습니다. 따라서 indexed 폴더 아래의 파일 또는 폴더가 이 제한을 초과하지 않는지 확인해야 합니다. MAX_PATH에 대한 자세한 내용은 최대 경로 길이 제한을 참조하세요.
- Windows Search는 로컬로 저장된 데이터만 인덱싱합니다. 즉, indexed 폴더 또는 해당 하위 폴더에 로컬로 저장된 파일만 인덱싱됩니다.
- indexed 폴더는 설치하는 동안 만들 수 없습니다. 앱이 실행 중일 때만 만들 수 있습니다. 콘텐츠 크기에 따라 Windows Search가 완료하는 데 시간이 걸리기 때문에 앱을 처음 실행할 때 indexed 폴더를 만드는 것이 좋습니다. indexed 폴더를 만들면 Windows Search가 앱 콘텐츠를 자동으로 인덱싱합니다. 파일이나 하위 폴더가 수정(추가, 삭제 또는 업데이트)되는 경우 Windows Search도 자동으로 인덱싱 프로세스의 일정을 조정하고 인덱서에 변경 사항을 계속 업데이트합니다. Windows Search는 일정에 따라 인덱싱 프로세스를 최적화하기 위해 CPU 사용량을 모니터링합니다.
보안
WSS Windows 파일 시스템의 보안 설정을 따르므로 인덱싱된 앱 데이터가 인덱서에 안전하게 저장됩니다. 특히:
- 동일한 PC에 여러 사용자 계정이 있는 경우: Windows 스토어 앱이 사용자 계정별로 설치됩니다. 동일한 PC의 여러 사용자가 동일한 앱을 사용하고 있는 경우에는 각 앱 인스턴스가 고유한 인덱싱된 폴더를 다른 실제 경로 아래에 만듭니다. 따라서 사용자가 해당 실제 경로에 대한 액세스 권한을 부여받은 경우 외에는 다른 계정으로 인덱싱된 데이터에 액세스할 수 없습니다.
- 여러 앱의 앱 데이터가 인덱싱된 경우: Windows 파일 시스템에서는 앱이 다른 앱의 데이터에 직접 액세스할 수 없습니다. 따라서 앱은 다른 앱의 인덱싱된 데이터에 액세스할 수 없습니다.
인덱싱된 내용 가져오기
앱 데이터가 인덱싱되면 앱은 파일 API를 통해 데이터를 가져올 수 있습니다.