AsyncStorage는 개발자가 키-값(key-value) 저장소에 데이터를 비동기적으로 유지할 수 있도록 도와줍니다. React Native의 기본 제공 API에서, 현재는 커뮤니티 패키지로 전환되었습니다. (가장 많이 사용되는 라이브러리: react-native-async-storage/async-storage: An asynchronous, persistent, key-value storage system for React Native.)
앱에서 전역적으로 적용되는 간단한 비암호화, 비동기, 영구 키-값(key-value) 저장 시스템입니다. 사용자 환경 설정, 앱 상태 또는 캐시된 데이터와 같은 데이터를 저장하고 검색하는 데 사용할 수 있습니다.
내부적으로 비동기 스토리지는 각 플랫폼(iOS, Android, 웹)에 고유한 스토리지 엔진을 사용하여 데이터를 지속합니다. iOS에서는 데이터 유형에 따라 NSUserDefaults 또는 키체인을 사용하여 데이터를 저장합니다. Android에서는 앱 세션 전반에 걸쳐 데이터를 유지하는 키-값(key-value) 저장 시스템인 SharedPreferences를 사용합니다. 웹에서 비동기 스토리지는 localStorage API를 사용합니다.
AsyncStorage는 다음 예시와 같이 데이터 저장소와 상호 작용하는 메서드 세트를 제공합니다:
setItem(key: string, value: string, callback?: ?(error: ?Error) => void)
// 주어진 키 아래에 문자열 값을 저장합니다.
getItem(key: string, callback?: ?(error: ?Error, result: ?string) => void)
// 주어진 키에 대한 문자열 값을 검색합니다.
removeItem(key: string, callback?: ?(error: ?Error) => void)
// 주어진 키에 대한 값을 제거합니다.
mergeItem(key: string, value: string, callback?: ?(error: ?Error) => void)
// 기존 키 값 쌍을 새 값과 병합합니다.
clear(callback?: ?(error: ?Error) => void)
// AsyncStorage에서 모든 데이터를 제거합니다.
이러한 메서드는 비동기이므로 메인 스레드를 차단하지 않고 백그라운드에서 실행됩니다. 메서드가 호출되면 작업이 완료되거나 문제가 있는 경우 오류와 함께 거부하는 Promise를 반환합니다.
비동기 저장소는 암호화되지 않은 간단한 비동기식 영구 키-값(key-value) 저장소 시스템으로, React Native 앱에서 데이터를 저장하고 검색하는 데 사용할 수 있습니다. 각 플랫폼에서 서로 다른 스토리지 엔진을 사용하여 데이터를 지속하고 데이터 저장소와 비동기적으로 상호 작용하는 일련의 메서드를 제공합니다.
Known storage limits | Async Storage
async-storage/Where-data-stored.md
위 링크의 내용처럼 react-native-async-storage/async-storage 라이브러리의 AsyncStorage의 저장 용량 제한은 사용 중인 플랫폼에 따라 다를 수 있습니다. 문서에 따르면 iOS의 경우 1024 문자열 길이 미만인 경우 manifest.json 파일에 저장되며, 이를 초과하는 경우 개별 파일로 저장됩니다. Android의 경우 SQLite를 이용하여 저장되지만 기본 제한이 6MB로 설정되어 있습니다. 웹 플랫폼의 경우 내부적으로 localStorage API를 사용하기 때문에 5MB 입니다.
너무 큰 크기를 저장하고 불러오는 경우 성능 저하가 발생 할 수 있기 때문에 저장 데이터의 크기를 비교적 작게 유지하는 것이 좋습니다.
GitHub - react-native-async-storage/async-storage: An asynchronous, persistent, key-value storage system for React Native.
An asynchronous, persistent, key-value storage system for React Native. - GitHub - react-native-async-storage/async-storage: An asynchronous, persistent, key-value storage system for React Native.
github.com
Known storage limits | Async Storage
Android
react-native-async-storage.github.io
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
http://bit.ly/3Y34pE0