{"id":3885,"date":"2017-08-15T07:00:49","date_gmt":"2017-08-15T14:00:49","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3885"},"modified":"2025-06-13T20:15:11","modified_gmt":"2025-06-14T03:15:11","slug":"bringing-user-profile-store-mobile-nativescript-angular","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/bringing-user-profile-store-mobile-nativescript-angular\/","title":{"rendered":"\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8 \ubc0f Angular\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4\ub97c \ubaa8\ubc14\uc77c\ub85c \uac00\uc838\uc624\uae30"},"content":{"rendered":"<p>\uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \uc800\uc7a5\uc18c\uc758 \uacbd\ub85c\ub97c \uacc4\uc18d \ub530\ub77c\uac00\uba74\uc11c \uc774\uc804\uc5d0 \ubcf4\uc558\ub358 \uac83\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/creating-user-profile-store-with-node-js-nosql-database\/\" target=\"_blank\" rel=\"noopener\">Node.js \ubc0f Couchbase NoSQL\ub85c \ub9cc\ub4dc\ub294 \ubc29\ubc95<\/a> \ubfd0\ub9cc \uc544\ub2c8\ub77c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/creating-front-end-user-profile-store-angular-typescript\/\" target=\"_blank\" rel=\"noopener\">\uc6f9 \ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub7f0\ud2b8\uc5d4\ub4dc\uc5d0 \ub300\ud55c \uc575\uade4\ub7ec\ub97c \uc0ac\uc6a9\ud558\uc5ec<\/a>. \uc774\ub97c \ud604\uc7ac \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud45c\uc900\uc778 \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc73c\ub85c \uac00\uc838\uac00\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c\uc694?<\/p>\n<p>\uc2dc\uc911\uc5d0\ub294 \ub2e4\uc591\ud55c \ubaa8\ubc14\uc77c \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uc788\uc73c\uba70, \uc6b4 \uc88b\uac8c\ub3c4 \uc774\uc804 \uc608\uc81c\uc5d0\uc11c \uc0ac\uc6a9\ud588\ub358 Angular\ub97c \uc9c0\uc6d0\ud558\ub294 \ud504\ub808\uc784\uc6cc\ud06c\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc81c \ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub860\ud2b8\uc5d4\ub4dc\ub97c \ubaa8\ubc14\uc77c\ub85c \ubcc0\ud658\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.nativescript.org\" target=\"_blank\" rel=\"noopener\">\ub124\uc774\ud2f0\ube0c \uc2a4\ud06c\ub9bd\ud2b8<\/a> \ubc0f Angular.<\/p>\n<p><!--more--><\/p>\n<p>\uacc4\uc18d \uc9c4\ud589\ud558\uae30 \uc804\uc5d0 \uc774\uc804 \ud29c\ud1a0\ub9ac\uc5bc \ub450 \uac1c\ub97c \ubaa8\ub450 \uc644\ub8cc\ud588\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/creating-user-profile-store-with-node-js-nosql-database\/\" target=\"_blank\" rel=\"noopener\">\ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4 \ubc31\uc5d4\ub4dc \ub9cc\ub4e4\uae30<\/a> \ub97c \ucf1c\uace0 \ub2e4\ub978 \ud558\ub098\ub294 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/creating-front-end-user-profile-store-angular-typescript\/\" target=\"_blank\" rel=\"noopener\">\ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4 \uc6f9 \ud504\ub7f0\ud2b8\uc5d4\ub4dc \ub9cc\ub4e4\uae30<\/a>. \ub610\ud55c \uac1c\ubc1c \ud658\uacbd\uc774 Android, iOS \ub610\ub294 \ub458 \ub2e4 \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \uc704\ud574 \uad6c\uc131\ub41c \uc18d\uc131\uc774\ub77c\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3887 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/07\/ns-angular-profile-store.gif\" alt=\"NativeScript with Couchbase Profile Store\" width=\"1100\" height=\"709\" \/><\/p>\n<p>\uc774 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc774\ubca4\ud2b8 \ud750\ub984\uc740 \uc6f9 \ubc84\uc804\uc5d0\uc11c \ubcf8 \uac83\uacfc \uc77c\uce58\ud569\ub2c8\ub2e4.<\/p>\n<h2>Angular \ud504\ub85c\uc81d\ud2b8\ub85c \uc0c8 \ub124\uc774\ud2f0\ube0c \uc2a4\ud06c\ub9bd\ud2b8 \ub9cc\ub4e4\uae30<\/h2>\n<p>NativeScript CLI\ub97c \uc124\uce58 \ubc0f \uad6c\uc131\ud588\ub2e4\uace0 \uac00\uc815\ud558\uace0 \ub2e4\uc74c\uc744 \uc2e4\ud589\ud558\uc5ec \uc0c8 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4ed\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">tns create profile-project-ns --ng<\/pre>\n<p>\uadf8\ub9ac\uace0 <code>--ng<\/code> \ud50c\ub798\uadf8\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc911\uc694\ud55c \uc774\uc720\ub294 NativeScript Core \ud504\ub85c\uc81d\ud2b8\uac00 \uc544\ub2cc Angular \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud55c\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/p>\n<p>\ud604\uc7ac\ub85c\uc11c\ub294 NativeScript CLI\ub294 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc0dd\uc131\ud558\ub294 Angular CLI \uae30\ub2a5\uc744 \uacf5\uc720\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uac01 HTML \ubc0f TypeScript \ud30c\uc77c\uc744 \uc218\ub3d9\uc73c\ub85c \uc0dd\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>Mac \ub610\ub294 Linux\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 NativeScript \ud504\ub85c\uc81d\ud2b8 \ub0b4\uc5d0\uc11c \ub2e4\uc74c\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">mkdir -p app\/login\r\nmkdir -p app\/register\r\nmkdir -p app\/blogs\r\nmkdir -p app\/blog\r\napp\/login\/login.component.html \ud130\uce58\r\n\uc571\/\ub85c\uadf8\uc778\/\ub85c\uadf8\uc778.component.ts \ud130\uce58\r\n\uc571\/\ub4f1\ub85d\/\ub4f1\ub85d \ucef4\ud3ec\ub10c\ud2b8.html \ud130\uce58\r\n\ud130\uce58 \uc571\/\ub4f1\ub85d\/\ub4f1\ub85d \ucef4\ud3ec\ub10c\ud2b8.ts\r\n\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8.html \ud130\uce58\r\n\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8.ts \ud130\uce58\r\n\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8.html \ud130\uce58\r\n\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8.ts \ud130\uce58<\/pre>\n<p>Windows\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 \ud574\ub2f9 \ub514\ub809\ud130\ub9ac\uc640 \ud30c\uc77c\uc744 \uc218\ub3d9\uc73c\ub85c \ub9cc\ub4e4\uba74 \ub429\ub2c8\ub2e4. \uc815\ub9d0\ub85c \uc6d0\ud55c\ub2e4\uba74 \uc6f9 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uc774\ub7ec\ud55c \ub514\ub809\ud1a0\ub9ac\uc640 \ud30c\uc77c\uc744 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/creating-front-end-user-profile-store-angular-typescript\/\" target=\"_blank\" rel=\"noopener\">\uc774\uc804 \ud29c\ud1a0\ub9ac\uc5bc<\/a>.<\/p>\n<h2>\uac01 \ud654\uba74\uc744 \ud45c\ud604\ud560 \ucef4\ud3ec\ub10c\ud2b8 \uc815\uc758\ud558\uae30<\/h2>\n<p>\uc6f9 \ubc84\uc804\uacfc \uac19\uc740 \ubc29\ud5a5\uc5d0\uc11c \uc2dc\uc791\ud558\uc5ec \uc0ac\uc6a9\uc790 \ub85c\uadf8\uc778\uc5d0 \uc911\uc810\uc744 \ub450\uaca0\uc2b5\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>app\/login\/login.component.ts<\/strong> \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c \ucf54\ub4dc\ub97c \ud3ec\ud568\ud558\uc138\uc694:<\/p>\n<pre class=\"lang:default decode:true\">'@angular\/core'\uc5d0\uc11c { Component }\ub97c \uac00\uc838\uc635\ub2c8\ub2e4;\r\n'@angular\/http'\uc5d0\uc11c { Http, Headers, RequestOptions }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"@angular\/router\"\uc5d0\uc11c { \ub77c\uc6b0\ud130 }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"rxjs\/Rx\" \uc784\ud3ec\ud2b8;\r\n\r\n\ucef4\ud3ec\ub10c\ud2b8({\r\n    moduleId: module.id,\r\n    selector: 'app-login',\r\n    templateUrl: '.\/login.component.html'\r\n})\r\n\ub0b4\ubcf4\ub0b4\uae30 \ud074\ub798\uc2a4 LoginComponent {\r\n\r\n    \uacf5\uac1c \uc785\ub825: any;\r\n\r\n    constructor(private http: Http, private router: Router) {\r\n        this.input = {\r\n            \"\uc774\uba54\uc77c\": \"\",\r\n            \"password\": \"\"\r\n        };\r\n    }\r\n\r\n    public login() {\r\n        if(this.input.email &amp;&amp; this.input.password) {\r\n            let headers = new Headers({ \"content-type\": \"application\/json\" });\r\n            let options = new RequestOptions({ headers: headers });\r\n            this.http.post(\"https:\/\/localhost:3000\/login\", JSON.stringify(this.input), options)\r\n                .map(result =&gt; result.json())\r\n                .subscribe(result =&gt; {\r\n                    this.router.navigate([\"\/blogs\"], { \"queryParams\": result });\r\n                });\r\n        }\r\n    }\r\n\r\n}<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub294 \ub450 \uac00\uc9c0 \uc608\uc678\ub97c \uc81c\uc678\ud558\uace0 \uc6f9 \ubc84\uc804\uc5d0\uc11c \ubcf4\uc558\ub358 \ucf54\ub4dc\uc640 \ub3d9\uc77c\ud569\ub2c8\ub2e4. \ucef4\ud3ec\ub10c\ud2b8 \ub2e8\uc704\ub85c CSS \ud30c\uc77c\uc744 \ub9cc\ub4e4\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc5d0 CSS \ucc38\uc870\ub97c \uc81c\uac70\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c <code>moduleId<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0c1\ub300 \uacbd\ub85c\uac00 \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \uc791\ub3d9\ud560 \uc218 \uc788\ub3c4\ub85d \ud588\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \uac00\uc9c0 \ud56d\ubaa9\uc740 NativeScript\uc640\ub294 \uad00\ub828\uc774 \uc5c6\ub294 Angular \uad00\ub828 \ud56d\ubaa9\uc785\ub2c8\ub2e4.<\/p>\n<p>HTML\uc740 \uc0c1\ud669\uc774 \ub2ec\ub77c\uc9c0\ub294 \uacf3\uc785\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571 \ub85c\uadf8\uc778\/\ub85c\uadf8\uc778 \ucef4\ud3ec\ub10c\ud2b8.html<\/strong> \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c XML \ub9c8\ud06c\uc5c5\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\"><label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <button class=\"btn btn-primary\"><\/button>\r\n    \r\n    \r\n        <label class=\"text-center\"><\/label><\/pre>\n<p>\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8\uc5d0\ub294 UI\ub97c \uc704\ud55c \uc790\uccb4 \ub9c8\ud06c\uc5c5\uc774 \uc788\uc2b5\ub2c8\ub2e4. Angular\uc640 \ub3d9\uc77c\ud55c \uaddc\uce59\uc774 \uc801\uc6a9\ub418\uc9c0\ub9cc UI \ucef4\ud3ec\ub10c\ud2b8\ub97c \ub9cc\ub4dc\ub294 \ubc29\uc2dd\uc740 \uc57d\uac04 \ub2e4\ub985\ub2c8\ub2e4.<\/p>\n<p>\uc608\ub97c \ub4e4\uc5b4, \uc6b0\ub9ac\ub294 \uc5ec\uc804\ud788 <code>[(ngModel)]<\/code> \uc18d\uc131 \ub300\uc2e0 <code>div<\/code> \ud0dc\uadf8\uac00 \uc788\uc2b5\ub2c8\ub2e4. <code>\uc2a4\ud0dd \ub808\uc774\uc544\uc6c3<\/code> \ud0dc\uadf8.<\/p>\n<p>\uc774\uc81c \ub4f1\ub85d \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\ub4f1\ub85d\/\ub4f1\ub85d.component.ts<\/strong> \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c TypeScript\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">'@angular\/core'\uc5d0\uc11c { Component }\ub97c \uac00\uc838\uc635\ub2c8\ub2e4;\r\n'@angular\/http'\uc5d0\uc11c { Http, Headers, RequestOptions }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"@angular\/router\"\uc5d0\uc11c { \ub77c\uc6b0\ud130 }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"rxjs\/Rx\" \uc784\ud3ec\ud2b8;\r\n\r\n\ucef4\ud3ec\ub10c\ud2b8({\r\n    moduleId: module.id,\r\n    selector: 'app-register',\r\n    templateUrl: '.\/register.component.html'\r\n})\r\n\ub4f1\ub85d \ucef4\ud3ec\ub10c\ud2b8 \ud074\ub798\uc2a4 \ub0b4\ubcf4\ub0b4\uae30 {\r\n\r\n    \uacf5\uac1c \uc785\ub825: any;\r\n\r\n    public constructor(private http: Http, private router: Router) {\r\n        this.input = {\r\n            \"\uc774\ub984\": \"\",\r\n            \"\uc131\": \"\",\r\n            \"\uc774\uba54\uc77c\": \"\",\r\n            \"password\": \"\"\r\n        };\r\n    }\r\n\r\n    public register() {\r\n        if(this.input.email &amp;&amp; this.input.password) {\r\n            let headers = new Headers({ \"content-type\": \"application\/json\" });\r\n            let options = new RequestOptions({ headers: headers });\r\n            this.http.post(\"https:\/\/localhost:3000\/account\", JSON.stringify(this.input), options)\r\n                .map(result =&gt; result.json())\r\n                .subscribe(result =&gt; {\r\n                    this.router.navigate([\"\/login\"]);\r\n                });\r\n        }\r\n    }\r\n\r\n}<\/pre>\n<p>\ub2e4\uc2dc \ub9d0\ud558\uc9c0\ub9cc, \uc704 \ucf54\ub4dc\uc5d0\uc11c \uc774\uc804 \uc608\uc81c\uc640 \ube44\uad50\ud558\uc5ec \ubcc0\uacbd\ud55c \uc720\uc77c\ud55c \uc0ac\ud56d\uc740 CSS \uc81c\uac70\uc640 <code>moduleId<\/code> \ucd94\uac00.<\/p>\n<p>\ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \ub370 \uc788\uc5b4 \ub098\uc058\uc9c0 \uc54a\uc8e0?<\/p>\n<p>TypeScript \ub85c\uc9c1\uc744 \uad6c\ub3d9\ud558\ub294 UI\uc758 HTML\uc740\u00a0<strong>app\/register\/register.component.html<\/strong> \ud30c\uc77c\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\"><label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <button class=\"btn btn-primary\"><\/button>\r\n    \r\n    \r\n        <label class=\"text-center\"><\/label><\/pre>\n<p>\ub9c8\uc9c0\ub9c9 \ub450 \uac00\uc9c0 \uad6c\uc131 \uc694\uc18c\ub294 \uc6b0\ub9ac\uac00 \uc774\ubbf8 \uacbd\ud5d8\ud558\uace0 \uc788\ub294 \uac83\uacfc \ub2e4\ub974\uc9c0 \uc54a\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8.\ucef4\ud3ec\ub10c\ud2b8.ts<\/strong> \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c TypeScript \ucf54\ub4dc\ub97c \ud3ec\ud568\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">'@angular\/core'\uc5d0\uc11c { Component, OnInit }\ub97c \uac00\uc838\uc635\ub2c8\ub2e4;\r\n'@angular\/http'\uc5d0\uc11c { Http, Headers, RequestOptions }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"@angular\/router\"\uc5d0\uc11c { \ub77c\uc6b0\ud130, ActivatedRoute }\ub97c \uac00\uc838\uc635\ub2c8\ub2e4;\r\n\"@angular\/common\"\uc5d0\uc11c { Location }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"rxjs\/Rx\" \uc784\ud3ec\ud2b8;\r\n\r\n\ucef4\ud3ec\ub10c\ud2b8({\r\n    moduleId: module.id,\r\n    selector: 'app-blogs',\r\n    templateUrl: '.\/blogs.component.html'\r\n})\r\n\ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8 \ub0b4\ubcf4\ub0b4\uae30 \ud074\ub798\uc2a4\ub294 OnInit\uc744 \uad6c\ud604\ud569\ub2c8\ub2e4.\r\n\r\n    private sid: \ubb38\uc790\uc5f4\r\n    \uacf5\uac1c \ud56d\ubaa9: Array;\r\n\r\n    \uacf5\uac1c \uc0dd\uc131\uc790(\ube44\uacf5\uac1c http: Http, \ube44\uacf5\uac1c \ub77c\uc6b0\ud130: \ub77c\uc6b0\ud130, \ube44\uacf5\uac1c \uacbd\ub85c: ActivatedRoute, private location: Location) {\r\n        this.entries = [];\r\n    }\r\n\r\n    public ngOnInit() {\r\n        this.location.subscribe(() =&gt; {\r\n            let headers = new Headers({ \"authorization\": \"Bearer \" + this.sid });\r\n            let options = new RequestOptions({ headers: headers });\r\n            this.http.get(\"https:\/\/localhost:3000\/blogs\", options)\r\n                .map(result =&gt; result.json())\r\n                .subscribe(result =&gt; {\r\n                    this.entries = \uacb0\uacfc;\r\n                });\r\n        });\r\n        this.route.queryParams.subscribe(params =&gt; {\r\n            this.sid = params[\"sid\"];\r\n            let headers = new Headers({ \"authorization\": \"Bearer \" + params[\"sid\"] });\r\n            let options = new RequestOptions({ headers: headers });\r\n            this.http.get(\"https:\/\/localhost:3000\/blogs\", options)\r\n                .map(result =&gt; result.json())\r\n                .subscribe(result =&gt; {\r\n                    this.entries = \uacb0\uacfc;\r\n                });\r\n        });\r\n    }\r\n\r\n    public create() {\r\n        this.router.navigate([\"\/blog\"], { \"queryParams\": { \"sid\": this.sid } });\r\n    }\r\n\r\n}<\/pre>\n<p>\uc55e\uc11c \uc5b8\uae09\ud55c \ub450 \uac00\uc9c0\ub97c \uc81c\uc678\ud558\uace0\ub294 \uc704\uc5d0\uc11c \ubcfc \uc218 \uc788\ub294 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc5c6\uc73c\ubbc0\ub85c \ud398\uc774\uc9c0\uc758 HTML\ub85c \uc774\ub3d9\ud574\ub3c4 \ub429\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8.\ucef4\ud3ec\ub10c\ud2b8.html<\/strong> \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c HTML \ub9c8\ud06c\uc5c5\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\"><label class=\"h2\"><\/label>\r\n                <label><\/label>\r\n            \r\n        \r\n    \r\n    \r\n        <label><\/label><\/pre>\n<p>\ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4 API\uc640 \uc6f9 \ud504\ub860\ud2b8\uc5d4\ub4dc\uac00 \uc81c\uacf5\ud558\ub294 \ucd5c\uc885 \uad6c\uc131 \uc694\uc18c\ub85c \uc774 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9c8\ubb34\ub9ac\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8.\ucef4\ud3ec\ub10c\ud2b8.ts<\/strong> \ud30c\uc77c\uc744 \ub9cc\ub4e4\uace0 \uc774 \ud30c\uc77c\uc744 \ud3ec\ud568\ud558\uc138\uc694:<\/p>\n<pre class=\"lang:default decode:true\">'@angular\/core'\uc5d0\uc11c { Component, OnInit }\ub97c \uac00\uc838\uc635\ub2c8\ub2e4;\r\n'@angular\/http'\uc5d0\uc11c { Http, Headers, RequestOptions }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"@angular\/router\"\uc5d0\uc11c { ActivatedRoute }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"@angular\/common\"\uc5d0\uc11c { Location }\uc744 \uac00\uc838\uc635\ub2c8\ub2e4;\r\n\"rxjs\/Rx\" \uc784\ud3ec\ud2b8;\r\n\r\n\ucef4\ud3ec\ub10c\ud2b8({\r\n    moduleId: module.id,\r\n    selector: 'app-blog',\r\n    templateUrl: '.\/blog.component.html'\r\n})\r\n\ub0b4\ubcf4\ub0b4\uae30 \ud074\ub798\uc2a4 BlogComponent\ub294 OnInit\uc744 \uad6c\ud604\ud569\ub2c8\ub2e4.\r\n\r\n    private sid: \ubb38\uc790\uc5f4\r\n    \uacf5\uac1c \uc785\ub825: any;\r\n\r\n    public constructor(private http: Http, private route: ActivatedRoute, \ube44\uacf5\uac1c \uc704\uce58: Location) {\r\n        this.input = {\r\n            \"title\": \"\",\r\n            \"content\": \"\"\r\n        };\r\n    }\r\n\r\n    public ngOnInit() {\r\n        this.route.queryParams.subscribe(params =&gt; {\r\n            this.sid = params[\"sid\"];\r\n        });\r\n    }\r\n\r\n    public save() {\r\n        if(this.input.title &amp;&amp; this.input.content) {\r\n            let headers = new Headers({\r\n                \"content-type\": \"application\/json\",\r\n                \"authorization\": \"\ubb34\uae30\uba85 \" + this.sid\r\n            });\r\n            let options = \uc0c8\ub85c\uc6b4 \uc694\uccad\uc635\uc158({ headers: headers });\r\n            this.http.post(\"https:\/\/localhost:3000\/blog\", JSON.stringify(this.input), options)\r\n                .map(result =&gt; result.json())\r\n                .subscribe(result =&gt; {\r\n                    this.location.back();\r\n                });\r\n        }\r\n    }\r\n\r\n}<\/pre>\n<p>CSS \ud30c\uc77c\uc744 \ubcf5\uc0ac\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uc78a\uc9c0 \ub9d0\uace0 <code>\ucef4\ud3ec\ub10c\ud2b8<\/code> \ube14\ub85d\uc5d0\uc11c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ud0c0\uc785\uc2a4\ud06c\ub9bd\ud2b8\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 HTML UI\ub294 \ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\ube14\ub85c\uadf8\/\ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8.html<\/strong> \ud30c\uc77c\uc744 \uc5f4\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\"><label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <label class=\"label font-weight-bold m-b-5\"><\/label>\r\n        \r\n        \r\n    \r\n    \r\n        <button class=\"btn btn-primary\"><\/button><\/pre>\n<p>\uc9c0\uae08 \uc774 \uc21c\uac04\uc5d0\ub3c4 \uc774 \ubaa8\ub4e0 NativeScript XML \ub9c8\ud06c\uc5c5\uc5d0 \ub300\ud574 \uba38\ub9ac\ub97c \uae01\uc801\uac70\ub9ac\uace0 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. Angular\uac00 UI\uc640 \ud568\uaed8 \uc791\ub3d9\ud558\ub294 \ubc29\uc2dd\uc740 \ubcc0\uacbd\ub418\uc9c0 \uc54a\uc558\uc9c0\ub9cc NativeScript \ub9c8\ud06c\uc5c5\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uace0 \uc2f6\ub2e4\uba74 <a href=\"https:\/\/docs.nativescript.org\/angular\/start\/introduction.html\" target=\"_blank\" rel=\"noopener\">\uacf5\uc2dd \ubb38\uc11c<\/a>. \uc5d0 \uc775\uc219\ud574\uc9c0\uc138\uc694. <code>\uc2a4\ud0dd \ub808\uc774\uc544\uc6c3<\/code>, <code>\uadf8\ub9ac\ub4dc \ub808\uc774\uc544\uc6c3<\/code> \ubc0f \uac1c\ubcc4 UI \ucef4\ud3ec\ub10c\ud2b8 \ud0dc\uadf8.<\/p>\n<h2>\ud55c\ub370 \ubaa8\uc73c\uae30<\/h2>\n<p>NativeScript\uc6a9 Angular \ucef4\ud3ec\ub10c\ud2b8\ub97c \ubaa8\ub450 \ub9cc\ub4e4\uc5c8\uc9c0\ub9cc Angular \ub77c\uc6b0\ud130\ub97c \ud1b5\ud574 \ud1b5\ud569\ud558\uc9c0\ub294 \uc54a\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uac00\uc774\ub4dc\uc758 \uc6f9 \ubc84\uc804\uc5d0\uc11c\ub294 \uacbd\ub85c \uc815\ubcf4\uac00\u00a0<strong>app.module.ts<\/strong> \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \uadf8\ub807\uac8c \ud560 \uc218\ub294 \uc788\uc9c0\ub9cc, \ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8\ub294 \uc774\ub97c \ubcc4\ub3c4\uc758 \ud30c\uc77c\ub85c \ubd84\ub9ac\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\uc571.\ub77c\uc6b0\ud305.ts<\/strong> \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c\uc744 \ud3ec\ud568\ud558\uc138\uc694:<\/p>\n<pre class=\"lang:default decode:true\">\"@angular\/core\"\uc5d0\uc11c { NgModule }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"nativescript-angular\/router\"\uc5d0\uc11c { NativeScriptRouterModule }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"@angular\/router\"\uc5d0\uc11c { Routes }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\r\n\".\/login\/login.component\"\uc5d0\uc11c { LoginComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/register\/register.component\"\uc5d0\uc11c { RegisterComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/blogs\/blogs.component\"\uc5d0\uc11c { BlogsComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/blog\/blog.component\"\uc5d0\uc11c { BlogComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\r\nconst \ub77c\uc6b0\ud2b8: Routes = [\r\n    { \uacbd\ub85c: \"\", redirectTo: \"\/login\", pathMatch: \"full\" },\r\n    { path: \"login\", component: LoginComponent },\r\n    { path: \"register\", component: RegisterComponent },\r\n    { path: \"blogs\", component: BlogsComponent },\r\n    { path: \"blog\", component: BlogComponent }\r\n];\r\n\r\n@NgModule({\r\n    imports: [NativeScriptRouterModule.forRoot(routes)],\r\n    exports: [NativeScriptRouterModule]]\r\n})\r\nexport class AppRoutingModule { }<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc \uc911 \uc0c1\ub2f9\uc218\ub294 \uc0c8 \ud504\ub85c\uc81d\ud2b8 \ud15c\ud50c\ub9bf\uacfc \ud568\uaed8 \uc81c\uacf5\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uac01 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uac00\uc838\uc640\uc11c \uacbd\ub85c\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub9c8\ucc2c\uac00\uc9c0\ub85c \ucef4\ud3ec\ub10c\ud2b8\ub294 \ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\uc571.\ubaa8\ub4c8.ts<\/strong> \ud30c\uc77c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. \uc774 \ud30c\uc77c\uc744 \uc5f4\uace0 \ub2e4\uc74c\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\"@angular\/core\"\uc5d0\uc11c { NgModule, NO_ERRORS_SCHEMA }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"nativescript-angular\/nativescript.module\"\uc5d0\uc11c { NativeScriptModule }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/app.routing\"\uc5d0\uc11c { AppRoutingModule }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"nativescript-angular\/http\"\uc5d0\uc11c { NativeScriptHttpModule }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\"nativescript-angular\/forms\"\uc5d0\uc11c { NativeScriptFormsModule }\uc744 \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/app.component\"\uc5d0\uc11c { AppComponent }\ub97c \uac00\uc838\uc635\ub2c8\ub2e4;\r\n\r\n\".\/login\/login.component\"\uc5d0\uc11c { LoginComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/register\/register.component\"\uc5d0\uc11c { RegisterComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/blogs\/blogs.component\"\uc5d0\uc11c { BlogsComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\".\/blog\/blog.component\"\uc5d0\uc11c { BlogComponent }\ub97c \uc784\ud3ec\ud2b8\ud569\ub2c8\ub2e4;\r\n\r\n@NgModule({\r\n    \ubd80\ud2b8\uc2a4\ud2b8\ub7a9: [\r\n        AppComponent\r\n    ],\r\n    imports: [\r\n        NativeScriptModule,\r\n        AppRoutingModule,\r\n        NativeScriptHttpModule,\r\n        NativeScriptFormsModule\r\n    ],\r\n    \uc120\uc5b8: [\r\n        AppComponent,\r\n        LoginComponent,\r\n        RegisterComponent,\r\n        \ube14\ub85c\uadf8 \ucef4\ud3ec\ub10c\ud2b8,\r\n        BlogComponent\r\n    ],\r\n    \uc81c\uacf5\uc790 [],\r\n    \uc2a4\ud0a4\ub9c8: [\r\n        NO_ERRORS_SCHEMA\r\n    ]\r\n})\r\nexport class AppModule { }<\/pre>\n<p>\uac01 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uac00\uc838\uc640\uc11c \ucd94\uac00\ud558\ub294 \uac83 \uc678\uc5d0\ub3c4 <code>\uc120\uc5b8<\/code> \ubc30\uc5f4\uacfc \uac19\uc740 \uba87 \uac00\uc9c0 \ubaa8\ub4c8\ub3c4 \uac00\uc838\uc654\uc2b5\ub2c8\ub2e4. <code>NativeScriptHttpModule<\/code> \uadf8\ub9ac\uace0 <code>\ub124\uc774\ud2f0\ube0c \uc2a4\ud06c\ub9bd\ud2b8 \uc591\uc2dd \ubaa8\ub4c8<\/code>. \uc21c\uc218 \uac01\ub3c4\uc5d0\uc11c\ub294 \uc774\ub97c <code>HttpModule<\/code> \uadf8\ub9ac\uace0 <code>\ud3fc \ubaa8\ub4c8<\/code>.<\/p>\n<p>\uc774\ub860\uc801\uc73c\ub85c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc14\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>iOS\uc6a9 \uc571 \uc804\uc1a1 \ubcf4\uc548 \ubb38\uc81c(ATS) \ud574\uacb0\ud558\uae30<\/h2>\n<p>Node.js \ubc0f Couchbase API\uac00 \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589\ub418\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 HTTPS\uac00 \uc544\ub2cc HTTP\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. iOS\ub294 HTTP \ub9ac\uc18c\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud558\ub824\uace0 \ud558\uba74 \uc624\ub958\ub97c \ubc1c\uc0dd\uc2dc\ud0b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ubb38\uc81c\ub294 ATS \uc815\ucc45\uc744 \ucd94\uac00\ud558\uba74 \uc27d\uac8c \ud574\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8\uc758\u00a0<strong>\uc571\/\uc571_\uc790\uc6d0\/iOS\/\uc815\ubcf4 plist<\/strong> \ub97c \uc5f4\uace0 \ub2e4\ub978 XML\uacfc \ud568\uaed8 \ub2e4\uc74c\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">NSAllowsArbitraryLoads<\/pre>\n<p>\uc704\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \ubaa8\ub4e0 HTTP \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c\ub294 \uc548\uc804\ud558\uc9c0 \uc54a\uc9c0\ub9cc \ud14c\uc2a4\ud2b8 \ud658\uacbd\uc5d0\uc11c\ub294 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 ATS\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc774\uc804\uc5d0 \uc791\uc131\ud55c \uae00\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4,\u00a0<a href=\"https:\/\/www.thepolyglotdeveloper.com\/2015\/12\/fix-ios-9-app-transport-security-issues-in-nativescript\/\" target=\"_blank\" rel=\"noopener\">\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c iOS 9 \uc571 \uc804\uc1a1 \ubcf4\uc548 \ubb38\uc81c \ud574\uacb0<\/a>.<\/p>\n<h2>\uacb0\ub860<\/h2>\n<p>\ubc29\uae08 \uc6f9 \ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub7f0\ud2b8\uc5d4\ub4dc\ub97c NativeScript\uc640 Angular\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ubc14\uc77c\ub85c \ubcc0\ud658\ud558\ub294 \uac83\uc774 \uc5bc\ub9c8\ub098 \uc26c\uc6b4\uc9c0 \ubcf4\uc168\uc744 \uac83\uc785\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4 \uc608\uc81c\ub294 \uc21c\uc2dd\uac04\uc5d0 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uc2a4\ud0dd\uc744 \uc0ac\uc6a9\ud558\ub294 \uc804\uccb4 \uc2a4\ud0dd \uc608\uc81c\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uacfc \uac19\uc740 Node.js\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84<\/a> \ubc31\uc5d4\ub4dc, Angular \uc6f9 \ud504\ub860\ud2b8\uc5d4\ub4dc, NativeScript \ubaa8\ubc14\uc77c \ud504\ub860\ud2b8\uc5d4\ub4dc\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c \ub2e8\uacc4 \ub610\ub294 \uc635\uc158\uc740 API\uc5d0 \ub300\ud55c HTTP \ud638\ucd9c\uc774 \uc544\ub2cc Couchbase Mobile \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>Continuing down the path of user profile stores, we had previously seen how to create one with Node.js and Couchbase NoSQL as well as a web client front-end for it using Angular. What if we wanted to take this into [&hellip;]<\/p>","protected":false},"author":63,"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,1815,1816,9327],"tags":[1704,2021,1543,1589,2019,1718],"ppma_author":[9032],"class_list":["post-3885","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-couchbase-server","category-javascript","tag-angular","tag-front-end","tag-javascript","tag-nativescript","tag-profile-store","tag-typescript"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bringing Your User Profile Store to Mobile with NativeScript and Angular<\/title>\n<meta name=\"description\" content=\"Learn how to take the user profile store example as seen in the previous tutorials and create a mobile front-end for it using NativeScript and Angular.\" \/>\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\/bringing-user-profile-store-mobile-nativescript-angular\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bringing Your User Profile Store to Mobile with NativeScript and Angular\" \/>\n<meta property=\"og:description\" content=\"Learn how to take the user profile store example as seen in the previous tutorials and create a mobile front-end for it using NativeScript and Angular.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/bringing-user-profile-store-mobile-nativescript-angular\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-15T14:00:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:15:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/07\/ns-angular-profile-store.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"1100\" \/>\n\t<meta property=\"og:image:height\" content=\"709\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Bringing Your User Profile Store to Mobile with NativeScript and Angular\",\"datePublished\":\"2017-08-15T14:00:49+00:00\",\"dateModified\":\"2025-06-14T03:15:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/\"},\"wordCount\":1094,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Angular\",\"front-end\",\"javascript\",\"nativescript\",\"profile store\",\"TypeScript\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Couchbase Server\",\"JavaScript\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/\",\"name\":\"Bringing Your User Profile Store to Mobile with NativeScript and Angular\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-08-15T14:00:49+00:00\",\"dateModified\":\"2025-06-14T03:15:11+00:00\",\"description\":\"Learn how to take the user profile store example as seen in the previous tutorials and create a mobile front-end for it using NativeScript and Angular.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#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\/bringing-user-profile-store-mobile-nativescript-angular\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bringing Your User Profile Store to Mobile with NativeScript and Angular\"}]},{\"@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\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8 \ubc0f Angular\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4\ub97c \ubaa8\ubc14\uc77c\ub85c \uac00\uc838\uc624\uae30","description":"Learn how to take the user profile store example as seen in the previous tutorials and create a mobile front-end for it using NativeScript and Angular.","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\/bringing-user-profile-store-mobile-nativescript-angular\/","og_locale":"ko_KR","og_type":"article","og_title":"Bringing Your User Profile Store to Mobile with NativeScript and Angular","og_description":"Learn how to take the user profile store example as seen in the previous tutorials and create a mobile front-end for it using NativeScript and Angular.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/bringing-user-profile-store-mobile-nativescript-angular\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2017-08-15T14:00:49+00:00","article_modified_time":"2025-06-14T03:15:11+00:00","og_image":[{"width":1100,"height":709,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/07\/ns-angular-profile-store.gif","type":"image\/gif"}],"author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"12\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Bringing Your User Profile Store to Mobile with NativeScript and Angular","datePublished":"2017-08-15T14:00:49+00:00","dateModified":"2025-06-14T03:15:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/"},"wordCount":1094,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Angular","front-end","javascript","nativescript","profile store","TypeScript"],"articleSection":["Application Design","Best Practices and Tutorials","Couchbase Server","JavaScript"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/","url":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/","name":"\ub124\uc774\ud2f0\ube0c\uc2a4\ud06c\ub9bd\ud2b8 \ubc0f Angular\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \uc2a4\ud1a0\uc5b4\ub97c \ubaa8\ubc14\uc77c\ub85c \uac00\uc838\uc624\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-08-15T14:00:49+00:00","dateModified":"2025-06-14T03:15:11+00:00","description":"Learn how to take the user profile store example as seen in the previous tutorials and create a mobile front-end for it using NativeScript and Angular.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/bringing-user-profile-store-mobile-nativescript-angular\/#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\/bringing-user-profile-store-mobile-nativescript-angular\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bringing Your User Profile Store to Mobile with NativeScript and Angular"}]},{"@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\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, \uac1c\ubc1c\uc790 \uc639\ud638\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"\ub2c9 \ub77c\ubcf4\uc774\ub294 \ucd5c\uc2e0 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c \uae30\uc220\uc744 \uc639\ud638\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. \uadf8\ub294 Java, JavaScript, Golang \ubc0f Angular, NativeScript, Apache Cordova\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. Nic\uc740 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \ubcf4\ub2e4 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uac1c\ubc1c \uacbd\ud5d8\uc5d0 \ub300\ud574 \uae00\uc744 \uc4f0\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","first_name":"Nic","last_name":"Raboy","user_url":"https:\/\/www.thepolyglotdeveloper.com","author_category":"","description":"\ub2c9 \ub77c\ubcf4\uc774\ub294 \ucd5c\uc2e0 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c \uae30\uc220\uc744 \uc639\ud638\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. \uadf8\ub294 Java, JavaScript, Golang \ubc0f Angular, NativeScript, Apache Cordova\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. Nic\uc740 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \ubcf4\ub2e4 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uac1c\ubc1c \uacbd\ud5d8\uc5d0 \ub300\ud574 \uae00\uc744 \uc4f0\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3885","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\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=3885"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3885\/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=3885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=3885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=3885"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=3885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}