[android] 안드로이드 Room Database의 테이블 생성

안드로이드 앱에서 데이터베이스를 사용할 때 Room 라이브러리는 많은 개발자들에게 높은 인기를 누리고 있습니다. Room을 사용하면 쉽게 데이터베이스를 구축하고 관리할 수 있습니다. 데이터베이스를 사용하기 위해 먼저 테이블을 생성하는 방법에 대해 알아보겠습니다.

1. 엔티티(테이블) 클래스 생성

Room Database에서 테이블을 나타내기 위해 엔티티 클래스를 생성해야 합니다. 엔티티 클래스는 테이블의 구조를 정의하고 데이터를 저장하거나 검색하는 데 사용됩니다.

@Entity
public class User {
    @PrimaryKey
    public int id;
    public String name;
    public int age;
}

위의 예제에서는 “User” 테이블을 나타내는 엔티티 클래스를 정의하였습니다. 각 필드는 테이블의 컬럼에 해당하며, @Entity 어노테이션으로 엔티티 클래스임을 표시하고, @PrimaryKey 어노테이션으로 기본키 필드를 지정합니다.

2. 데이터베이스 클래스 생성

다음으로는 데이터베이스 클래스를 생성해야 합니다. 데이터베이스 클래스는 Room Database의 추상 클래스를 상속받아야 하며, 각 테이블에 대한 데이터 액세스 객체(DAO)를 정의합니다.

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

위의 예제에서는 “AppDatabase”라는 데이터베이스 클래스를 정의하였습니다. @Database 어노테이션으로 엔티티 클래스를 지정하고, 데이터베이스의 버전을 명시합니다. 또한 각 DAO 인터페이스의 메서드를 추상 메서드로 선언하여 데이터베이스 작업을 수행할 수 있습니다.

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

마지막으로는 데이터베이스 인스턴스를 생성하여 테이블을 만들 수 있습니다. 데이터베이스 인스턴스는 Room.databaseBuilder를 사용하여 생성할 수 있습니다.

AppDatabase db = Room.databaseBuilder(getApplicationContext(),
        AppDatabase.class, "app-database").build();

위의 예제에서는 Room.databaseBuilder를 사용하여 데이터베이스의 인스턴스를 생성하였습니다. 이때 첫 번째 매개변수로는 앱의 컨텍스트를, 두 번째 매개변수로는 데이터베이스 클래스를, 세 번째 매개변수로는 데이터베이스의 이름을 전달합니다.

이제 여러분은 안드로이드 Room Database에서 테이블을 생성하는 방법을 알게 되었습니다. 데이터베이스를 사용하여 앱의 데이터를 효과적으로 관리할 수 있게 되었습니다.

더 많은 자세한 정보는 Android Developer 공식 문서를 참고하실 수 있습니다.