2016. 4. 26. 16:46ㆍAndroid
Realm은 모바일 데이터 베이스로 안드로이드의 SQLite, iOS의 Core Data를 대체해서 쓸 수 있다.
간결하고 짧은 코드로 편하게 개발 할 수 있고, 속도가 더 빨라 성능 향상된 앱을 만들 수 있다.
1. 장점
- 쉬운 사용
Realm은 SQLite을 기반으로 한 ORM이 아니다. 대신에 Realm은 쉬운 사용성과 속도를 위해 개발한 persistence 엔진을 사용
- 크로스 플랫폼
Android, iOS 지원(Swift, Objective-C)
- 빠른속도
zero-copy 디자인 덕분에 Realm은 SQLite를 기반으로 ORM을 구현했을 때보다 월등히 빠르다
2. 사용법과 예제는 공식 홈페이지에 잘 정리되어 있으므로 패스.
3. 기억할 내용 및 키워드
- 자동갱신객체
Realm 객체와 RealmResults
는 기반 데이터에 의해 라이브로 자동 갱신되는 뷰. 이 것은 결과를 다시 가져올 필요가 없다는 의미.
결과는 자동 갱신되기 때문에 어떤 고정적으로 유지되는 인덱스나 카운트에 의존하지 않는 것이 중요
- MVCC 아키텍쳐
Realm은 MVCC 아키텍쳐를 사용하기 때문에 쓰기 트랜잭션을 열었을 때도 읽기는 막히지 않는다.
- 트랜잭션 블록
수동으로 realm.beginTransaction()
, realm.commitTransaction()
, realm.cancelTransaction()
을 관리하는 대신에 자동으로 begin/commit을 관리하고 에러가 발생했을 때 cancel 하도록 지원하는 realm.executeTransaction 메소드를 사용
- 비동기 트랜잭션
비동기 트랜잭션을 사용하면 Realm은 트랜잭션을 백그라운드 스레드에서 수행하고 트랜잭션이 끝나면 보고. Realm.Transaction.Callback
파라미터를 추가
- Realm
Realm은 데이터베이스를 의미. Realm 인스턴스가 스레드 싱글턴이라는 사실도 중요
- Realm 파일 찾기
http://stackoverflow.com/questions/28478987/how-to-view-my-realm-file-in-the-realm-browser
- RealmObject가 쓰레드 제약이라는 점은 염두해야 한다. Realm 오브젝트를 액티비티 간이나 백그라운드 서비스, 브래드 캐스트 리시버 등으로 전달할 때 이런 부분을 이해하는 것이 매우 중요.
'Android' 카테고리의 다른 글
Android Google Chart 사용하기 (0) | 2016.11.25 |
---|---|
안드로이드에서 백버튼 두 번 눌러 종료하기 (0) | 2016.10.21 |
Android 6.0 마시멜로 대응(런타임 권한 모델) (0) | 2016.04.26 |
QR코드 스캔 (0) | 2016.04.25 |
QR코드 생성 (0) | 2016.04.25 |