[Android] 메모장 앱 만들기(1)_Realm DB 연동하기
이번에는 안드로이드로 간단한 메모앱을 만들어 보기로 했다! DB는 Realm으로 사용했다.
먼저 Realm을 사용하는 방법을 알아보자!
Realm DB 연결 및 테스트
1) Gradle Script에 연결 코드 넣기
- build.gradle에 dependencies를 추가한다.
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath "io.realm:realm-gradle-plugin:6.0.2"
}
- Module:app의 맨 윗부분과 dependencies안에 각각 추가한다.
apply plugin: 'realm-android'
dependencies {
implementation 'io.realm:android-adapters:3.1.0'
}
그리고 Scyn을 눌러 적용해준다.
2) Realm에서 사용할 오브젝트 클래스 만들기(DB의 구조)
메모장에 들어갈 제목, 날짜, 내용을 담을 오브젝트를 생성한다. RealmObject를 extends 하여 Realm DB에 객체가 생성된다.
package com.example.myapplication;
import io.realm.RealmObject;
import io.realm.annotations.Required;
public class Memo extends RealmObject {
@Required
private String title; //제목
private String date; //날짜
private String content; //내용
public Memo() {
this.title = "아무값도 없습니다.";
}
public Memo(String title,String date,String dday) {
this.title = title;
this.date = date;
this.content = content;
}
public String getTitle() { return title; }
public String getDate(){ return date; }
public String getContent(){ return content; }
public void setTitle(String title) {
this.title = title;
}
public void setDate(String date) {
this.date = date;
}
public void setContent(String content) {
this.content = content;
}
}
3) MainActivity에서 DB 동작 테스트하기
realm을 사용할 수 있도록 넣어주고 만들어둔 DB객체를 가져옵니다.
private Realm realm;
private Memo Memoinfo;
다시 시작 할 때마다 realm을 초기화 해주고, realm.getDefaultInstance로 DB를 열어줍니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Realm.init(this);
realm = Realm.getDefaultInstance();
}
activity_main.xml에 버튼을 만들어주고, 데이터를 넣는 작업을 해준다. realm.beginTransaction()으로 트랜잭션을 시작하고 Memo 객체에 데이터를 넣어준다. 그리고 commit해주면 적용된다. 잘 들어갔는지 확인하기 위해 RealmResult로 Memo에 저장된 객체를 한번에 보여주는 메세지를 띄워준다.
realm.beginTransaction();
Memoinfo = realm.createObject(Memo.class);
Memoinfo.setTitle("title");
Memoinfo.setDate("date");
Memoinfo.setContent("content");
realm.commitTransaction();
RealmResults<Memo> realmResults = realm.where(Memo.class).findAll();
클릭할 때 마다 값이 들어가는 것을 볼 수 있다.
이렇게 Realm DB에 간단하게 연결하는 동작을 테스트 해봤다. 다음에는 본격적으로 화면 레이아웃을 만들고, 저장한 데이터들을 리스트로 가져와 잘 보이게 뿌려주는 실습을 할 예정이다....ㅎ
※ [ 참고 ] Realm 파일 데이터 저장된 경로 찾기
Log.v("MainActivity","경로..."+realm.getPath());
Logcat에 경로가 뜬다 ex) /data/data/자신의 패키지명/files/default.realm
이렇게 디바이스 내부 디렉토리로 접근해서 파일을 찾을 수 있다.
내 경우는 문서 > AndroidStudio > DeviceExplorer > 디바이스명 > data > data > 패키지명 > files 안에 Realm파일이 있었다.
위의 default파일을 더블클릭하면 RealmStudio를 통해 전체 데이터를 확인할 수 있다.
RealmStudio 다운로드하기
https://realm.io/kr/products/realm-studio/
Realm Studio: open, edit, and manage your Realm data
Download our cross-platform developer tool for the Realm Database and Realm Platform. Available for Mac, Windows, and Linux.
realm.io