{"id":32745,"date":"2023-05-01T22:01:22","date_gmt":"2023-05-01T13:01:22","guid":{"rendered":"https:\/\/8gfg.shop\/blog\/?p=32745"},"modified":"2023-05-01T22:01:22","modified_gmt":"2023-05-01T13:01:22","slug":"local-database-management-using-room-persistence-library-on-android","status":"publish","type":"post","link":"https:\/\/8gfg.shop\/blog\/development\/local-database-management-using-room-persistence-library-on-android","title":{"rendered":"\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c\uc758 Room Persistence Library\ub97c \ud65c\uc6a9\ud55c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac"},"content":{"rendered":"

\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c\uc758 Room Persistence Library\ub97c \ud65c\uc6a9\ud55c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac<\/p>\n

\uc548\ub4dc\ub85c\uc774\ub4dc \uc571 \uac1c\ubc1c\uc5d0\uc11c\ub294 \uc885\uc885 \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub54c, \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 Room Persistence Library\ub97c \uc0ac\uc6a9\ud558\uba74 \uc27d\uac8c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0dd\uc131\ud558\uace0 \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc5d0\uc11c\ub294 Room Persistence Library\ub97c \uc0ac\uc6a9\ud55c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0dd\uc131\uacfc \ub370\uc774\ud130 CRUD \uc791\uc5c5\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c Room Persistence Library\ub780?<\/h2>\n

Room Persistence Library\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c SQLite \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub9cc\ub4e4\uc5b4\uc9c4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc785\ub2c8\ub2e4. \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 SQLite \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc9c1\uc811 \ub2e4\ub8e8\ub294 \uac83\ubcf4\ub2e4 \ud6e8\uc52c \uc27d\uace0 \uc548\uc804\ud558\uac8c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc90d\ub2c8\ub2e4. \ub610\ud55c, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc815\uc758\ud558\uace0 \uad00\ub9ac\ud558\ub294 \uc791\uc5c5\uc744 \uac04\ud3b8\ud558\uac8c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

Room Persistence Library\ub97c \uc0ac\uc6a9\ud55c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0dd\uc131<\/h2>\n

Room Persistence Library\ub97c \uc0ac\uc6a9\ud55c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0dd\uc131\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud569\ub2c8\ub2e4. \uba3c\uc800, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \uad00\ub828\ub41c \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud14c\uc774\ube14\uc758 \uad6c\uc870\ub97c \uc815\uc758\ud558\ub294 \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. \uc774\ud6c4, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc811\uadfc\ud558\ub294 DAO(Data Access Object) \ud074\ub798\uc2a4\ub97c \uc791\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. DAO \ud074\ub798\uc2a4\ub294 \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c CRUD(Create, Read, Update, Delete) \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub294 \uba54\uc11c\ub4dc\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4.<\/p>\n

\uc544\ub798\ub294 \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4\uc640 DAO \ud074\ub798\uc2a4\uc758 \uc608\uc2dc\uc785\ub2c8\ub2e4.<\/p>\n

@Entity(tableName = \"user\")\ndata class User(\n    @PrimaryKey val id: Int,\n    val name: String,\n    val age: Int\n)\n\n@Dao\ninterface UserDao {\n    @Query(\"SELECT * FROM user\")\n    fun getAll(): List\n\n    @Insert\n    fun insert(user: User)\n\n    @Update\n    fun update(user: User)\n\n    @Delete\n    fun delete(user: User)\n}<\/code><\/pre>\n

\uc774\ud6c4, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud074\ub798\uc2a4\ub97c \uc791\uc131\ud569\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud074\ub798\uc2a4\ub294 \uc5d4\ud2f0\ud2f0 \ud074\ub798\uc2a4\uc640 DAO \ud074\ub798\uc2a4\ub97c \ud3ec\ud568\ud558\uba70, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc84\uc804 \ubc0f \uc774\ub984 \ub4f1\uc744 \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n

@Database(entities = [User::class], version = 1)\nabstract class AppDatabase : RoomDatabase() {\n    abstract fun userDao(): UserDao\n}<\/code><\/pre>\n

\ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\ub294 \ucf54\ub4dc\ub97c \uc791\uc131\ud569\ub2c8\ub2e4.<\/p>\n

val db = Room.databaseBuilder(\n    applicationContext,\n    AppDatabase::class.java, \"my-database\"\n).build()<\/code><\/pre>\n

Room Persistence Library\ub97c \ud65c\uc6a9\ud55c \ub370\uc774\ud130 CRUD \uc791\uc5c5<\/h2>\n

Room Persistence Library\ub97c \uc0ac\uc6a9\ud558\uba74 \ub370\uc774\ud130 CRUD \uc791\uc5c5\uc744 \uac04\ub2e8\ud558\uac8c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc544\ub798\uc640 \uac19\uc774 \ub370\uc774\ud130 \uc0bd\uc785 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

thread { db.userDao().insert(User(1, \"John\", 30)) }<\/code><\/pre>\n

\ub370\uc774\ud130 \uc870\ud68c \uc791\uc5c5\uc740 \uc544\ub798\uc640 \uac19\uc774 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

val users = db.userDao().getAll()<\/code><\/pre>\n

\ub370\uc774\ud130 \uc5c5\ub370\uc774\ud2b8 \uc791\uc5c5\uc740 \uc544\ub798\uc640 \uac19\uc774 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

thread { db.userDao().update(User(1, \"John\", 31)) }<\/code><\/pre>\n

\ub370\uc774\ud130 \uc0ad\uc81c \uc791\uc5c5\uc740 \uc544\ub798\uc640 \uac19\uc774 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

thread { db.userDao().delete(User(1, \"John\", 31)) }<\/code><\/pre>\n

\uc774\ucc98\ub7fc Room Persistence Library\ub97c \uc0ac\uc6a9\ud558\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac \uc791\uc5c5\uc744 \uc27d\uac8c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 \uc548\ub4dc\ub85c\uc774\ub4dc\uc5d0\uc11c Room Persistence Library\ub97c \uc0ac\uc6a9\ud55c \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4. Room Persistence Library\ub97c \uc0ac\uc6a9\ud558\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0dd\uc131 \ubc0f \uad00\ub9ac \uc791\uc5c5\uc744 \uac04\ud3b8\ud558\uac8c \uc218\ud589\ud560 \uc218 \uc788\uc73c\uba70, \ub370\uc774\ud130 CRUD \uc791\uc5c5\ub3c4 \uc27d\uac8c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud3b8\uc758\uc131\uc73c\ub85c \uc778\ud574 \uc548\ub4dc\ub85c\uc774\ub4dc \uc571 \uac1c\ubc1c\uc5d0\uc11c Room Persistence Library\uc758 \uc0ac\uc6a9\uc774 \uc810\uc810 \ub298\uc5b4\ub098\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"

\uc548\ub4dc\ub85c\uc774\ub4dc\uc758 Room Persistence Library \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub85c\uceec \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \uad00\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc790.<\/p>\n","protected":false},"author":1,"featured_media":12633,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[2440,2104,2439,2076,2455],"class_list":["post-32745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-access","tag-data","tag-database","tag-from","tag-query"],"acf":[],"_links":{"self":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/32745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/comments?post=32745"}],"version-history":[{"count":1,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/32745\/revisions"}],"predecessor-version":[{"id":33248,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/32745\/revisions\/33248"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/media\/12633"}],"wp:attachment":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/media?parent=32745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/categories?post=32745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/tags?post=32745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}