개발/React Native

[React Native][라이브러리] AsyncStorage보다 30배 빠르다는 저장소

ENFP Jake 2023. 8. 4. 13:29
728x90
반응형

# 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와 연동을 하고 싶었는데, 해당 문서를 통해서 문제를 해결 할 수 있었습니다.

 

# 마치며

- 로컬 저장소 라이브러리는 필수적으로 사용되는 라이브러리지만, 굳이 다른 선택지를 찾아서 적용 시킬 정도로 중요하게 생각하지 않았던 것 같습니다. 하지만 한 번 이런 대안을 찾게 되면 추후 지속적으로 퍼포먼스가 개선 된 개발을 할 수 있으니, 기억해 두셨다가 사용하시면 좋을 것 같습니다.

728x90
반응형