# react-native-mmkv 저장소 라이브러리 사용 방법 소개
- 안녕하세요 Jake입니다. 본 포스팅에서 소개할 라이브러리는 react-native-mmkv라는 저장소 라이브러리입니다. React Native를 사용해보신 분들이라면, 로컬 저장이 필요할 때 자연스럽게 AsyncStorage를 사용해보셨을 것입니다. 그러다보니 대안을 찾아본 적이 없었는데, 이번에 다른 라이브러리와의 호환성 이슈로 이 라이브러를 찾게되었고, 깃헙 스타 4k 이상인 것으로 보아 이미 많은 분들이 사용 중이며 검증이 된 라이브러리라고 할 수 있을 것 같습니다.
# 깃헙 저장소
https://github.com/mrousavy/react-native-mmkv
GitHub - mrousavy/react-native-mmkv: ⚡️ The fastest key/value storage for React Native. ~30x faster than AsyncStorage!
⚡️ The fastest key/value storage for React Native. ~30x faster than AsyncStorage! - GitHub - mrousavy/react-native-mmkv: ⚡️ The fastest key/value storage for React Native. ~30x faster than AsyncSto...
github.com
# 사용 방법
- 설치를 진행합니다.
yarn add react-native-mmkv
cd ios && pod install # ios
- 기본적인 저장 및 불러오기의 사용법은 아주 간단합니다.
import { MMKV } from 'react-native-mmkv'
export const storage = new MMKV()
// Set
storage.set('user.name', 'Marc')
storage.set('user.age', 21)
storage.set('is-mmkv-fast-asf', true)
// Get
const username = storage.getString('user.name') // 'Marc'
const age = storage.getNumber('user.age') // 21
const isMmkvFastAsf = storage.getBoolean('is-mmkv-fast-asf') // true
// Object -> JSON을 이용
const user = {
username: 'Marc',
age: 21
}
// Serialize the object into a JSON string
storage.set('user', JSON.stringify(user))
// Deserialize the JSON string into an object
const jsonUser = storage.getString('user') // { 'username': 'Marc', 'age': 21 }
const userObject = JSON.parse(jsonUser)
- 암호화, 키 확인, 저장소 설정 등의 세부 기능들은 깃헙 페이지에 상세하게 잘 나와 있으므로 참고 하시면 될 것 같습니다. 그리고 저장소와 함께 사용하게 되는 jotai, redux등의 상태 관리 라이브러리들과 연동하는 코드를 문서화 시켜 놓았기 때문에, 아래의 목록에 필요하신 연동이 있을 경우 이 링크를 참고하시면 좋을 것 같습니다. 저의 경우 jotai와 연동을 하고 싶었는데, 해당 문서를 통해서 문제를 해결 할 수 있었습니다.
- Using MMKV with redux-persist
- Using MMKV with recoil
- Using MMKV with mobx-persist-storage
- Using MMKV with mobx-persist
- Using MMKV with zustand persist-middleware
- Using MMKV with jotai
- Using MMKV with react-query
# 마치며
- 로컬 저장소 라이브러리는 필수적으로 사용되는 라이브러리지만, 굳이 다른 선택지를 찾아서 적용 시킬 정도로 중요하게 생각하지 않았던 것 같습니다. 하지만 한 번 이런 대안을 찾게 되면 추후 지속적으로 퍼포먼스가 개선 된 개발을 할 수 있으니, 기억해 두셨다가 사용하시면 좋을 것 같습니다.
'개발 > React Native' 카테고리의 다른 글
[React Native] Emoji 입력 UI 추가하기 (0) | 2023.08.17 |
---|---|
[React Native][라이브러리] Modal을 추가하는 아주 쉬운 방법 - react-native-magic-modal (0) | 2023.08.05 |
[React Native] 앱 아이콘 쉽게 변경하기 - 2023 (0) | 2023.08.02 |
[React Native] 폰트, MP3 등 에셋 쉽게 추가하기 (0) | 2023.07.28 |
[React Native][라이브러리 소개] 지금까지 봤던 가장 깔끔한 Dropdown / Picker / Select (0) | 2023.07.07 |