[android] 안드로이드 SQLite 데이터베이스와 데이터 ETL (추출, 변환, 적재)

안드로이드 앱에서 데이터를 효율적으로 저장하고 관리하기 위해 SQLite 데이터베이스를 사용하는 경우가 많습니다. SQLite는 경량 데이터베이스 관리 시스템(Lightweight Database Management System)으로, 안드로이드 플랫폼에서 내장되어 있는 관계형 데이터베이스입니다. 이번 글에서는 안드로이드 앱에서 SQLite 데이터베이스를 활용하는 방법과 데이터 ETL(추출, 변환, 적재) 과정에 대해 다루겠습니다.

1. SQLite 데이터베이스 사용하기

SQLite는 안드로이드 앱에서 내부 또는 외부 데이터를 효율적으로 저장하기 위해 사용됩니다. 데이터베이스를 사용하려면 다음과 같은 단계를 따릅니다.

1.1. 데이터베이스 생성

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
// 데이터베이스 헬퍼 클래스 생성
public class DbHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "mydatabase.db";
    public static final int DATABASE_VERSION = 1;

    public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 테이블 생성 SQL 작성
        String createTableQuery = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)";
        // 데이터베이스에 테이블 생성
        db.execSQL(createTableQuery);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 데이터베이스 업그레이드 로직 작성
    }
}

1.2. 데이터 삽입, 조회, 수정, 삭제

SQLite 데이터베이스로부터 데이터를 삽입, 조회, 수정, 삭제하는 방법은 SQL 쿼리를 사용하여 다음과 같이 수행할 수 있습니다.

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
// 데이터베이스 작업
DbHelper dbHelper = new DbHelper(context);
// 데이터베이스 쓰기 모드로 열기
SQLiteDatabase db = dbHelper.getWritableDatabase();

// 데이터 삽입
ContentValues values = new ContentValues();
values.put("name", "John");
db.insert("mytable", null, values);

// 데이터 조회
Cursor cursor = db.query("mytable", null, null, null, null, null, null);
while(cursor.moveToNext()) {
    String name = cursor.getString(cursor.getColumnIndex("name"));
    // 데이터 처리 로직
}

// 데이터 수정
ContentValues updateValues = new ContentValues();
updateValues.put("name", "Jane");
db.update("mytable", updateValues, "name=?", new String[] {"John"});

// 데이터 삭제
db.delete("mytable", "name=?", new String[] {"Jane"});

// 데이터베이스 닫기
db.close();

2. 데이터 ETL

안드로이드 앱에서 데이터를 데이터베이스에 추출, 변환, 적재하는 과정을 데이터 ETL라고 합니다. 이를 위해 다음과 같은 방법을 사용할 수 있습니다.

2.1. 데이터 추출

외부 소스(예: 인터넷, 다른 앱)로부터 데이터를 가져와서 사용자가 사용할 수 있는 형식으로 변환하는 과정입니다.

2.2. 데이터 변환

가져온 데이터를 데이터베이스에 적합한 형태로 변환하여 실제 데이터베이스에 저장할 수 있도록 합니다.

2.3. 데이터 적재

변환된 데이터를 SQLite 데이터베이스에 적재하여 안드로이드 앱에서 사용할 수 있도록 합니다.

마무리

SQLite 데이터베이스를 활용하여 안드로이드 앱에서 데이터를 효율적으로 저장하고 관리하는 방법과 데이터 ETL 프로세스에 대해 알아보았습니다. 안드로이드 앱에서 데이터를 안전하게 보관하고 사용하기 위해 SQLite 데이터베이스와 데이터 ETL을 적절히 활용하여 개발하는 것이 중요합니다.

참고문헌: