{"id":6978,"date":"2019-05-24T06:00:43","date_gmt":"2019-05-24T13:00:43","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6978"},"modified":"2025-06-13T20:52:27","modified_gmt":"2025-06-14T03:52:27","slug":"fluttercouch-flutter-and-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/fluttercouch-flutter-and-couchbase\/","title":{"rendered":"Fluttercouch: Flutter\uc640 Couchbase\uc758 \uac15\ub825\ud55c \uae30\ub2a5 \uacb0\ud569"},"content":{"rendered":"<p><em>\uc774 \uae00\uc740 \ub8e8\uce74 \ud06c\ub9ac\uc2a4\ud2f0\uc720\uac00 \uc791\uc131\ud55c \uac8c\uc2a4\ud2b8 \uac8c\uc2dc\ubb3c\uc785\ub2c8\ub2e4. \ub8e8\uce74\ub294 \ub3c5\ud559 \uac1c\ubc1c\uc790\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ud504\ub85c\uadf8\ub7a8\uc744 \ub9cc\ub4e0 \uc0ac\ub78c\uc785\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a>. 8\uc0b4 \ub54c \ucc98\uc74c\uc73c\ub85c \ucf54\ub4dc\ub97c \uc791\uc131\ud588\uc73c\uba70, \uadf8 \uc774\ud6c4\ub85c \uac1c\ubc1c\uc5d0 \ub300\ud55c \uc5f4\uc815\uc740 \uacc4\uc18d \ucee4\uc838\ub9cc \uac14\uc2b5\ub2c8\ub2e4. \uadf8\ub294 Google \uacf5\uc778 \uc548\ub4dc\ub85c\uc774\ub4dc \uac1c\ubc1c\uc790\uc774\uba70 \ud480\uc2a4\ud0dd \uc5d4\uc9c0\ub2c8\uc5b4\ub85c \ud480\ud0c0\uc784\uc73c\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc758 \ub300\ubd80\ubd84\uc740 \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc790\ub85c\uc11c \ud504\ub9ac\ub79c\uc11c\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/em><\/p>\n<p><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6981\" style=\"float: left;margin-right: 20px\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/luca_christille-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-300x225.jpg 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-1024x768.jpg 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-768x576.jpg 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-1536x1152.jpg 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-20x15.jpg 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-1320x990.jpg 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/em><\/p>\n<p><em>\ub8e8\uce74\ub294 \ub2e4\uc591\ud55c \uc194\ub8e8\uc158\uc73c\ub85c \uc791\uc5c5\ud558\uace0 \ud3c9\uac00\ud574 \ubcf8 \uacbd\ud5d8\uc774 \uc788\uc5b4 NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc775\uc219\ud569\ub2c8\ub2e4. \uacb0\uad6d \uadf8\ub294 \ub9ce\uc740 \ubaa8\ubc14\uc77c \uc571\uc758 \uc8fc\uc694 \uc694\uad6c \uc0ac\ud56d\uc774 '\uc624\ud504\ub77c\uc778 \uc6b0\uc120' \uae30\ub2a5\uc774\uae30 \ub54c\ubb38\uc5d0 \ub370\uc774\ud130 \ub3d9\uae30\ud654 \uae30\ub2a5\uc744 \uac16\ucd98 Couchbase\uc5d0 \ub9e4\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/em><\/p>\n<p><em>\ucd08\uae30\uc5d0\ub294 \uc644\uc804\ud788 \ub124\uc774\ud2f0\ube0c \uc571\uc744 \ub9cc\ub4dc\ub294 \ub370\ub9cc \uc9d1\uc911\ud588\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uacb0\uad6d \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \uc194\ub8e8\uc158\uc774 \ud544\uc694\ud55c \uace0\uac1d\uc744 \ub9cc\ub098\uac8c \ub418\uc5c8\uace0, \ub2e4\uc591\ud55c \uc635\uc158\uc744 \uc870\uc0ac\ud55c \ub05d\uc5d0 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/flutter.dev\/\">Flutter.<\/a><\/em><\/p>\n<h2>Flutter: \uc544\ub984\ub2e4\uc6b4 \uc571 \ub514\uc790\uc778<\/h2>\n<p>\ud55c \uac78\uc74c \ubb3c\ub7ec\uc11c\uc11c \uc0dd\uac01\ud574 \ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc758\ubb38\uc774 \ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/flutter.dev\/\">Flutter<\/a>? \uac04\ub2e8\ud788 \ub9d0\ud574, <a href=\"https:\/\/github.com\/flutter\/flutter\">Flutter\ub294 \uc624\ud508 \uc18c\uc2a4 SDK\uc785\ub2c8\ub2e4.<\/a> \ub97c \uc0ac\uc6a9\ud558\uc5ec iOS \ubc0f Android\uc6a9 \uace0\uc131\ub2a5, \uace0\ucda9\uc2e4\ub3c4 \ubaa8\ubc14\uc77c \uc571\uc744 \uc81c\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Flutter \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud558\uba74 \uc571\uc5d0\uc11c \uc6d0\ud65c\ud558\uac8c \ubc18\uc751\ud558\ub294 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc27d\uac8c \uad6c\ucd95\ud558\ub294 \ub3d9\uc2dc\uc5d0 \uc571\uc758 \ubcf4\uae30\ub97c \ub3d9\uae30\ud654\ud558\uace0 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \ub370 \ud544\uc694\ud55c \ucf54\ub4dc\uc758 \uc591\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\ub978 \ub9ce\uc740 \uac1c\ubc1c \uc5d0\ucf54\uc2dc\uc2a4\ud15c\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c Flutter\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ucef4\ud3ec\ub10c\ud2b8\ud654\ub41c \ucf54\ub4dc \ud504\ub85c\uc81d\ud2b8\uc640 \ud1b5\ud569\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. <a href=\"https:\/\/pub.dev\/flutter\">Flutter \ud328\ud0a4\uc9c0<\/a>. Flutter \ud328\ud0a4\uc9c0\ub294 \uac1c\ubc1c\uc790\uac00 \ubcf5\uc7a1\ud55c \uae30\ub2a5\uc744 \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ud1b5\ud569\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \ud328\ud0a4\uc9c0\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ubb34\uc5c7\uc774\ub4e0 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/dart.dev\/\">\ub2e4\ud2b8<\/a>-\uae30\ubc18 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \ud45c\uc900 Flutter \ud504\ub808\uc784\uc6cc\ud06c \uae30\ub2a5\uc744 \ub124\uc774\ud2f0\ube0c \ub808\uc774\uc5b4\uc640 \uc9c1\uc811 \uc0c1\ud638 \uc791\uc6a9\ud558\ub294 \uc194\ub8e8\uc158\uc73c\ub85c \ud655\uc7a5\ud558\uace0 Android \ubc0f iOS\uc758 SDK\ub97c \uae30\ubc18\uc73c\ub85c \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc744 \uad6c\ud604\ud569\ub2c8\ub2e4.<\/p>\n<h2>Fluttercouch \uc18c\uac1c<\/h2>\n<p><a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> \ub97c \uc6d0\ud65c\ud558\uac8c \ud1b5\ud569\ud558\ub294 \ud328\ud0a4\uc9c0\uc785\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/server\/4.1\/concepts\/cb-mobile-development.html\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c<\/a> \uae30\ub2a5\uc744 Flutter \uc571\uc5d0 \ucd94\uac00\ud558\uc5ec Android \ubc0f iOS \ub124\uc774\ud2f0\ube0c \ub808\uc774\uc5b4\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud328\ud0a4\uc9c0\ub97c \uc0ac\uc6a9\ud558\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc124\uc815, \ubb38\uc11c \uc0ac\uc6a9 \ubc0f \ubcf5\uc81c\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud574 \uc0c1\uc6a9\uad6c \ucf54\ub4dc\ub97c \ub9cc\ub4e4 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uad81\uadf9\uc801\uc73c\ub85c Fluttercouch\ub97c \uc0ac\uc6a9\ud558\uba74 \ub124\uc774\ud2f0\ube0c Couchbase Mobile SDK\ub85c \ud50c\ub7ab\ud3fc\ubcc4 \ucf54\ub4dc\ub97c \ube4c\ub4dc\ud558\ub294 \ub300\uc2e0 Dart\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub85c\uc9c1\uc744 \ub9cc\ub4dc\ub294 \ub370 \uc9d1\uc911\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\uc2dc\uc791\ud558\uae30<\/h3>\n<p>\uc0ac\uc6a9 \uc2dc\uc791\ud558\uae30 <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> \uc5d0 \uc758\uc874\uc131 \uc9c0\uc2dc\uc5b4\ub97c \ucd94\uac00\ud574\uc57c \ud569\ub2c8\ub2e4. <strong>pubspec.yaml<\/strong> \ud30c\uc77c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-yaml\" data-lang=\"yaml\">dependencies:\r\n  fluttercouch: ^0.5.0<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\uc758\uc874\uc131 \uc9c0\uc2dc\uc5b4\ub97c \ucd94\uac00\ud55c \ud6c4 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> \ub97c \ucd94\uac00\ud558\uac70\ub098 \uc0c8 \ubaa8\ub378 \ud074\ub798\uc2a4\ub85c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. InheritedWidget, \ubc94\uc704 \uc9c0\uc815 \ubaa8\ub378 \ub610\ub294 \ube14\ub85d\uc758 \ubaa8\ub378 \ud074\ub798\uc2a4\ub97c \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc77c\ub2e8 \ud655\uc7a5\ub418\uba74 <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> \ucd08\ub2a5\ub825\uc774 \uc7a0\uae08 \ud574\uc81c\ub429\ub2c8\ub2e4!<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">class CounterBlock extends Bloc&lt;CounterBlock, int&gt; with Fluttercouch {\r\n\r\n    class FrogColor extends InheritedWidget with Fluttercouch {\r\n    \r\n        class CounterModel extends Model with Fluttercouch {\r\n\r\n            class MyModel extends Object with Fluttercouch {<\/code><\/pre>\n<\/div>\n<\/div>\n<h3>\uae30\ubcf8 \uc791\uc5c5<\/h3>\n<p>\uc774 \uc2dc\uc810\ubd80\ud130 \uc774\uc804\uc5d0 \uc0dd\uc131\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \uac00\uc838\uc624\uac70\ub098 \ud074\ub798\uc2a4\uc5d0\uc11c \uc9c1\uc811 \uc0c8 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc778\uc2a4\ud134\uc2a4\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \ucd08\uae30\ud654\ub418\uba74 <strong>\uae30\ubcf8 \uc120\ud0dd<\/strong>\uc5d0 \uc800\uc7a5\ub418\uba70, \uc774\ud6c4 \uba54\uc11c\ub4dc \ud638\ucd9c\uc740 \uc774\ub97c \ucc38\uc870\ud569\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud55c \ud6c4\uc5d0\ub294 Couchbase Lite \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uae30\ub300\ud560 \uc218 \uc788\ub294 \ubaa8\ub4e0 CRUD \uc791\uc5c5\uc744 \uc27d\uac8c \uc218\ud589\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p>\uc608\ub97c \ub4e4\uc5b4 ID\ub85c \ubb38\uc11c\ub97c \uac80\uc0c9\ud558\uace0 \uc18d\uc131\uc5d0\uc11c \ubb38\uc790\uc5f4\uc744 \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\ub0b4 \ud504\ub85c\ud37c\ud2f0<\/code>. \uadf8\ub7f0 \ub2e4\uc74c \ubb38\uc11c\ub97c \ubcc0\uacbd \uac00\ub2a5\ud55c \ubb38\uc11c\ub85c \ubcc0\ud658\ud558\uace0 \uc218\uc815\ud55c \ub2e4\uc74c \ub2e4\uc2dc \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">helloCouchbase() async {\r\n    await initDatabaseWithName('myDatabase');\r\n    Document myDocument = await getDocumentWithId('hello::world');\r\n    String helloWorld = myDocument.getString('greetings');\r\n    MutableDocument myMutableDocument = myDocument.toMutable();\r\n    myMutableDocument.setString('helloKey', 'worldValue');\r\n    saveDocument(myMutableDocument);<\/code><\/pre>\n<\/div>\n<\/div>\n<h3>\ub9ac\ud50c\ub9ac\ucf00\uc774\ud130\ub85c \uc791\uc5c5\ud558\uae30<\/h3>\n<p>\ub370\uc774\ud130 \ubcf5\uc81c\ub294 Fluttercouch\uc5d0\uc11c\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4. Dart\ub97c \uc0ac\uc6a9\ud558\uba74 \ubcf5\uc81c\uae30\ub97c \uc27d\uac8c \uc0dd\uc131\ud558\uace0 \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">\/\/ Supplies the address of the database replicated by the Sync Gateway server. \r\n\/\/ In case you want to enable SSL encryption, use wss:\/\/ insted of ws:\/\/. \r\n\/\/ To connect to a local Sync Gateway instance, use localhost as hostname for iOs simulator, and 10.0.2.2 for Android simulator.\r\nsetReplicatorEndpoint(\"ws:\/\/your-server-address:4984\/yourReplicationDatabaseName\");\r\n\r\n\/\/ Sets the replication type as PULL, PUSH or PUSH_AND_PULL\r\nsetReplicatorType(\"PUSH_AND_PULL\");\r\n\r\n\/\/ Sets the replication as continuous\r\nsetReplicatorContinuous(true);\r\n\r\n\/\/ Sets a BasicAuthenticator for the replication. The methods accept a parameter of type Map&lt;String, String&gt; \r\n\/\/ with two keys named \"username\" and \"password\".\r\nsetReplicatorBasicAuthentication(&lt;String, String&gt;{\r\n  \"username\": \"yourUsername\",\r\n  \"password\": \"yourPassword\"\r\n});\r\n\r\n\/\/ Sets a SessionAuthenticator for the replication. SessionID is retrieved querying the public REST API of your Sync Gateway\r\nsetReplicatorSessionAuthentication(sessionID);\r\n\r\n\/\/ Before starting the replication, you must init the replicator object\r\ninitReplicator();\r\n\r\n\/\/ Starts the replication\r\nstartReplicator();\r\n\r\n\/\/ Stops the replication\r\nstopReplicator();<\/code><\/pre>\n<\/div>\n<\/div>\n<p>listenReplicatorEvents \uba54\uc11c\ub4dc\uc5d0 \ud568\uc218\ub97c \uc804\ub2ec\ud558\uc5ec \ub9ac\ud50c\ub9ac\ucf00\uc774\uc158 \uc774\ubca4\ud2b8\ub97c \uc218\uc2e0\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. listenReplicatorEvents\ub294 \uc774\ubca4\ud2b8 \uc720\ud615\uc774 \ud3ec\ud568\ub41c \ub9e4\uac1c\ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud568\uc218\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">listenReplicationEvents((dynamic event) {\r\n    switch(event) {\r\n      case (\"BUSY\"):\r\n        \/\/ executed when the replicator status changes to BUSY\r\n      case (\"IDLE\"):\r\n        \/\/ executed when the replicator status changes to IDLE\r\n      case (\"OFFLINE\"):\r\n        \/\/ executed when the replicator status changes to OFFLINE\r\n      case (\"STOPPED\"):\r\n        \/\/ executed when the replicator status changes to STOPPED\r\n      case (\"CONNECTING\"):\r\n        \/\/ executed when the replicator status changes to CONNECTING\r\n    }\r\n  }\r\n);\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<h2>\ub2e4\uc74c \ub2e8\uacc4<\/h2>\n<p>\uc774\uc81c \ub2e4\uc74c Flutter \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c Couchbase\uc758 \uc7a0\uc7ac\ub825\uc744 \ubc1c\ud718\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4! Fluttercouch\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc138\uc694. <a href=\"https:\/\/pub.dev\/packages\/fluttercouch\">\ud37c\ube0c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac<\/a>\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ud504\ub85c\uc81d\ud2b8 \ud398\uc774\uc9c0\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">GitHub<\/a> \ub97c \ucc38\uc870\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \uc0c1\ud638 \uc791\uc6a9\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<p>Fluttercouch\ub294 \ud604\uc7ac \uc81c\uac00 \uc5ec\uac00 \uc2dc\uac04\uc5d0 \uc720\uc9c0 \uad00\ub9ac\ud558\uace0 \ucd94\uac00\ud558\ub294 \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4. \uac00\uae4c\uc6b4 \uc2dc\uc77c \ub0b4\uc5d0 Dart\uc6a9 N1QL \ucffc\ub9ac \ucd94\uc0c1\ud654 \uacc4\uce35\uc744 \uc644\uc131\ud558\uace0, Blob \ubc0f <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/subdoc-explained\/\">\ud558\uc704 \ubb38\uc11c<\/a> \uc791\uc5c5 \ubc0f CouchbaseMobile SDK \ub0b4\uc5d0 \uc874\uc7ac\ud558\ub294 \ub2e4\ub978 \ub9ce\uc740 \uae30\ub2a5\ub4e4\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.  \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 \ucee4\ubba4\ub2c8\ud2f0\uc758 \uae30\uc5ec\ub97c \ud1b5\ud574 \ud070 \ub3c4\uc6c0\uc774 \ub420 \uac83\uc774\uba70, \uc758\uacac, \ubb38\uc81c \ubc0f\/\ub610\ub294 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \ubcf4\ub0b4\uc8fc\uc2dc\uba74 \uac10\uc0ac\ud558\uaca0\uc2b5\ub2c8\ub2e4!<\/p>","protected":false},"excerpt":{"rendered":"<p>This is a guest post written by Luca Christille. Luca is a self-taught developer, and the creator of Fluttercouch. He wrote his first line of code when he was eight years old, and his passion for development has only grown [&hellip;]<\/p>","protected":false},"author":34959,"featured_media":6980,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2370,7667,1810,2371,2366],"tags":[2350,1536],"ppma_author":[9080],"class_list":["post-6978","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-couchbase-lite","category-couchbase-mobile","category-flutter","category-sync-gateway","tag-cross-platform-mobile","tag-ios"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fluttercouch Integrates Couchbase Mobile Functionality<\/title>\n<meta name=\"description\" content=\"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.\" \/>\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\/fluttercouch-flutter-and-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fluttercouch: Combining the power of Flutter and Couchbase\" \/>\n<meta property=\"og:description\" content=\"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/fluttercouch-flutter-and-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-24T13:00:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:52:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@probablyrealrob\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\"},\"author\":{\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47\"},\"headline\":\"Fluttercouch: Combining the power of Flutter and Couchbase\",\"datePublished\":\"2019-05-24T13:00:43+00:00\",\"dateModified\":\"2025-06-14T03:52:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\"},\"wordCount\":673,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"keywords\":[\"cross-platform mobile\",\"ios\"],\"articleSection\":[\"Android\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Flutter\",\"Sync Gateway\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\",\"name\":\"Fluttercouch Integrates Couchbase Mobile Functionality\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"datePublished\":\"2019-05-24T13:00:43+00:00\",\"dateModified\":\"2025-06-14T03:52:27+00:00\",\"description\":\"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fluttercouch: Combining the power of Flutter and Couchbase\"}]},{\"@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\/4fe39f690069382f7641d3a02f551e47\",\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d2687b799f515d10560e40ed5b695b63\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g\",\"caption\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\"},\"description\":\"Rob Hedgpeth is a Senior Developer Advocate at Couchbase specializing in mobile and IoT technologies. Rob has been developing applications of all flavors for over a decade, but has primarily been focused on the mobile space since 2010. Prior to working at Couchbase Rob worked as a Mobile Architect at Xamarin and Microsoft.\",\"sameAs\":[\"https:\/\/x.com\/probablyrealrob\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/robert-hedgpeth\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Fluttercouch Integrates Couchbase Mobile Functionality","description":"Fluttercouch\ub294 Couchbase Mobile \uae30\ub2a5\uc744 Flutter \uc571\uc5d0 \uc6d0\ud65c\ud558\uac8c \ud1b5\ud569\ud558\uc5ec Android \ubc0f iOS \ub124\uc774\ud2f0\ube0c \ub808\uc774\uc5b4\ub97c \uad00\ub9ac\ud558\ub294 \ud328\ud0a4\uc9c0\uc785\ub2c8\ub2e4.","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\/fluttercouch-flutter-and-couchbase\/","og_locale":"ko_KR","og_type":"article","og_title":"Fluttercouch: Combining the power of Flutter and Couchbase","og_description":"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/fluttercouch-flutter-and-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-05-24T13:00:43+00:00","article_modified_time":"2025-06-14T03:52:27+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","type":"image\/png"}],"author":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@probablyrealrob","twitter_misc":{"Written by":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","Est. reading time":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/"},"author":{"name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47"},"headline":"Fluttercouch: Combining the power of Flutter and Couchbase","datePublished":"2019-05-24T13:00:43+00:00","dateModified":"2025-06-14T03:52:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/"},"wordCount":673,"commentCount":3,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","keywords":["cross-platform mobile","ios"],"articleSection":["Android","Couchbase Lite","Couchbase Mobile","Flutter","Sync Gateway"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/","name":"Fluttercouch Integrates Couchbase Mobile Functionality","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","datePublished":"2019-05-24T13:00:43+00:00","dateModified":"2025-06-14T03:52:27+00:00","description":"Fluttercouch\ub294 Couchbase Mobile \uae30\ub2a5\uc744 Flutter \uc571\uc5d0 \uc6d0\ud65c\ud558\uac8c \ud1b5\ud569\ud558\uc5ec Android \ubc0f iOS \ub124\uc774\ud2f0\ube0c \ub808\uc774\uc5b4\ub97c \uad00\ub9ac\ud558\ub294 \ud328\ud0a4\uc9c0\uc785\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Fluttercouch: Combining the power of Flutter and Couchbase"}]},{"@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\/4fe39f690069382f7641d3a02f551e47","name":"Rob Hedgpeth, \uc218\uc11d \uac1c\ubc1c\uc790 \uc639\ud638\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d2687b799f515d10560e40ed5b695b63","url":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","caption":"Rob Hedgpeth, Senior Developer Advocate, Couchbase"},"description":"Rob Hedgpeth\ub294 \ubaa8\ubc14\uc77c \ubc0f IoT \uae30\uc220\uc744 \uc804\ubb38\uc73c\ub85c \ud558\ub294 Couchbase\uc758 \uc218\uc11d \uac1c\ubc1c\uc790 \uc639\ud638\uc790\uc785\ub2c8\ub2e4. Rob\uc740 10\ub144 \ub118\uac8c \ubaa8\ub4e0 \uc885\ub958\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud574 \uc654\uc9c0\ub9cc 2010\ub144\ubd80\ud130\ub294 \uc8fc\ub85c \ubaa8\ubc14\uc77c \ubd84\uc57c\uc5d0 \uc9d1\uc911\ud574 \uc654\uc2b5\ub2c8\ub2e4. \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc77c\ud558\uae30 \uc804\uc5d0\ub294 Xamarin\uacfc Microsoft\uc5d0\uc11c \ubaa8\ubc14\uc77c \uc544\ud0a4\ud14d\ud2b8\ub85c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/x.com\/probablyrealrob"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/robert-hedgpeth\/"}]}},"authors":[{"term_id":9080,"user_id":34959,"is_guest":0,"slug":"robert-hedgpeth","display_name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","author_category":"","last_name":"Hedgpeth, Senior Developer Advocate, Couchbase","first_name":"Rob","job_title":"","user_url":"","description":"Rob Hedgpeth\ub294 \ubaa8\ubc14\uc77c \ubc0f IoT \uae30\uc220\uc744 \uc804\ubb38\uc73c\ub85c \ud558\ub294 Couchbase\uc758 \uc218\uc11d \uac1c\ubc1c\uc790 \uc639\ud638\uc790\uc785\ub2c8\ub2e4. Rob\uc740 10\ub144 \ub118\uac8c \ubaa8\ub4e0 \uc885\ub958\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud574 \uc654\uc9c0\ub9cc 2010\ub144\ubd80\ud130\ub294 \uc8fc\ub85c \ubaa8\ubc14\uc77c \ubd84\uc57c\uc5d0 \uc9d1\uc911\ud574 \uc654\uc2b5\ub2c8\ub2e4. \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc77c\ud558\uae30 \uc804\uc5d0\ub294 Xamarin\uacfc Microsoft\uc5d0\uc11c \ubaa8\ubc14\uc77c \uc544\ud0a4\ud14d\ud2b8\ub85c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/6978","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\/34959"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=6978"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/6978\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/6980"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=6978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=6978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=6978"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=6978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}