[android] 안드로이드 데이터베이스 관리

안드로이드 앱을 개발할 때 데이터를 저장하고 관리해야 하는 경우가 많습니다. 데이터베이스를 사용하여 구조화된 데이터를 효과적으로 관리할 수 있습니다. 안드로이드에서 데이터베이스를 사용하는 방법에 대해 알아보겠습니다.

1. SQLite 데이터베이스

안드로이드에서 기본적으로 제공하는 내장 데이터베이스는 SQLite입니다. SQLite는 경량의 관계형 데이터베이스 관리 시스템으로, 안드로이드 앱에서 사용하기에 적합합니다. SQLite 데이터베이스는 테이블 형식으로 데이터를 저장하고 SQL을 사용하여 데이터를 관리합니다.

// SQLiteOpenHelper를 상속받아 데이터베이스를 생성하고 업그레이드하는 코드 예시
public class DBHelper extends SQLiteOpenHelper {
    private static final String DB_NAME = "my_database";
    private static final int DB_VERSION = 1;

    public DBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 테이블 생성 SQL 실행
        db.execSQL("CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 데이터베이스 버전 업그레이드 시 수행할 작업
        db.execSQL("DROP TABLE IF EXISTS my_table");
        onCreate(db);
    }
}

2. 데이터베이스 연동

데이터베이스를 사용하기 위해서는 데이터베이스를 생성하고 오픈하는 작업이 필요합니다. SQLiteDatabase 클래스를 사용하여 데이터베이스 연결, 쿼리 실행 등의 작업을 수행할 수 있습니다.

// 데이터베이스 연결 및 쿼리 실행 예시
DBHelper dbHelper = new DBHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "John");
db.insert("my_table", null, values);

3. 데이터베이스 조작

SQLite 데이터베이스를 사용하여 데이터를 추가, 조회, 수정, 삭제할 수 있습니다. SQL 쿼리를 사용하여 데이터를 조작하고 필요에 따라서는 Cursor를 통해 결과를 가져올 수 있습니다.

// 데이터 조회 및 업데이트 예시
Cursor cursor = db.query("my_table", null, null, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
    String name = cursor.getString(cursor.getColumnIndex("name"));
    // 데이터 업데이트
    ContentValues updateValues = new ContentValues();
    updateValues.put("name", "Doe");
    db.update("my_table", updateValues, "id=?", new String[]{String.valueOf(1)});
    cursor.close();
}

주의할 점은 데이터베이스 작업은 메인 스레드에서 직접 수행하면 안 되며, 백그라운드 스레드에서 작업해야 합니다.

안드로이드에서 데이터베이스를 효과적으로 활용하려면 CRUD(Create, Read, Update, Delete) 작업을 신중하게 다루고, 적절한 스레드 관리 및 에러 처리를 고려해야 합니다.

안드로이드 데이터베이스를 관리하는 방법에 대한 간단한 소개였습니다. 데이터베이스를 사용하여 안정적이고 효율적인 데이터 관리를 할 수 있도록 노력해야 합니다.

참고 자료: