[kotlin] 룸 데이터베이스의 데이터 유효성 검사하기

앱을 개발할 때 데이터 유효성 검사는 매우 중요합니다. 안전한 데이터 저장과 사용을 보장할 수 있고, 사용자에게 좋은 경험을 제공할 수 있습니다. 안드로이드에서 룸(Room) 데이터베이스를 사용하면 애노테이션 기반으로 데이터 유효성을 검사할 수 있습니다.

이 포스트에서는 룸 데이터베이스에서 데이터를 유효성 검사하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저, build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    def room_version = "2.4.0"
    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"
}

2. 엔터티 클래스 수정

기존의 엔터티 클래스에 유효성 검사를 위한 애노테이션을 추가합니다.

import androidx.room.Entity
import androidx.room.PrimaryKey
import androidx.room.ColumnInfo
import androidx.room.Ignore
import androidx.room.NonNull
import androidx.room.Index
import androidx.room.Embedded
import androidx.room.Fts3
import androidx.room.Fts4
import androidx.room.Entity
import androidx.room.ForeignKey

@Entity
data class User(
    @PrimaryKey val uid: Int,
    @NonNull @ColumnInfo(name = "first_name") val firstName: String?,
    @NonNull @ColumnInfo(name = "last_name") val lastName: String?
)

위의 코드에서 @NonNull 애노테이션을 사용하여 null 값을 허용하지 않도록 지정할 수 있습니다.

3. 데이터 유효성 검사

데이터 유효성 검사를 수행하려면, Room 데이터베이스의 초기화유효성 검사 조건을 설정해야 합니다.

import androidx.room.Database
import androidx.room.RoomDatabase
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}

val MIGRATION_1_2: Migration = object : Migration(1, 2) {
    override fun migrate(database: SupportSQLiteDatabase) {
        // TODO: 데이터베이스가 업데이트되었을 때의 처리 작성
    }
}

4. 결과

이제 앱에서 데이터를 Room 데이터베이스에 저장할 때에 유효성 검사가 자동으로 수행됩니다.

안전한 데이터베이스 관리를 위해 데이터 유효성 검사를 활용하고 안정적인 앱을 제공하세요!