일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 러브자그레브
- 스쿠버다이빙
- Cocoapods #PrivateRepo #SpecRepo
- 대한항공
- Device 등록
- 시밀란
- 세비야
- swiftUI
- 연금저축펀드
- 강릉
- xcode
- 스페인광장
- 그라나다
- 공기먹는다이버스
- 괌 자유여행
- Concurrency #Swift #Combine
- cocoapod
- 스플리트
- 푸켓여행
- 러브스플리트
- Gradle
- 리브어보드
- Swift #Concurrency #쓰레드
- 라이브러리
- 스페인여행
- SwiftUI #Skeleton #데이터갱신
- 아시아나
- 지팍스페인
- 크로아티아
- 도심공항
- Today
- Total
JEP's Diary
Realm 모바일 데이터 베이스(Android) 본문
Realm 모바일 데이터 베이스(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 오브젝트를 액티비티 간이나 백그라운드 서비스, 브래드 캐스트 리시버 등으로 전달할 때 이런 부분을 이해하는 것이 매우 중요.
'Development > Android' 카테고리의 다른 글
Android Unit Tests(단위 테스트) - Local Unit Tests (1) | 2016.03.15 |
---|---|
Android 6.0 마시멜로 대응(런타임 권한 모델) (0) | 2016.03.14 |
안드로이드 샘플 불러오기 (0) | 2015.11.25 |
Recycler + Switch Button (0) | 2015.11.25 |
RecyclerView (1) | 2015.11.19 |