[android] 안드로이드 Room Database의 데이터 유효성 검사

안드로이드 앱을 개발하다 보면 데이터베이스에서 데이터를 삽입하거나 업데이트하기 전에 데이터의 유효성을 검사해야 하는 경우가 있습니다. 안드로이드에서 Room Database를 사용하여 데이터를 다룰 때, 이러한 유효성 검사를 간단하게 할 수 있습니다.

1. 데이터 모델 클래스 설정

먼저, 데이터 모델 클래스에 유효성 검사를 설정해야 합니다. 예를 들어, 사용자 정보를 다루는 클래스일 경우, 사용자의 이름이나 이메일 주소가 유효한지 검사할 수 있습니다.

@Entity
public class User {
    @PrimaryKey
    public int id;

    @ColumnInfo(name = "name")
    @NonNull
    public String name;

    @ColumnInfo(name = "email")
    @NonNull
    @EmailConstraint // 커스텀한 유효성 검사 어노테이션 사용
    public String email;
}

위의 코드에서 @NonNull 어노테이션은 해당 필드가 null이 아니어야 한다는 것을 나타내며, @EmailConstraint는 이메일 유효성에 대한 사용자 지정 검사 어노테이션을 나타냅니다.

2. 사용자 정의 유효성 검사 어노테이션 설정

다음으로, 사용자 정의 유효성 검사 어노테이션을 설정해야 합니다. 다음은 이메일 주소의 유효성을 검사하기 위한 어노테이션 예시입니다.

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Constraint(validatedBy = EmailValidator.class)
public @interface EmailConstraint {
    String message() default "Invalid email address";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}

3. 유효성 검사 수행

마지막으로, 데이터베이스 작업을 수행하기 전에 유효성 검사를 수행해야 합니다. Room Database의 DAO(Data Access Object)에 유효성 검사를 수행하는 메서드를 추가할 수 있습니다.

@Dao
public interface UserDao {
    @Insert
    void insertUser(User user);

    @Update
    void updateUser(User user);
}

이렇게하면 Room Database를 사용하여 데이터를 다룰 때 간단히 데이터의 유효성을 검사할 수 있습니다.


참고 문헌: