[android] 안드로이드 Room Database의 데이터베이스 저장소 설정

안드로이드 앱을 개발하다 보면 데이터베이스를 사용해야 하는 경우가 많습니다. 안드로이드 앱의 데이터베이스 저장소를 설정하고 관리하기 위해서는 Room 라이브러리를 사용할 수 있습니다. Room은 SQLite 데이터베이스 위에 구축된 추상화 레이어를 제공하여 데이터베이스 액세스를 용이하게 합니다.

이번 포스트에서는 안드로이드 앱에서 Room 데이터베이스 저장소를 설정하는 방법에 대해 알아보겠습니다.

데이터베이스 클래스 만들기

Room 데이터베이스를 설정하려면 먼저 @Database 어노테이션을 사용하여 데이터베이스를 나타내는 클래스를 만들어야 합니다. 이 클래스는 RoomDatabase를 확장해야 하며, 앱에 필요한 데이터베이스 버전 및 엔티티를 지정해야 합니다. 아래는 간단한 예제 코드입니다.

import androidx.room.Database;
import androidx.room.RoomDatabase;

@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract UserDao userDao();
}

위의 예제에서 User는 데이터베이스 내의 엔티티를 나타내는 클래스이며, UserDao는 데이터베이스 액세스 객체를 나타내는 클래스입니다.

데이터베이스 인스턴스 생성

데이터베이스 클래스를 만든 후에는 앱의 데이터베이스 인스턴스를 생성해야 합니다. 일반적으로 앱의 Application 클래스에서 데이터베이스 인스턴스를 생성합니다. 다음은 데이터베이스 인스턴스를 생성하는 예제 코드입니다.

import android.app.Application;
import androidx.room.Room;

public class MyApp extends Application {
    public static AppDatabase appDatabase;

    @Override
    public void onCreate() {
        super.onCreate();
        appDatabase = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "my-database").build();
    }
}

위의 예제에서 MyApp 클래스는 앱의 Application 클래스입니다. onCreate 메소드에서 Room의 databaseBuilder 메소드를 사용하여 데이터베이스 인스턴스를 생성하고, 이를 전역적으로 액세스할 수 있도록 appDatabase에 할당합니다.

이제 안드로이드 앱에서 Room 데이터베이스 저장소를 설정하는 방법을 알아보았습니다. 데이터베이스 클래스를 만들고 데이터베이스 인스턴스를 생성함으로써 앱에서 데이터베이스를 사용할 수 있게 됩니다.

더 자세한 내용은 Room Persistence Library 공식 문서를 참고해주시기 바랍니다.