{"id":3673,"date":"2017-06-05T02:03:15","date_gmt":"2017-06-05T09:03:15","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3673"},"modified":"2023-06-19T02:15:21","modified_gmt":"2023-06-19T09:15:21","slug":"persist-abstract-data-nativescript-typescript-application","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/persist-abstract-data-nativescript-typescript-application\/","title":{"rendered":"\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8 \ud0c0\uc785\uc2a4\ud06c\ub9bd\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ub370\uc774\ud130 \uc9c0\uc18d \ubc0f \ucd94\uc0c1\ud654"},"content":{"rendered":"<p><a href=\"https:\/\/www.linkedin.com\/in\/aaron-ullal\/\">\uc544\ub860 \uc6b8\ub784<\/a> \ub294\u00a0<em>\uc0ac\ub78c\uacfc \uc0b6\uc744 \uc0ac\ub791\ud558\ub294 FactoryMind\uc758 \ud504\ub9ac\ub79c\uc11c \uac1c\ubc1c\uc790\ub85c, \uc601\uad6c \ubca0\ud0c0 \ubc84\uc804\uc5d0 \uc0b4\uace0 \uc788\uc2b5\ub2c8\ub2e4.  He<\/em><em>\u00a0<\/em><em>\ub294 \uc774\ud0c8\ub9ac\uc544 \ud2b8\ub80c\ud1a0\uc758 \uc544\ub984\ub2e4\uc6b4 \ub9c8\uc744\uc5d0 \uae30\ubc18\uc744 \ub454 \ud480 \uc2a4\ud0dd \uac1c\ubc1c\uc0ac\uc785\ub2c8\ub2e4.<\/em><\/p>\n<p><em>\ub354 \ub9ce\uc740 \uac83\uc744 \ucd94\uad6c\ud558\ub294 IT \uc5f4\uc815 <\/em><em>\ubcf4\ub2e4 <\/em><em>7 \ub144, \uadf8\ub294 <\/em><em>\ud604\uc7ac<\/em><em>\u00a0\ub124\uc774\ud2f0\ube0c\ub97c \uc0ac\uc6a9\ud55c \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc5d0 \uc9d1\uc911<\/em><em>S<\/em><em>\ubcf5\uc7a1\ud55c \ud50c\ub7ab\ud3fc\uc744 \uc704\ud55c \uc544\ud0a4\ud14d\ucc98 \uc194\ub8e8\uc158\uc744 \uc791\uc131\ud558\uace0 \uc124\uacc4\ud569\ub2c8\ub2e4.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3682\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/AaronUllal-300x200.png\" alt=\"Aaron Ullal \" width=\"300\" height=\"200\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/AaronUllal-300x200.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/AaronUllal-400x267.png 400w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/AaronUllal-450x300.png 450w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/AaronUllal-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/06\/AaronUllal.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub294 \uc571 \ub0b4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ubcf4\uc874\ud560 \uc218 \uc788\ub294 \ud6cc\ub96d\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4. \ub4e4\uc5b4\ubcf8 \uc801\uc774 \uc5c6\ub2e4\uba74, \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \ubb38\uc11c \uac1c\uccb4 \uc800\uc7a5\uc18c\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8-\uc575\uade4\ub7ec\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 \uc2dc\uc791\ud558\ub294 \ubc29\ubc95\uacfc \uace0\uae09 \uae30\ub2a5\uc5d0 \ub300\ud55c \ud6cc\ub96d\ud55c \ud29c\ud1a0\ub9ac\uc5bc\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \ud0c0\uc785\uc2a4\ud06c\ub9bd\ud2b8\uac00 \ud3ec\ud568\ub41c \ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd94\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\ub2e4\ub8f0 \ub0b4\uc6a9<\/strong><\/p>\n<p>\uc774 \uac04\ub2e8\ud55c \ubb38\uc11c\uc5d0\uc11c\ub294 \uba87 \uac00\uc9c0 \uc0ac\uc6a9\uc790 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uace0 \uac80\uc0c9\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubd05\ub2c8\ub2e4:<\/p>\n<ol>\n<li>Couchbase \uc124\uce58<\/li>\n<li>Couchbase \uc704\uc5d0 \ucd94\uc0c1\ud654 \uacc4\uce35\uc744 \uc81c\uacf5\ud558\ub294 TypeScript \ud074\ub798\uc2a4\ub97c \uc0dd\uc131\ud558\uc5ec \ud6e8\uc52c \ub354 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4(\ub370\uc774\ud130 \uc0bd\uc785 \ubc0f \uac80\uc0c9\uc744 \uc704\ud55c \ubcf5\uc7a1\ud55c \uc9c0\uce68\uc774 \ud544\uc694 \uc5c6\uc74c).<\/li>\n<li>\ud074\ub798\uc2a4\uc5d0\uc11c \uc2f1\uae00\ud1a4 \ud328\ud134 \uad6c\ud604\ud558\uae30<\/li>\n<\/ol>\n<p>\ud29c\ud1a0\ub9ac\uc5bc\uc774 \ub05d\ub098\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc9c0\uce68\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:default decode:true\">userSettings.name =\u00a0\"Frank\"\u00a0\/\/boom! written in our db\r\n\r\ntext=\u201d{{\u00a0userSettings.name }}\u201d\u00a0\/\/boom! read from our db<\/pre>\n<p>\uc77d\uace0 \uc4f0\uae30 \uc704\ud574 \uad11\ubc94\uc704\ud55c \ucffc\ub9ac\ub97c \uc791\uc131\ud560 \ud544\uc694 \uc5c6\uc774!<\/p>\n<p>\ub610\ud55c \uc774 \ubb38\uc11c\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ucf54\ub4dc\ub294 <u><a href=\"https:\/\/github.com\/ullalaaron\/nativescript-couchbase-demo\" target=\"_blank\" rel=\"noopener noreferrer\">\uc774<\/a><\/u>\u00a0\uae43\ud5c8\ube0c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac. \uc790\uc720\ub86d\uac8c \ubcf5\uc81c\ud558\uc5ec \uc0ac\uc6a9\ud574 \ubcf4\uc138\uc694.<\/p>\n<p>\ub354 \uc774\uc0c1 \uace0\ubbfc\ud558\uc9c0 \ub9d0\uace0 \uc2dc\uc791\ud574\ubcf4\uc790!<\/p>\n<p><strong>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud50c\ub7ec\uadf8\uc778 \uc124\uce58<\/strong><\/p>\n<p>\ud0c0\uc785\uc2a4\ud06c\ub9bd\ud2b8 \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0c8\ub85c\uc6b4 \ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8 \uc571\uc744 \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:default decode:true\">tns create ns-couchbase-demo --tsc<\/pre>\n<p>\uc0c8\ub85c \ub9cc\ub4e0 NativeScript \ud504\ub85c\uc81d\ud2b8\uc758 \ub8e8\ud2b8 \ud3f4\ub354\uc5d0\uc11c \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc5ec \ud50c\ub7ec\uadf8\uc778\uc744 \ucd94\uac00\ud558\uace0 \uc885\uc18d\uc131 \ubaa9\ub85d\uc5d0 \uc800\uc7a5\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">tns \ud50c\ub7ec\uadf8\uc778 \ub124\uc774\ud2f0\ube0c \uc2a4\ud06c\ub9bd\ud2b8-\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucd94\uac00\r\n\r\n<\/pre>\n<p>\ud50c\ub7ec\uadf8\uc778\uc774 \uc131\uacf5\uc801\uc73c\ub85c \uc124\uce58\ub418\uba74 \ud544\uc694\ud55c \uc0ac\uc6a9\uc790 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uace0 \uac80\uc0c9\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\ucd94\uc0c1\ud654 \ub808\uc774\uc5b4 \ud074\ub798\uc2a4<\/strong><\/p>\n<p><strong>\uc120\ud0dd \uc0ac\ud56d: <\/strong>\uc77c\ubc18\uc801\uc73c\ub85c \ud3ec\ud568\ud574\uc57c \ud558\ub294 \uc18d\uc131\uc744 \uc815\uc758\ud558\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub9cc\ub4dc\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758 \uc571 \ud3f4\ub354\ub85c \uc774\ub3d9\ud558\uc5ec \ubaa8\ub378 \ud3f4\ub354\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\uc11c Models.ts \ud30c\uc77c(app\/models\/Models.ts)\uc744 \uc815\uc758\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">export\u00a0module\u00a0Models{\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0export\u00a0interface\u00a0IUserSettings\u00a0{\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0username :string;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fullname :string;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0email :string;\r\n\r\n}\r\n\r\n}\r\n\r\n<\/pre>\n<p>\uc778\ud130\ud398\uc774\uc2a4\ub97c \uc815\uc758\ud588\uc73c\uba74 \uc774\uc81c \uc2e4\uc81c\ub85c \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud558\ub294 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. UserSettings \ud074\ub798\uc2a4\ub77c\uace0 \ubd80\ub974\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ud074\ub798\uc2a4 \ub0b4\ubd80\uc5d0\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \uad00\ub828\ub41c \uc815\ubcf4\ub3c4 \uc800\uc7a5\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:default decode:true\">let CouchBaseModule\u00a0=\u00a0require(\"nativescript-couchbase\");\r\n\r\nimport\u00a0{\u00a0Models\u00a0}\u00a0from\u00a0'..\/models\/Models';\r\n\r\nexport\u00a0class\u00a0UserSettings implements Models.IUserSettings{\r\n\r\n\u00a0 \u00a0private\u00a0DATABASE_NAME =\u00a0'appname-db';\r\n\r\n\u00a0 \u00a0private\u00a0USER_SETTINGS_DOC_ID\u00a0=\u00a0'usersettings';\r\n\r\n\u00a0 \u00a0private\u00a0_database;\r\n\r\n\u00a0 \u00a0private\u00a0_userSettingsDocument:\u00a0Models.IUserSettings;\r\n\r\n\u00a0 \u00a0private\u00a0_userSettingsObj:\u00a0Models.IUserSettings;\r\n\r\n\u00a0 \u00a0private _instance :UserSettings;\r\n\r\n}\r\n\r\n<\/pre>\n<p>\uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<p>\ucc98\uc74c \ub450 \uc904\uc5d0\ub294 \uc774\uc804\uc5d0 \uc124\uce58\ud55c Couchbase \ud50c\ub7ec\uadf8\uc778\uacfc TypeScript\uc758 \uac15\ub825\ud55c \ud0c0\uc774\ud551\uc744 \ud65c\uc6a9\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ud560 Models \ubaa8\ub4c8\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7f0 \ub2e4\uc74c \ub098\uc911\uc5d0 \uc0ac\uc6a9\ud560 \ub2e4\ub978 \uac1c\uc778 \uc18d\uc131\uc744 \uc815\uc758\ud569\ub2c8\ub2e4:<\/p>\n<p>DATABASE_NAME: \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uc774\ub984\uc785\ub2c8\ub2e4. \ub300\ubb38\uc790\uac00 \ud3ec\ud568\ub418\uc9c0 \uc54a\uc544\uc57c \ud558\uba70 240\uc790 \ubbf8\ub9cc\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>USER_SETTINGS_DOC_ID: \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubb38\uc11c\uc758 \uc774\ub984\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4: \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ucee4\ub125\ud130\uc758 \uc778\uc2a4\ud134\uc2a4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc0ac\uc6a9\uc790 \uc124\uc815 \ubb38\uc11c: \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub294 \ubb38\uc11c \uc9c0\ud5a5 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \uc544\ub2d9\ub2c8\ub2e4. \ud14c\uc774\ube14\uc774 \uc5c6\ub294 \ub300\uc2e0 \ubb38\uc11c\ub77c\ub294 \uae30\ubcf8 \uc800\uc7a5 \uc5d4\ud2f0\ud2f0\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ubb38\uc11c\ub294 \ud0a4-\uac12 \uc30d\uc758 \ubaa8\uc74c\uc73c\ub85c, \uac12\uc740 \ubb38\uc790\uc5f4, \uc22b\uc790, \ubc30\uc5f4 \ub4f1 \uac70\uc758 \ubaa8\ub4e0 \uac83\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc591\ud55c \ube44\uad00\uacc4\ud615 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud574\uc57c \ud558\ub294 \uacbd\uc6b0 Couchbase\uac00 \ucd5c\uace0\uc758 \uc194\ub8e8\uc158\uc774 \ub418\ub294 \uc774\uc720, \uc989 \ub2e8\uc21c\uc131\uacfc \uc720\uc5f0\uc131\uc774 \ubc14\ub85c \uc5ec\uae30\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>_userSettingsObj: Couchbase \ubb38\uc11c\uc640 \uc815\ubcf4\ub97c \ub3d9\uae30\ud654\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 JavaScript \uac1d\uccb4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\ub97c \uc120\uc5b8\ud55c \uc774\uc720\ub294 \ub098\uc911\uc5d0 \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uad6c\ud604\ud560 \ub54c \ub2e4\ub8e8\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c \ud074\ub798\uc2a4 \uc0dd\uc131\uc790\uac00 \uc5b4\ub5bb\uac8c \uc791\ub3d9\ud558\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">constructor()\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0this._database =\u00a0new\u00a0CouchBaseModule.Couchbase(this.DATABASE_NAME);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0this._userSettingsDocument =\u00a0this._database.getDocument(this.USER_SETTINGS_DOC_ID);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0if\u00a0(!this._userSettingsDocument)\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0console.log(\"Document does not exist yet :)\");\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0this._userSettingsObj =\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0username:\u00a0\"\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0email:\u00a0\"\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0fullname:\u00a0\"\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0}\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0this._database.createDocument(this._userSettingsObj,\u00a0this.USER_SETTINGS_DOC_ID);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0this._userSettingsDocument =\u00a0this._database.getDocument(this.USER_SETTINGS_DOC_ID);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0}\r\n\r\n\u00a0 \u00a0}\r\n\r\n<\/pre>\n<p>\ub2e4\uc2dc \ud55c \ubc88 \uc0dd\uc131\uc790\uc5d0\uc11c \uc5b4\ub5a4 \uc77c\uc774 \uc77c\uc5b4\ub098\uace0 \uc788\ub294\uc9c0 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>this._database = \uc0c8 CouchBaseModule.Couchbase(this.DATABASE_NAME);<\/p>\n<p>\uc5ec\uae30\uc11c\ub294 Couchbase\ub97c \uc778\uc2a4\ud134\uc2a4\ud654\ud558\uace0 \uc5b4\ub5a4 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud560\uc9c0 \uc54c\ub824\uc90d\ub2c8\ub2e4.<\/p>\n<p>\uc774._\uc0ac\uc6a9\uc790\uc124\uc815\ubb38\uc11c = \uc774._\ub370\uc774\ud130\ubca0\uc774\uc2a4.get\ubb38\uc11c(\uc774.USER_SETTINGS_DOC_ID);<\/p>\n<p>\uc774 \uc904\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \ubb38\uc11c(\uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ub370 \uc0ac\uc6a9\ud558\ub294 \uceec\ub809\uc158)\ub97c \uac00\uc838\uc624\ub77c\uace0 \uc9c0\uc2dc\ud569\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">\u00a0if\u00a0(!this._userSettingsDocument)\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0console.log(\"Document does not exist yet :)\");\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0this._userSettingsObj =\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0username:\u00a0\"\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0email:\u00a0\"\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0fullname:\u00a0\"\",\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0}\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0this._database.createDocument(this._userSettingsObj,\u00a0this.USER_SETTINGS_DOC_ID);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0this._userSettingsDocument =\u00a0this._database.getDocument(this.USER_SETTINGS_DOC_ID);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0}<\/pre>\n<p>&nbsp;<\/p>\n<p>\ubb38\uc11c\uac00 \uc544\uc9c1 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0(\uc608: \ucc98\uc74c \uc791\uc131\ud558\ub294 \uacbd\uc6b0) UserSettings \uc720\ud615\uc758 \ube48 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0 \uc0c8 \ubb38\uc11c\ub3c4 \uc0dd\uc131\ud569\ub2c8\ub2e4. createDocument \ud568\uc218\uc5d0 \ud560\ub2f9\ud558\ub294 \ub450 \ubc88\uc9f8 \ub9e4\uac1c\ubcc0\uc218\ub294 \ubb38\uc11c\uc758 ID\uc785\ub2c8\ub2e4. \uc774 \ub9e4\uac1c \ubcc0\uc218\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\uc73c\uba74 Couchbase\uac00 \uc790\ub3d9\uc73c\ub85c \ubb38\uc11c\uc5d0 UUID\ub97c \ud560\ub2f9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba4b\uc9c0\ub124\uc694! \uc0dd\uc131\uc790\uac00 \uc644\uc131\ub418\uc5c8\uc73c\ub2c8 \uc774\uc81c \uc0ac\uc6a9\uc790\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc124\uc815\ud558\uace0 \uac80\uc0c9\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubd05\uc2dc\ub2e4.<\/p>\n<p>\uc774\ub97c \uc704\ud574 \uba87 \uac00\uc9c0 \uac8c\ud130\uc640 \uc138\ud130\ub97c \uc124\uc815\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true\">\/*====== USERNAME GETTER AND SETTER ======*\/\r\n\r\n\u00a0 \u00a0get\u00a0username():\u00a0string\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0this._userSettingsObj =\u00a0this._database.getDocument(this.USER_SETTINGS_DOC_ID\r\n\r\n);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0let username =\u00a0this._userSettingsObj.username;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0return\u00a0username;\r\n\r\n\u00a0 \u00a0}\r\n\r\n\u00a0 \u00a0set\u00a0username(value:\u00a0string)\u00a0{\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0this._userSettingsObj =\u00a0this._database.getDocument(this.USER_SETTINGS_DOC_ID\r\n\r\n);\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0this._userSettingsObj.username =\u00a0value;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0this._database.updateDocument(this.USER_SETTINGS_DOC_ID\r\n\r\n,\u00a0this._userSettingsObj);\r\n\r\n\u00a0 \u00a0}<\/pre>\n<p>\ud3c9\uc18c\ucc98\ub7fc \ucf54\ub4dc\ub97c \uc138\ubd84\ud654\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac8c\ud130\uc5d0\uc11c\ub294 \uc138 \uac00\uc9c0 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4:<\/p>\n<p>1) \ubb38\uc11c\uc5d0\uc11c \uac1d\uccb4\ub85c \ub370\uc774\ud130\ub97c \uc77d\uc2b5\ub2c8\ub2e4.<\/p>\n<p>2) \uc6d0\ud558\ub294 \uac12(\uc774 \uacbd\uc6b0 \uc0ac\uc6a9\uc790 \uc774\ub984)\uc744 \uac00\uc838\uc635\ub2c8\ub2e4.<\/p>\n<p>3) \ubc18\ud658<\/p>\n<p>\uac04\ud3b8\ud568 :)<\/p>\n<p>\uc138\ud130\uc5d0\uc11c\ub294 \ub2e4\uc74c\uc744 \uc218\ud589\ud569\ub2c8\ub2e4:<\/p>\n<p>1) \uc0ac\uc6a9\uc790 \uc124\uc815 \uc624\ube0c\uc81d\ud2b8\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc744 DB\uc5d0\uc11c \uc77d\uc5b4\uc635\ub2c8\ub2e4.<\/p>\n<p>2) \uc0ac\uc6a9\uc790 \uc774\ub984 \uc18d\uc131\uc744 \ud568\uc218\uc5d0 \uc804\ub2ec\ub41c \uac12\uc73c\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>3) \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ubb38\uc11c\ub97c \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\ub2e4. createDocument \ud568\uc218\uc640 \ub2ec\ub9ac \uccab \ubc88\uc9f8 \ub9e4\uac1c\ubcc0\uc218\ub294 \ubb38\uc11c\uc758 ID\uc774\uace0 \ub450 \ubc88\uc9f8 \ub9e4\uac1c\ubcc0\uc218\ub294 \uac1d\uccb4 \uc790\uccb4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7f0\ub370... \uc65c \uba3c\uc800 getDocument\uac00 \ud544\uc694\ud560\uae4c\uc694? \uadf8\ub0e5 \uac1d\uccb4\ub85c \ubb38\uc11c\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uba74 \uc548 \ub420\uae4c\uc694?<\/p>\n<p>\ubb3c\uc5b4\ubd10 \uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4!<\/p>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c \ubb38\uc11c\ub97c \uc5c5\ub370\uc774\ud2b8\ud560 \ub54c\ub9c8\ub2e4 Couchbase\ub294 \ubcc0\uacbd \uc0ac\ud56d\uc744 \ucd94\uc801\ud569\ub2c8\ub2e4. \uac01 \ubb38\uc11c\uc5d0\ub294 _rev \uc18d\uc131\uc774 \uc788\uc73c\uba70, \uc774 \uac12\uc740 \ubb38\uc11c\uc5d0 \ub300\ud55c \uc4f0\uae30 \uc791\uc5c5\uc774 \uc218\ud589\ub420 \ub54c\ub9c8\ub2e4 Couchbase\uc5d0 \uc758\ud574 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4. \uc774\uc804 _rev\ub85c \ubb38\uc11c\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\ub824\uace0 \ud558\uba74 Couchbase\ub294 \uc774\ub97c \uac70\ubd80\ud569\ub2c8\ub2e4.<\/p>\n<p><strong>\uc2f1\uae00\ud1a4 \ud328\ud134<\/strong><\/p>\n<p>\ub514\uc790\uc778 \ud328\ud134\uc744 \uc88b\uc544\ud558\uc9c0 \uc54a\ub294 \uc0ac\ub78c\uc774 \uc788\uc744\uae4c\uc694? \uc624\ub298\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uc9c0\ub9cc \ud6a8\uacfc\uc801\uc778 \uc2f1\uae00\ud1a4\uc744 \uad6c\ud604\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc62c\ubc14\ub974\uac8c \uad6c\ud604\ud558\uba74 \"\uc2f1\uae00\ud1a4 \ud328\ud134\uc740 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Instantiation_(computer_science)\" target=\"_blank\" rel=\"noopener noreferrer\">\uc778\uc2a4\ud134\uc2a4\ud654<\/a>\u00a0\uc758 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Class_(computer_programming)\" target=\"_blank\" rel=\"noopener noreferrer\">\ud074\ub798\uc2a4<\/a>\u00a0\uc5d0 \ud558\ub098 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Object_(computer_science)\" target=\"_blank\" rel=\"noopener noreferrer\">\uac1d\uccb4<\/a>. \uc774\ub294 \uc2dc\uc2a4\ud15c \uc804\uccb4\uc5d0\uc11c \uc791\uc5c5\uc744 \uc870\uc815\ud558\ub294 \ub370 \uc815\ud655\ud788 \ud558\ub098\uc758 \uac1d\uccb4\uac00 \ud544\uc694\ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4.\" \ubc14\ub85c \uc6b0\ub9ac\uc758 \uacbd\uc6b0\uc785\ub2c8\ub2e4.<\/p>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c \ud074\ub798\uc2a4\uc758 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc77d\uae30 \ubc0f \uc4f0\uae30 \uc778\uc2a4\ud134\uc2a4\ub294 \ud55c \uac1c\ub9cc \ubcf4\uc720\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n<p>\uc5b4\ub5bb\uac8c \ud560 \uc218 \uc788\uc744\uae4c\uc694? \uac04\ub2e8\ud55c \ubc29\ubc95\uc740 \ub2e4\uc74c \ub450 \ub2e8\uacc4\ub97c \ub530\ub974\ub294 \uac83\uc785\ub2c8\ub2e4:<\/p>\n<p>1) \uc0dd\uc131\uc790\ub97c \ube44\uacf5\uac1c\ub85c \uc124\uc815(TS 2.0\uc5d0 \ub3c4\uc785)<\/p>\n<p>2) \uc778\uc2a4\ud134\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \ud604\uc7ac \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud558\uace0, \uccab \ubc88\uc9f8 \ud638\ucd9c\uc778 \uacbd\uc6b0 \uc0c8 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud558\ub294 getInstance \uba54\uc11c\ub4dc \uad6c\ud604\ud558\uae30<\/p>\n<p>1\ub2e8\uacc4:<\/p>\n<pre class=\"lang:default decode:true\">private\u00a0constructor()\u00a0{....}\r\n\r\n<\/pre>\n<p>2\ub2e8\uacc4:<\/p>\n<p>\uc774\uc81c \ub2e4\uc74c\uacfc \uac19\uc774 getInstance() \uba54\uc11c\ub4dc\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">public\u00a0static\u00a0getInstance()\u00a0:UserSettings{\r\n\r\n\u00a0 \u00a0if(!this._instance){\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 this._instance =\u00a0new\u00a0UserSettings();\r\n\r\n\u00a0 \u00a0 }\r\n\r\nreturn\u00a0this._instance;\r\n\r\n}\r\n\r\n<\/pre>\n<p>\ud6cc\ub96d\ud569\ub2c8\ub2e4! \ub370\uc774\ud130\ub97c \ucd94\uc0c1\ud654\ud558\uace0 \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uad6c\ud604\ud588\uc73c\ub2c8 \uc774\uc81c \uba4b\uc9c4 \uc0c8 UserSettings \ud074\ub798\uc2a4\ub97c \uc5b4\ub5bb\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294\uc9c0 \uc0b4\ud3b4\ubd05\uc2dc\ub2e4.<\/p>\n<p>\uae30\uc874 main-page.xml \ubc0f main-page.ts \ud30c\uc77c\uc744 \ud3b8\uc9d1\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \uba87 \uac00\uc9c0 \uae30\ubcf8 UI \ub808\uc774\uc544\uc6c3\uc744 \uc815\uc758\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \ub370\ubaa8\uc5d0\uc11c\ub294 \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \ubc1b\ub294 \ud14d\uc2a4\ud2b8 \ud544\ub4dc, \uac12\uc744 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ud558\ub294 \ubc84\ud2bc, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \ud604\uc7ac \uac12\uc744 \ud45c\uc2dc\ud558\ub294 \ub808\uc774\ube14\uc744 \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \ubcf4\uc2dc\ub2e4\uc2dc\ud53c, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub370\uc774\ud130\uac00 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \ub808\uc774\ube14\uc740 \ub2e8\uc21c\ud788 \"\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ub41c \ub370\uc774\ud130 \uc5c6\uc74c\"\uc744 \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba54\uc778 \ud398\uc774\uc9c0.xml \ud30c\uc77c\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \ubaa8\uc2b5\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">&lt;Page xmlns=\"https:\/\/schemas.nativescript.org\/tns.xsd\" navigatingTo=\"navigatingTo\"&gt;\r\n\r\n\u00a0 \u00a0 &lt;Page.actionBar&gt;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;ActionBar title=\"My App\" icon=\"\" class=\"action-bar\"&gt;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/ActionBar&gt;\r\n\r\n\u00a0 \u00a0 &lt;\/Page.actionBar&gt;\r\n\r\n\u00a0 \u00a0 &lt;StackLayout&gt;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;TextField hint=\"username\" text=\"{{ username }}\" \/&gt;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;Button text=\"SAVE MY USERNAME\" tap=\"onTap\" class=\"btn btn-primary btn-active\"\/&gt;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;Label text=\"{{ dbusername || 'no data stored in the db' }}\" textWrap=\"true\"\/&gt;\r\n\r\n\u00a0 \u00a0 &lt;\/StackLayout&gt;\r\n\r\n&lt;\/Page&gt;\r\n\r\n<\/pre>\n<p>\uc644\ub8cc! \uc774\uc81c \uae30\ubcf8 \ub808\uc774\uc544\uc6c3\uc774 \uc644\uc131\ub418\uc5c8\uc73c\ub2c8 UI\uc5d0 \uba87 \uac00\uc9c0 \ub85c\uc9c1\uc744 \ucd94\uac00\ud558\uc5ec \uacc4\uc18d \uc9c4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uba54\uc778 \ud398\uc774\uc9c0.ts \ud30c\uc77c\uc758 \ubaa8\uc2b5\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">import\u00a0{\u00a0Observable\u00a0}\u00a0from\u00a0'data\/observable'; \/\/bind data to our view\r\n\r\nimport\u00a0{\u00a0UserSettings\u00a0}\u00a0from\u00a0'.\/UserSettings'; \/\/woohoo our amazing database interaction layer\r\n\r\nimport\u00a0{\u00a0EventData\u00a0}\u00a0from\u00a0'data\/observable'; \/\/use with typescript for intellisense\r\n\r\nimport\u00a0{\u00a0Page\u00a0}\u00a0from\u00a0'ui\/page'; \/\/use with typescript for intellisense\r\n\r\nlet userSettings =\u00a0UserSettings.getInstance();\r\n\r\nlet mainPageViewModel;\r\n\r\nclass\u00a0MainPageViewModel\u00a0extends\u00a0Observable{\r\n\r\n\u00a0 \u00a0 public\u00a0username;\r\n\r\n\u00a0 \u00a0 public\u00a0dbusername\r\n\r\n\u00a0 \u00a0 constructor(){\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 super();\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 this.dbusername =\u00a0userSettings.username;\r\n\r\n\u00a0 \u00a0 }\r\n\r\n}\r\n\r\nexport\u00a0function\u00a0navigatingTo(args:\u00a0EventData)\u00a0{\r\n\r\n\u00a0 \u00a0 let page =\u00a0&lt;Page&gt;args.object;\r\n\r\n\u00a0 \u00a0 mainPageViewModel =\u00a0new\u00a0MainPageViewModel();\r\n\r\n\u00a0 \u00a0 page.bindingContext =\u00a0mainPageViewModel;\r\n\r\n}\r\n\r\nexport\u00a0function\u00a0onTap(){\r\n\r\n\u00a0 \u00a0 userSettings.username =\u00a0mainPageViewModel.username;\r\n\r\n\u00a0 \u00a0 mainPageViewModel.set(\"dbusername\",userSettings.username);\r\n\r\n}\r\n\r\n<\/pre>\n<p>\ubb34\uc2a8 \uc77c\uc744 \ud588\ub098\uc694? \uccab \ubc88\uc9f8 \uc904\uc5d0\uc11c\ub294 \ubaa8\ub4c8\uc758 \uae30\ub2a5\uc744 \ud655\uc778\ud558\uae30 \uc704\ud574 \uc8fc\uc11d\uc744 \ud655\uc778\ud558\uba74\uc11c \uc5ec\ub7ec \uac00\uc9c0\ub97c \uac00\uc838\uc654\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc740<\/p>\n<pre class=\"lang:default decode:true\">let userSettings =\u00a0UserSettings.getInstance();\r\n\r\n<\/pre>\n<p>\uc774\uac83\uc774 UserSettings \ud074\ub798\uc2a4 \uc778\uc2a4\ud134\uc2a4\ub97c \ud655\ubcf4\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc5b4\uc11c \ub610 \ub2e4\ub978 \uc18c\uaddc\ubaa8 \uc218\uc5c5\uc744 \uc120\uc5b8\ud588\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">class\u00a0MainPageViewModel\u00a0extends\u00a0Observable{\r\n\r\n\u00a0 \u00a0 public\u00a0username;\r\n\r\n\u00a0 \u00a0 public\u00a0dbusername\r\n\r\n\u00a0 \u00a0 constructor(){\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 super();\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 this.dbusername =\u00a0userSettings.username;\r\n\r\n\u00a0 \u00a0 }\r\n\r\n}\r\n\r\n<\/pre>\n<p>\ubcf4\uc2dc\ub2e4\uc2dc\ud53c \uba54\uc778 \ud398\uc774\uc9c0 \ubdf0 \ubaa8\ub378\uc740 \uc635\uc800\ubc84\ube14 \ud074\ub798\uc2a4\ub97c \ud655\uc7a5\ud569\ub2c8\ub2e4. \uc635\uc800\ubc84\ube14\uc5d0 \uc775\uc219\ud558\uc9c0 \uc54a\ub2e4\uba74 \uae30\ubcf8\uc801\uc73c\ub85c \uc18d\uc131 \uc911 \ud558\ub098\uac00 \ubcc0\uacbd\ub418\uba74 \uc54c\ub9bc\uc744 \ud2b8\ub9ac\uac70\ud558\ub294 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uac1d\uccb4\ub77c\ub294 \uac83\uc744 \uc54c\uace0 \uacc4\uc2e4 \uac83\uc785\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc744 \ucc38\uc870\ud558\uc138\uc694. <u><a href=\"https:\/\/docs.nativescript.org\/cookbook\/data\/observable\" target=\"_blank\" rel=\"noopener noreferrer\">\uc5ec\uae30<\/a><\/u>.<\/p>\n<p>\ubdf0 \ubaa8\ub378\uc5d0\ub294 \ud14d\uc2a4\ud2b8 \ud544\ub4dc\uc5d0 \ubc14\uc778\ub529\ud55c username\uacfc \ub808\uc774\ube14\uc5d0 \ubc14\uc778\ub529\ud55c dbusername\uc774\ub77c\ub294 \ub450 \uac00\uc9c0 \ud504\ub85c\ud37c\ud2f0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud074\ub798\uc2a4\uc758 \uc0c8 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud560 \ub54c\ub9c8\ub2e4 \uc0ac\uc6a9\uc790 \uc124\uc815 \uc778\uc2a4\ud134\uc2a4\uc5d0 \uc788\ub294 \uac12\uc744 dbusername\uc5d0 \ud560\ub2f9\ud558\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc77d\uc2b5\ub2c8\ub2e4(get username() \uac8c\ud130 \uba54\uc11c\ub4dc\ub97c \uae30\uc5b5\ud558\uc2dc\ub098\uc694?).<\/p>\n<pre class=\"lang:default decode:true\">export\u00a0function\u00a0navigatingTo(args:\u00a0EventData)\u00a0{\r\n\r\n\u00a0 \u00a0 let page =\u00a0&lt;Page&gt;args.object;\r\n\r\n\u00a0 \u00a0 mainPageViewModel =\u00a0new\u00a0MainPageViewModel();\r\n\r\n\u00a0 \u00a0 page.bindingContext =\u00a0mainPageViewModel;\r\n\r\n}<\/pre>\n<p>\uc774 \ud568\uc218\ub294 \ud398\uc774\uc9c0\ub85c \uc774\ub3d9\ud560 \ub54c\ub9c8\ub2e4 \ud638\ucd9c\ub429\ub2c8\ub2e4. \uba54\uc778\ud398\uc774\uc9c0\ubdf0\ubaa8\ub378 \ud074\ub798\uc2a4\ub97c \uc778\uc2a4\ud134\uc2a4\ud654\ud558\uc5ec \uba54\uc778\ud398\uc774\uc9c0\ubdf0\ubaa8\ub378 \ubcc0\uc218\uc5d0 \ud560\ub2f9\ud558\uace0 \uc774\ub97c \ud398\uc774\uc9c0\uc5d0 \ubc14\uc778\ub529\ud569\ub2c8\ub2e4. \uc544\uc8fc \uac04\ub2e8\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ubc84\ud2bc \ud074\ub9ad\uc5d0 \ub300\ud55c \ub3d9\uc791\uc744 \uc815\uc758\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">export\u00a0function\u00a0onTap(){\r\n\r\n\u00a0 \u00a0 userSettings.username =\u00a0mainPageViewModel.username;\r\n\r\n\u00a0 \u00a0 mainPageViewModel.set(\"dbusername\",userSettings.username);\r\n\r\n}<\/pre>\n<p>\ub2e4\uc2dc \ud55c \ubc88 \uc544\uc8fc \uac04\ub2e8\ud569\ub2c8\ub2e4: \ud14d\uc2a4\ud2b8 \ud544\ub4dc\uc5d0 \uc788\ub294 \uac12\uc744 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc4f0\uace0(mainPageViewModel.username\uc740 \ud14d\uc2a4\ud2b8 \ud544\ub4dc\uc5d0 \ubc14\uc778\ub529\ub418\uc5b4 \uc788\uc74c), \ub77c\ubca8\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\uae30 \uc704\ud574 dbusername\uc758 \uac12\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\uba74 \ub429\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\uac00 \ucc9c \ub9c8\ub514 \ub9d0\ubcf4\ub2e4 \ub354 \ud6a8\uacfc\uc801\uc774\ub2c8, \uc5ec\uae30 GIF\uac00 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5669 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/ezgif-2-b128d6c35c-compressor.gif\" alt=\"\" width=\"480\" height=\"768\" \/><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/community\/community-writers-program\/\"><em>\uc774 \uac8c\uc2dc\ubb3c\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucee4\ubba4\ub2c8\ud2f0 \uae00\uc4f0\uae30 \ud504\ub85c\uadf8\ub7a8\uc758 \uc77c\ubd80\uc785\ub2c8\ub2e4.<\/em><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub294 \uc571 \ub0b4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ubcf4\uc874\ud560 \uc218 \uc788\ub294 \ud6cc\ub96d\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4. \ub4e4\uc5b4\ubcf8 \uc801\uc774 \uc5c6\ub2e4\uba74, \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \ubb38\uc11c \uac1c\uccb4 \uc800\uc7a5\uc18c\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8-\uc575\uade4\ub7ec\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 \uc2dc\uc791\ud558\ub294 \ubc29\ubc95\uacfc \uace0\uae09 \uae30\ub2a5\uc5d0 \ub300\ud55c \ud6cc\ub96d\ud55c \ud29c\ud1a0\ub9ac\uc5bc\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 \ud0c0\uc785\uc2a4\ud06c\ub9bd\ud2b8\uac00 \ud3ec\ud568\ub41c \ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd94\uaca0\uc2b5\ub2c8\ub2e4.<\/p>","protected":false},"author":53,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1821,1816,1819],"tags":[1589],"ppma_author":[9026],"class_list":["post-3673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-couchbase-architecture","category-couchbase-server","category-data-modeling","tag-nativescript"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Persist and Abstract Data in a Nativescript Typescript Application - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/persist-abstract-data-nativescript-typescript-application\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Persist and Abstract Data in a Nativescript Typescript Application\" \/>\n<meta property=\"og:description\" content=\"Couchbase is a great tool to persist data inside our app. If you haven\u2019t heard of it, it\u2019s a document object storage that allows you to save your data.  If you are using NativeScript-Angular, there are already some great tutorials on how to get started and some more advanced features. In this article we\u2019ll focus on NativeScript with TypeScript.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/persist-abstract-data-nativescript-typescript-application\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-05T09:03:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T09:15:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/AaronUllal-300x200.png\" \/>\n<meta name=\"author\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/\"},\"author\":{\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\"},\"headline\":\"Persist and Abstract Data in a Nativescript Typescript Application\",\"datePublished\":\"2017-06-05T09:03:15+00:00\",\"dateModified\":\"2023-06-19T09:15:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/\"},\"wordCount\":1443,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"nativescript\"],\"articleSection\":[\"Application Design\",\"Couchbase Architecture\",\"Couchbase Server\",\"Data Modeling\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/\",\"name\":\"Persist and Abstract Data in a Nativescript Typescript Application - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-06-05T09:03:15+00:00\",\"dateModified\":\"2023-06-19T09:15:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Persist and Abstract Data in a Nativescript Typescript Application\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\",\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"caption\":\"Laura Czajkowski, Developer Community Manager, Couchbase\"},\"description\":\"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/laura-czajkowski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Persist and Abstract Data in a Nativescript Typescript Application - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/persist-abstract-data-nativescript-typescript-application\/","og_locale":"ko_KR","og_type":"article","og_title":"Persist and Abstract Data in a Nativescript Typescript Application","og_description":"Couchbase is a great tool to persist data inside our app. If you haven\u2019t heard of it, it\u2019s a document object storage that allows you to save your data.  If you are using NativeScript-Angular, there are already some great tutorials on how to get started and some more advanced features. In this article we\u2019ll focus on NativeScript with TypeScript.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/persist-abstract-data-nativescript-typescript-application\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-06-05T09:03:15+00:00","article_modified_time":"2023-06-19T09:15:21+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/06\/AaronUllal-300x200.png","type":"","width":"","height":""}],"author":"Laura Czajkowski, Developer Community Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Laura Czajkowski, Developer Community Manager, Couchbase","Est. reading time":"8\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/"},"author":{"name":"Laura Czajkowski, Developer Community Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220"},"headline":"Persist and Abstract Data in a Nativescript Typescript Application","datePublished":"2017-06-05T09:03:15+00:00","dateModified":"2023-06-19T09:15:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/"},"wordCount":1443,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["nativescript"],"articleSection":["Application Design","Couchbase Architecture","Couchbase Server","Data Modeling"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/","url":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/","name":"Persist and Abstract Data in a Nativescript Typescript Application - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-06-05T09:03:15+00:00","dateModified":"2023-06-19T09:15:21+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/persist-abstract-data-nativescript-typescript-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Persist and Abstract Data in a Nativescript Typescript Application"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220","name":"Laura Czajkowski, \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409","url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","caption":"Laura Czajkowski, Developer Community Manager, Couchbase"},"description":"\ub85c\ub77c \ucc60\ucf54\ube0c\uc2a4\ud0a4\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 Snr. \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0 \ub9e4\ub2c8\uc800\ub85c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ucee4\ubba4\ub2c8\ud2f0\ub97c \ucd1d\uad04\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub140\ub294 \uc6d4\uac04 \uac1c\ubc1c\uc790 \ub274\uc2a4\ub808\ud130\ub97c \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/laura-czajkowski\/"}]}},"authors":[{"term_id":9026,"user_id":53,"is_guest":0,"slug":"laura-czajkowski","display_name":"Laura Czajkowski, Developer Community Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","author_category":"","last_name":"Czajkowski","first_name":"Laura","job_title":"","user_url":"","description":"\ub85c\ub77c \ucc60\ucf54\ube0c\uc2a4\ud0a4\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 Snr. \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0 \ub9e4\ub2c8\uc800\ub85c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ucee4\ubba4\ub2c8\ud2f0\ub97c \ucd1d\uad04\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub140\ub294 \uc6d4\uac04 \uac1c\ubc1c\uc790 \ub274\uc2a4\ub808\ud130\ub97c \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=3673"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3673\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=3673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=3673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=3673"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=3673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}