SQLite

Android

Android Room 오적용기(misapplied)

먼저 이번 글에서는 코드가 등장하지 않는다. 이번 오적용기가 나에겐 나름 Room을 제대로 사용해본 경험이라 작성해둔 코드가 아쉽기도 하다. 하지만, 언젠가는 갈아엎어야 될 코드가 되어버렸다. 왜 그렇게 됐을까? 현재 상황 파악의 중요성내가 연동해야할 백엔드는 어떤 상황인가?를 너무 간과했다. 대부분 앱 서비스는 회사에서 서버를 두고 앱이 해당 서버와 통신하게 된다. 그리고 해당 백엔드에서 가져온 데이터로 로컬 DB를 구성해 앱에서 사용한다. 하지만, 나의 경우는 각각 지역의 로컬 서버가 존재하고해당 서버에서 DB 파일을 다운로드받아 Room으로 사용하는 것이었다. 더욱 심화되는 문제와 해결 불가능한 상황까지각 로컬 서버는 모두 같은 Table 버전을 갖고 있을 것이라 생각했었다. 하지만 로컬 서버들은 ..

Android

Codelab으로 Room 알아보기 - 3. Create the DAO

이번에는 Data Access Object인 DAO를 만들어 볼 것이다. DAO는 안드로이드에서 DB의 insert, delete, update에 대한 편의성을 제공한다. Room DB를 사용할 때 코드에서 함수를 정의하고 호출하여 DB를 쿼리한다. 이러한 함수들은 SQL 쿼리들을 매핑한다. 주석(annotation)을 사용하여 DAO에 이러한 매핑을 정의하면 Room이 필요한 코드를 생성한다. DAO를 DB에 접근하기 위한 인터페이스로 생각하면 된다. 추가로, 쿼리를 생성할 때 컴파일러가 문법 에러를 검사해준다. (개인적으로 잘못된 컬럼을 조회하는 일은 적어질 거라 생각한다) sleep-tracker 데이터베이스에 아래 나열한 것들을 해야한다. night를 삽입한다. 존재하는 night에 종료 시간과 ..

BonusTrack02.dev
'SQLite' 태그의 글 목록