본문 바로가기

ANDROID/DB

(2)
[Room] Room DB 및 Firebase RDB와의 Transaction 최적화하기 기존에 개발하던 서비스의 고질적인 문제는 다량의 데이터와의 상호작용시 시간이 상당히 오래 걸린다는 것이었다. Firebase RDB와의 통신에서의 속도 저하에 이어 Firebase RDB로부터 로드한 데이터를 Room에 집어넣는 과정에서의 2차 속도저하가 있었기 때문이었다. 하지만 여차저차 그동안의 서비스를 유지할 수 있던 점은, 다량의 데이터를 Query할 UI/UX가 없었기 때문이었다. 이제 신규 개발안에 따라 결론적으로 '진작에' 해결됬어야 할 문제와 일기토를 해야 될 상황에 이르렀다. 우선 기존의 로직 구조를 먼저 설명하고자 한다. Before Firebase RDB에서 타겟으로 하는 테이블의 Data를 addValueEventListener를 통해 요청한다. 요청을 통해 들어온 DataSnaps..
[안드로이드] Room 데이터베이스의 테이블 등을 업데이트 할 시, Migration 옵션을 필히 집어넣자. 기존 프로젝트의 로컬 DB 테이블에 컬럼을 삽입해야하는 요구사항이 생겼는데, 이를 진행하면서 필수적이었던 Migration 과정을 리뷰해두고자 한다. Room DB를 안드로이드에 설정할 때에는 @Database 어노테이션에 vesion number를 명시하는데, 신규 변경사항이 생길 경우 version number를 올려주어야 하는 것은 물론, 이전 버전에서 신규 버전으로 올라가면서 달라진 점들에 대해 어떻게 변경사항을 집어넣을 것인지 Migration이라는 클래스를 사용해 작성하여 적용해주어야 한다. 아래는 Google documentation이 예시로 들고있는 Migration Object이다. val MIGRATION_1_2 = object : Migration(1, 2) { override fun..