SharedPreferences
안드로이드에서 간단하게 값을 저장하고 불러오는 방법
# SharedPreFerences 설명
Key - Value 형태로 값을 저장한다.
Key는 String Type을 사용한다.
Value는 기본적인 자료 구조만 가능하다.
(Boolean, Long, String, Int, Double, Set)
간단하게 DB 시스템을 활용하는 안드로이드 개발 전략이다.
로컬 DB시스템을 구축하기엔, 로직이 복잡하기에, 이를 해소하기위해 SharedPreferences로 간단하게 구현한다.
아마도, SharedPreferences 는 로컬 환경에서 단순한 데이터 저장 및 활용에 쓰이지 않을까 라고 생각해본다.
아직까진, SharedPreferences를 사용하는 목적은 잘 모르겠다.
Room DB
데이터베이스를 서버 대신 파일 형태로 저장하는 SQLite 기반
Room DB는 관계형 데이터베이스 구조 지닌다.
SQL문을 사용하여 Room DB를 관리한다.
기본적으로 데이터베이스는 데이터베이스의 무결성 성질을 만족한 채 DB가 구성되어져야 한다.
따라서, Room DB에서도 데이터가 삽입, 삭제, 업데이트가 되어질 때 데이터베이스의 무결성 성질을 만족해야 한다.
"무결성"이란, 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다.
Room DB 구현을 위한 클래스 아키텍처 정리
AppDatabase - Room DB 클래스
Room DB 를 생성하고 관리하는 클래스이다.
안드로이드에서 Room DB를 사용할 수 있도록 Room Database를 해당 클래스를 통해 생성한다.
User - Room DB 데이터 클래스 [Room DB Table]
Room DB의 데이터 클래스를 생성하고 관리하는 클래스이다.
안드로이드의 로컬 DB인 Room DB의 Table 객체를 데이터 클래스를 통해 생성한다.
"데이터 클래스로 Room DB의 Table을 생성하고 관리한다."
Dao - Room DB 쿼리문 요청 클래스
Room DB의 Table을 토대로 원하는 데이터에 대한 CRUD를 수행하는 쿼리문을 관리하는 클래스이다.
Room DB의 요소들을 이용해 (@Dao, @Insert, @Delete, @Query)
생성된 Room DB의 데이터에 대한 CRUD를 처리하는 쿼리문을 메소드 형태로 작성한다.
MainActivity - Room DB 객체 생성 & Room DB 데이터 활용
Room DB 클래스인 AppDatabase를 MainActivity 클래스에서 Room DB 객체로 생성하여 안드로이드 App에서의 고유한 Room DB를 생성한다.
그리고, Room DB의 데이터 클래스를 생성해둔 User 클래스를 이용해 Room DB에 데이터를 CRUD를 수행한다.
이때 CRUD는 Dao 클래스에서 정의한 쿼리문을 활용해 구현한다.
정리해서, Controller 로써 Activity 파일이 사용되며, 로컬 DB인 Room DB에 앱의 정보를 클라이언트 요청에 따라서 자유자재로 저장하고 관리한다.
"클라이언트 요청에 따라 Room DB에 선택적으로 관리한다."
마무리
이번 주차에서는 안드로이드 로컬 DB인 Room DB를 구현해보았다.
로컬 DB는 나중에 로그인, 회원가입에 대해서 구현을 하고 로그인된 정보를 기록해둘 때 사용한다고 한다.
이는, 런칭 프로젝트에서 실제로 작업해볼 예정이고, 이번 겨울방학 런칭프로젝트에서 이 부분에 대해서 어떻게 관리해서 앱을 동적으로 움직이게 만드는지 알아볼 것이다.
"겨울 방학 프로젝트를 위해 책임감을 지니며 안드로이드 공부를 꾸준히 그리고 꾸준히하자."
'📚 스터디 > 프론트엔드' 카테고리의 다른 글
[안드로이드] 7주차: Thread 실습 [타이머 제작] (0) | 2022.11.15 |
---|---|
[안드로이드] 7주차: Thread & 동기, 비동기 작업 (0) | 2022.11.12 |
[안드로이드] 6주차 실습: BottomNavigation & ViewPager2 - TabLayout (0) | 2022.11.06 |
[안드로이드] 5주차 실습: RecyclerView 사용 (5) | 2022.11.05 |
[안드로이드] 6주차: 고급 Layout과 View (0) | 2022.11.05 |