1. ROOM 이란 무엇인가?
ROOM은 ORM(Object Relational Mapping library)로, 안드로이드 내부 디비를 구현할 수 있는 AAC 중 하나입니다.
ROOM은 SQLite의 추상레이어 위에 제공하고 있으며 SQLite의 모든 기능을 제공하면서 활용하고 있습니다.
가장 일반적인 사용 사례로는 데이터를 캐싱하는 것입니다.
대부분의 애플리케이션에서, 와이파이, 데이터가 통하지 않는 오프라인 상황에서도 데이터들을 볼 수 있습니다.
2. RoomDB 의 3가지 구성요소
앞서, MVVM 구조를 설명했었는데, 그중 Model에 해당합니다.
- 데이터베이스
- @Database로 Annotation된 클래스는 추상 클래스여야 합니다.
- Entity, version등을 적어줍니다.
- @Dao로 처리된 클래스를 반환해주어야 합니다.
- Entity
- 데이터베이스 내의 테이블을 나타냅니다.
- DAO
- 데이터베이스에 액세스하는 데 사용되는 메서드가 포함되어있습니다.
3. Room 아키텍처 다이어그램
4. 실제, 내가 하고 있는 것! (++구조)
ForeignKey로 연결해서 구현하고 있습니다.
확장성을 고려하고 있고, 1대 1 메시지가 아닌 1대 다 메시지를 생각하고 있습니다~!
ROOM 버전 업그레이드가 계속 되고 있어요! 참고하면 좋을 것 같습니다.
developer : https://developer.android.com/jetpack/androidx/releases/room
출처 : https://developer.android.com/training/data-storage/room?hl=ko
LIST
'ANDROID > ARCHITECTURE' 카테고리의 다른 글
[Android] MVVM 패턴이란?! (feat. 예제 소개) (0) | 2020.06.01 |
---|