RSS

월간 보관물: 6월 2017

React Native에서 데이터 관리하기

이번에 작은 RN 프로젝트를 하면서, 모델에 해당되는 데이터를 어떻게 보관해야 할 지 고민하였습니다. 요구사항은 다음과 같습니다.

  1. 1M가 넘는 JSON파일을 초기에 로드한 다음
  2. 특정 key의 value를 키워드 검색하여 매칭되는 리스트를 보여주는 기능입니다.
  3. 해당 JSON 데이터는 중간에 변하지 않고 앱 구동될 때 메모리에 올려놓고 쓰면 됩니다.

저는 먼저 react-native-local-mongodb 라는 라이브러리를 사용했습니다. NeDB의 react-native 용 port인데요. 꽤 쓸만한 속도가 나오네요.

그런데, 이렇게 data source를 구성하고 쿼리하기 위해서 이 라이브러리를 어디에 생성할 것인가 고민이 되었습니다. 이 데이터는 특정 뷰에서만 쓰는 건 아니고 다양한 뷰에서 접근 가능해야 합니다. 처음에는 Redux로 작업해야할 것으로 생각하고 공부해봤는데 이해하고 적용하기가 쉽지 않더라구요. 그래서 나름 대안으로 찾은게 singleton 객체를 만들어서 앱 실행시간동안 계속 메모리에 띄워놓고 쓰자는 거였어요.

자바스크립트에서 Singleton 만드는 건 아주 간단하게 구현했습니다. 그리고 여러 component에서 이 클래스를 접근해서 데이터를 읽어오는 게 가능했습니다.

 

 

Advertisements
 
댓글 남기기

게시자: 켬 2017년 6월 12일 in Uncategorized