[Android][Jetpack] Room - YunByungKwan/Fundamental GitHub Wiki

Room에 대해 설명

Room은 SQLite를 좀 더 편하게 사용할 수 있는 ORM 라이브러리입니다. 컴파일 타임에 유효성 검사를 할 수 있고, 보일러플레이트 코드를 줄일 수 있는 장점이 있습니다.

ORM(Object Relational Mapping)에 대해 설명

ORM(Object Relational Mapping)은 객체와 관계형 데이터베이스의 데이터를 매핑시켜 주는 것을 말합니다.

Room과 LiveData 사용시 LiveData에 데이터가 어떤 식으로 담기는지 설명해달라.

먼저 Room을 사용하기 위해서 사용할 쿼리를 Dao 어노테이션을 붙인 인터페이스 안에서 함수로 선언합니다. 선언 후 컴파일하면 Dao impl 클래스가 생성되고 Dao에서 붙인 어노테이션에 따라서 Dao impl클래스에서 SQLite함수로 데이터를 처리합니다. 만약에 조회 함수의 리턴 타입을 LiveData로 할 경우, createLiveData함수로 LiveData를 생성하고 거기에 SQLite로 조회한 데이터를 담아서 리턴하게 됩니다.