[kotlin] Room 라이브러리의 데이터베이스 로깅 및 디버깅

안녕하세요! 이번에는 안드로이드 개발에서 Room 라이브러리를 사용할 때 데이터베이스 로깅과 디버깅하는 방법에 대해 살펴보겠습니다.

1. 데이터베이스 로깅 설정

Room 라이브러리를 사용하면 SQLite 쿼리의 자동 로깅이 가능합니다. 이를 통해 개발 단계에서 데이터베이스 작업을 디버깅하거나 실시간으로 모니터링할 수 있습니다.

val db = Room.databaseBuilder(
    context.applicationContext,
    AppDatabase::class.java, "database-name"
).addMigrations(MIGRATION_1_2)
.enableMultiInstanceInvalidation()
.setJournalMode(RoomDatabase.JournalMode.AUTOMATIC)
.addCallback(object : RoomDatabase.Callback() {
    override fun onOpen(db: SupportSQLiteDatabase) {
        super.onOpen(db)
        // 디버깅을 위한 코드 추가
    }
})
.fallbackToDestructiveMigration()
.build()

위와 같이 Room.databaseBuilder를 통해 데이터베이스를 설정할 때 setJournalMode(RoomDatabase.JournalMode.AUTOMATIC)을 추가하여 자동 로깅을 활성화할 수 있습니다.

2. 쿼리 모니터링

데이터베이스 로깅이 설정되면 다음과 같이 쿼리를 실시간으로 확인할 수 있습니다.

adb shell setprop log.tag.SQLiteLog V

위 명령어를 입력하면 안드로이드 디바이스에서 SQLite 쿼리 로그를 확인할 수 있습니다.

3. 디버그 도구 사용

또한 안드로이드 스튜디오의 디버그 모드를 활용하여 Room 데이터베이스를 쉽게 디버깅할 수 있습니다.

더 자세한 내용은 Android Developers 사이트를 참고하시기 바랍니다.

이상으로 Room 라이브러리를 사용할 때 데이터베이스 로깅과 디버깅하는 방법에 대해 알아보았습니다. 감사합니다!