[Android] Room

강승구·2023년 3월 5일
0

Room DB는 안드로이드가 제공하는 데이터베이스 중 하나이다.
Room은 새로운 DB가 아닌 기존에 안드로이드에서 사용하던 SQLite를 좀 더 쉽고 객체지향적으로 사용할 수 있도록 만들어진 ORM(Object Relation Mapping)이라고 할 수 있다.

Room 이외에도 SQLite, Realm과 같이 안드로이드에서 사용할 수 있는 데이터베이스가 있지만 구글에서는 다음과 같은 이유로 Room 사용을 권장하고 있다.

  • SQL 쿼리에 대해서 올바르게 작성이 되었는지 컴파일 타임에 확인할 수 없습니다. 이로 인해 잘못된 쿼리 사용으로 영향을 받는 데이터가 생긴다면, 오류를 직접 업데이트를 해야합니다. 이 과정이 시간이 오래 걸리고 휴먼 에러를 발생시키기도 합니다.
  • SQL쿼리와 데이터 객체와의 변환이 자유롭지 못합니다. 쿼리를 통해 필터들을 각각 읽고 하나의 데이터 객체의 생성자로서 대입하기 때문에 상용구 코드들이 많이 사용될 수밖에 없습니다.
  • 데이터베이스 마이그레이션을 SQLite에 비해 쉽게 할 수 있습니다.

또한 Room은 SQLite에 비해 쿼리 작성이 간편하고 컴파일 타임에 오류를 확인할 수 있다는 측면에서 많은 장점이 있다.


Room의 구조

  • Database : 앱에 저장되어 있는 로컬 데이터에 대한 액세스 포인트를 제공해주는 역할을 한다.
  • DAO (Data Access Objects) : 앱에서 데이터베이스의 데이터를 추가, 삭제, 업데이트 작업을 할 수 있는 메소드를 제공해주는 역할, 그 외에도 다양한 쿼리 사용 가능
  • Entity : 데이터베이스 내에 존재하는 테이블 가리킨다.
profile
강승구

0개의 댓글