{"id":3923,"date":"2017-08-09T01:00:47","date_gmt":"2017-08-09T08:00:47","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3923"},"modified":"2025-06-13T20:57:02","modified_gmt":"2025-06-14T03:57:02","slug":"azure-functions-couchbase-server","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/azure-functions-couchbase-server\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud55c Azure \uae30\ub2a5"},"content":{"rendered":"<div class=\"paragraph\">\n<p>Azure Functions\ub294 Amazon\uc758 Lambdas \ub610\ub294 Google\uc758 Cloud Functions(\uc77c\uba85 \"\uc11c\ubc84\ub9ac\uc2a4\" \uc544\ud0a4\ud14d\ucc98)\uc5d0 \ub300\ud55c Microsoft\uc758 \ub2f5\ubcc0\uc785\ub2c8\ub2e4. \uc791\uc740 \ucf54\ub4dc \uc870\uac01\uc744 \ubc30\ud3ec\ud558\uace0 \uae30\ubcf8 \uc11c\ubc84\ub294 Azure\uac00 \ucc98\ub9ac\ud558\ub3c4\ub85d \ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc800\ub294 \ud55c \ubc88\ub3c4 \uc0ac\uc6a9\ud574 \ubcf8 \uc801\uc774 \uc5c6\uc5c8\uae30 \ub54c\ubb38\uc5d0 \"Hello, World\"\ub97c \ub118\uc5b4 Couchbase Server\uc640 \ud568\uaed8 \uc791\ub3d9\ud558\ub3c4\ub85d \ud558\uc5ec \uc0ac\uc6a9\ud574 \ubcf4\ub824\uace0 \uc0dd\uac01\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc774 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-functions\/\">\ub354 \ub9ce\uc740 \uc635\uc158<\/a> \uc5d0\uc11c \ub2e8\uc21c\ud55c HTTP \uc774\ubca4\ud2b8(\uc608: Blob \ud2b8\ub9ac\uac70, GitHub \uc6f9\ud6c4\ud06c, Azure \uc800\uc7a5\uc18c \ud050 \ud2b8\ub9ac\uac70 \ub4f1) \uc774\uc0c1\uc758 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 HTTP \uc774\ubca4\ud2b8\uc5d0\ub9cc \uc9d1\uc911\ud558\uaca0\uc2b5\ub2c8\ub2e4. Couchbase Server\uc640 \uc0c1\ud638 \uc791\uc6a9\ud558\ub294 \uac04\ub2e8\ud55c \"Get\" \ubc0f \"Set\" \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \ub530\ub77c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/074AzureFunctions\/src\/CouchbaseWithAzureFunctions\">\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc758 \uc18c\uc2a4 \ucf54\ub4dc<\/a> \uc5d0\uc11c \ud655\uc778\ud558\uc138\uc694.<\/p>\n<p>\ub610\ud55c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/azure-functions-lazy-initialization-couchbase-server\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\ub97c \uc0ac\uc6a9\ud55c Azure \ud568\uc218 \ubc0f \uc9c0\uc5f0 \ucd08\uae30\ud654 \uac8c\uc2dc\ubb3c<\/a>. \uc5ec\uae30\uc5d0\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 \ubc0f Azure \ud568\uc218 \uc0ac\uc6a9\uc5d0 \ub300\ud55c \uc911\uc694\ud55c \uc5c5\ub370\uc774\ud2b8\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_getting_setup_to_develop_azure_functions\">Azure \ud568\uc218 \uac1c\ubc1c\uc744 \uc704\ud55c \uc124\uc815\ud558\uae30<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 <a href=\"https:\/\/www.visualstudio.com\/vs\/preview\/\">Visual Studio \ubbf8\ub9ac\ubcf4\uae30<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07404-Add-Azure-Function.png\" alt=\"Visual Studio Preview\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc81c\uac00 \uc774\ub807\uac8c \ud55c \uc774\uc720\ub294 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=AndrewBHall-MSFT.AzureFunctionToolsforVisualStudio2017\">\uc81c\uc791\uc744 \uc704\ud55c \ud3b8\ub9ac\ud55c \ub3c4\uad6c<\/a> Visual Studio\uc758 Azure \ud568\uc218 \ud504\ub85c\uc81d\ud2b8.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07402-Azure-Functions-tool-for-Visual-Studio.png\" alt=\"Azure Functions tool for Visual Studio\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud558\uc9c0\ub9cc \ud604\uc7ac\ub85c\uc11c\ub294 \ud504\ub9ac\ubdf0 \ubc84\uc804\uc5d0\uc11c\ub9cc \uc791\ub3d9\ud569\ub2c8\ub2e4. Azure \ud568\uc218\ub97c \uac1c\ubc1c\ud558\uae30 \uc704\ud574 \uc774\ub7ec\ud55c \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud560 \ud544\uc694\ub294 \uc5c6\uc9c0\ub9cc \ud504\ub85c\uc138\uc2a4\uac00 \ub354 \uac04\ub2e8\ud574\uc84c\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ub3c4\uad6c\uac00 \uc900\ube44\ub418\uba74 \ud30c\uc77c\u2192\uc0c8\ub85c \ub9cc\ub4e4\uae30\u2192\ud504\ub85c\uc81d\ud2b8\ub85c \uc774\ub3d9\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \"\ud074\ub77c\uc6b0\ub4dc\"\uc5d0\uc11c \"Azure \ud568\uc218\"\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07403-New-Azure-Functions.png\" alt=\"New Azure Functions in Visual Studio\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\ub807\uac8c \ud558\uba74 \uba87 \uac1c\uc758 JSON \ud30c\uc77c\uc774 \uc788\ub294 \ube48 \ud504\ub85c\uc81d\ud2b8\uac00 \uc0dd\uae41\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8\ub97c \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc73c\ub85c \ud074\ub9ad\ud558\uace0 \ud56d\ubaa9\uc744 \ucd94\uac00\ud55c \ub2e4\uc74c \"Azure \ud568\uc218\"\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07404-Add-Azure-Function.png\" alt=\"Add Azure Function\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc73c\ub85c \uc5b4\ub5a4 \uc885\ub958\uc758 Azure \ud568\uc218\ub97c \ub9cc\ub4e4 \uac83\uc778\uc9c0 \uc120\ud0dd\ud574\uc57c \ud569\ub2c8\ub2e4. \uc800\ub294 \"HttpTrigger\"\ub97c \uc120\ud0dd\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc774 \uac8c\uc2dc\ubb3c\uc744 \ub2e8\uc21c\ud558\uac8c \uc720\uc9c0\ud558\uae30 \uc704\ud574 \"\uc775\uba85\"\uc744 \uc120\ud0dd\ud588\uc9c0\ub9cc \uc0ac\uc6a9 \uc0ac\ub840\uc5d0 \ub530\ub77c \uc778\uc99d \ud1a0\ud070\uc774 \ud544\uc694\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ub9e4\uc6b0 \uac04\ub2e8\ud55c \ud568\uc218 \uc178\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4(C# \ud074\ub798\uc2a4\ub85c). \uc774 \ud568\uc218\ub97c \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c(\uc2e4\uc81c\ub85c local.settings.json \ud30c\uc77c\uc758 \uc6a9\ub3c4\uac00 \ubc14\ub85c \uc774\uac83\uc785\ub2c8\ub2e4) \uc544\uc9c1 Azure\uc5d0 \ubc30\ud3ec\ud558\uc9c0 \uc54a\uace0\ub3c4 \ud14c\uc2a4\ud2b8\ud574 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_writing_a_get_function\">\"Get\" \ud568\uc218 \uc791\uc131<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uba3c\uc800, ID\ub85c \ub370\uc774\ud130\ub97c '\uac00\uc838\uc624\ub294' \ud568\uc218\uc640 \uc8fc\uc5b4\uc9c4 \ub370\uc774\ud130\ub97c \uc0c8\ub85c '\uc124\uc815'\ud558\ub294 \ud568\uc218 \ub450 \uac00\uc9c0\ub97c \ub9cc\ub4e4\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc800\ub294 \uac04\ub2e8\ud55c C# POCO\ub85c \ub370\uc774\ud130\uc758 \ubaa8\uc591\uc744 \uc815\uc758\ud558\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">public class MyDocument\r\n{\r\n    public string Name { get; set; }\r\n    public int ShoeSize { get; set; }\r\n    public decimal Balance { get; set; }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\uc5d0\uc11c \ud574\ub2f9 \ubb38\uc11c\ub97c '\uac00\uc838\uc624\uae30' \uc704\ud574 \uc791\uc131\ud55c Azure \ud568\uc218\uc785\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">public static async Task&lt;HttpResponseMessage&gt; Get([HttpTrigger(AuthorizationLevel.Anonymous, \"get\", Route = null)]HttpRequestMessage req, TraceWriter log)\r\n{\r\n    \/\/ parse query parameter\r\n    var id = req.GetQueryNameValuePairs()\r\n        .FirstOrDefault(q =&gt; string.Compare(q.Key, \"id\", true) == 0)\r\n        .Value;\r\n\r\n    using (var cluster = GetCluster())\r\n    {\r\n        using (var bucket = GetBucket(cluster))\r\n        {\r\n            var doc = await bucket.GetAsync&lt;MyDocument&gt;(id);\r\n            return req.CreateResponse(HttpStatusCode.OK, doc.Value, new JsonMediaTypeFormatter());\r\n        }\r\n    }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uba87 \uac00\uc9c0 \uc8fc\uc758\ud574\uc57c \ud560 \uc0ac\ud56d:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\ub098\ub294 <code>\"post\"<\/code> \ud234\ub9c1\uc5d0 \uc758\ud574 \uc0dd\uc131\ub41c \uac83\ub9cc <code>\"get\"<\/code> \ud568\uc218\uc785\ub2c8\ub2e4.<\/li>\n<li>\ucffc\ub9ac \ub9e4\uac1c\ubcc0\uc218\ub97c \uad6c\ubb38 \ubd84\uc11d\ud558\ub294 \uac83\uc740 \uc774 \uac04\ub2e8\ud55c \uacbd\uc6b0\uc5d0 \ub9ce\uc740 \ucd94\uac00 \ucf54\ub4dc\uac00 \ud544\uc694\ud55c \uac83\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4. \ub610\ub294 \"\ub9e4\uac1c \ubcc0\uc218\uac00 \uc788\ub294 \ud568\uc218\"\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><code>GetCluster<\/code> \uadf8\ub9ac\uace0 <code>GetBucket<\/code> \uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc774 \uae00\uc758 \ub4b7\ubd80\ubd84\uc5d0\uc11c \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uac04\ub2e8\ud788 \uc124\uba85\ud558\uc790\uba74 \uc774 \ucf54\ub4dc\uac00 \ub85c\uceec\uc5d0\uc11c \uc791\ub3d9\ud558\uace0 Azure\uc5d0 \ubc30\ud3ec\ub418\uae30\ub97c \uc6d0\ud55c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c \uc774 \ud568\uc218\ub97c \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589\ud558\uba74 \ub2e4\uc74c\uacfc \ube44\uc2b7\ud55c \ucf58\uc194 \ud654\uba74\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07405-Azure-Functions-running-locally.png\" alt=\"Azure Functions running locally\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud558\ub2e8\uc5d0\uc11c Azure \ud568\uc218 URL\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Couchbase\uc5d0 \ubb38\uc11c\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uace0(\uc544\uc9c1 \uc5c6\uc2b5\ub2c8\ub2e4), \ub2e4\uc74c\uacfc \uac19\uc774 HTTP \uc694\uccad\uc744 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.getpostman.com\/\">\ud3ec\uc2a4\ud2b8\ub9e8\uacfc \uac19\uc740 \ub3c4\uad6c<\/a> \uc5d0: <code><a class=\"bare\" href=\"https:\/\/localhost:7071\/api\/HttpTriggerCsharpGet?id=123456\">https:\/\/localhost:7071\/api\/HttpTriggerCsharpGet?id=123456<\/a><\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud604\uc7ac \uc774\ub807\uac8c \ud558\uba74 \uc720\ud6a8\uc131 \uac80\uc0ac\ub098 \uc624\ub958 \uac80\uc0ac \ucf54\ub4dc\uac00 \uc5c6\uc73c\ubbc0\ub85c \uc751\ub2f5\uc73c\ub85c \"null\"\uc774 \ubc18\ud658\ub429\ub2c8\ub2e4. \uc774\uc81c \ub118\uc5b4\uac00\uc11c \"Set\" \ud568\uc218\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_writing_a_set_function\">\"\uc9d1\ud569\" \ud568\uc218 \uc791\uc131<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\"\uc124\uc815\" \uae30\ub2a5\uc740 \uc57d\uac04 \ub2e4\ub985\ub2c8\ub2e4. \ubb38\uc11c \uc815\ubcf4\ub97c \uac8c\uc2dc\ud558\uace0 \"ID 123456\uc73c\ub85c \uc0bd\uc785\ub41c \uc0c8 \ubb38\uc11c\"\uc640 \uac19\uc740 \uba54\uc2dc\uc9c0\ub97c \ubc18\ud658\ud558\uae30\ub97c \uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">public static async Task&lt;HttpResponseMessage&gt; Set([HttpTrigger(AuthorizationLevel.Anonymous, \"post\", Route = null)] MyDocument req, TraceWriter log)\r\n{\r\n\r\n    var id = Guid.NewGuid().ToString();\r\n\r\n    using (var cluster = GetCluster())\r\n    {\r\n        using (var bucket = GetBucket(cluster))\r\n        {\r\n            await bucket.InsertAsync(id, req);\r\n        }\r\n    }\r\n\r\n    return new HttpResponseMessage\r\n    {\r\n        Content = new StringContent($\"New document inserted with ID {id}\"),\r\n        StatusCode = HttpStatusCode.OK\r\n    };\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ud568\uc218\ub294 Get \ud568\uc218\uc640 \ubaa8\uc591\uc774 \ube44\uc2b7\ud558\uc9c0\ub9cc \uba87 \uac00\uc9c0 \uc911\uc694\ud55c \uc0ac\ud56d\uc5d0 \uc720\uc758\ud574\uc57c \ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\uc624\uc9c1 <code>\"post\"<\/code> \ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/li>\n<li>\ub300\uc2e0 <code>HttpRequestMessage<\/code> \ub97c \uccab \ubc88\uc9f8 \ub9e4\uac1c \ubcc0\uc218\ub85c \uc0ac\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4. <code>\ub0b4 \ubb38\uc11c<\/code>\ub97c \ud074\ub9ad\ud558\uace0 Azure \ud568\uc218\uac00 \ubc14\uc778\ub529\uc744 \uc218\ud589\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/li>\n<li>\uc800\ub294 <code>HttpRequestMessage<\/code>\ub97c \ud638\ucd9c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. <code>CreateResponse<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc73c\ubbc0\ub85c \ub300\uc2e0 \uc0c8\ub85c\uc6b4 <code>HttpResponseMessage<\/code> \ub97c \uc9c1\uc811 \uc785\ub825\ud558\uba74 \ub9c8\uc9c0\ub9c9\uc5d0 \uc131\uacf5 \uba54\uc2dc\uc9c0\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Postman\uc5d0\uc11c \uc694\uccad\uc744 \ub9cc\ub4e4\ub824\uba74 \ub2e4\uc74c URL\uc744 \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. <code><a class=\"bare\" href=\"https:\/\/localhost:7071\/api\/HttpTriggerCsharpSet\">https:\/\/localhost:7071\/api\/HttpTriggerCsharpSet<\/a><\/code>. \ud5e4\ub354\uc5d0\uc11c <code>\ucf58\ud150\uce20 \uc720\ud615<\/code> \uc744 \"application\/json\"\uc73c\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c \ubcf8\ubb38\uc740 JSON\uc774 \ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">{\r\n    \"Name\": \"matthew\",\r\n    \"Balance\": 107.18,\r\n    \"ShoeSize\": 14\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uc5d0 \ud574\ub2f9 \ubb38\uc11c\ub97c \uac8c\uc2dc\ud558\uba74 \"ID f05ea97e-7c2f-4f88-b72d-19756f6a6f35\ub85c \uc0c8 \ubb38\uc11c\uac00 \uc0bd\uc785\ub418\uc5c8\uc2b5\ub2c8\ub2e4\"\ub77c\ub294 \uc751\ub2f5 \uba54\uc2dc\uc9c0\ub97c \ubc1b\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_connecting_to_couchbase_server\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\uc5d0 \uc5f0\uacb0<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774\ub7ec\ud55c \uae30\ub2a5\uc774 Couchbase Server\uc5d0 \uc5b4\ub5bb\uac8c \uc5f0\uacb0\ub418\ub294\uc9c0 \uac04\ub7b5\ud558\uac8c \uc124\uba85\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc55e\uc11c \ub450 \uac00\uc9c0 \ubc29\ubc95\uc744 \uc5b8\uae09\ud588\uc2b5\ub2c8\ub2e4, <code>GetCluster<\/code> \uadf8\ub9ac\uace0 <code>GetBucket<\/code> \ub97c \uc0dd\uc131\ud558\uc5ec \uac01\uac01 \ud074\ub7ec\uc2a4\ud130\uc640 \ubc84\ud0b7\uc5d0 \uc5f0\uacb0\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">private static Cluster GetCluster()\r\n{\r\n    var uri = ConfigurationManager.AppSettings[\"couchbaseUri\"];\r\n    return new Cluster(new ClientConfiguration\r\n    {\r\n        Servers = new List&lt;Uri&gt; { new Uri(uri) }\r\n    });\r\n}\r\n\r\nprivate static IBucket GetBucket(Cluster cluster)\r\n{\r\n    var bucketName = ConfigurationManager.AppSettings[\"couchbaseBucketName\"];\r\n    var bucketPassword = ConfigurationManager.AppSettings[\"couchbaseBucketPassword\"];\r\n\r\n    return cluster.OpenBucket(bucketName, bucketPassword);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uc2dc\uc810\uc5d0\uc11c \uc774 \ucf54\ub4dc\uc758 \ub300\ubd80\ubd84\uc740 \uc774\uc804\uc5d0 Couchbase Server\uc640 Couchbase .NET SDK\ub97c \uc0ac\uc6a9\ud574 \ubcf8 \uc801\uc774 \uc788\ub2e4\uba74 \uc775\uc219\ud560 \uac83\uc785\ub2c8\ub2e4. \ub2e8\uc77c \ub178\ub4dc \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc5f0\uacb0\ud55c \ub2e4\uc74c \ube44\ubc00\ubc88\ud638\uac00 \uc124\uc815\ub41c \ubc84\ud0b7\uc744 \uc5f0\uacb0\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4(\uc800\ub294 Couchbase Server 4.6\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud558\uc9c0\ub9cc \uc5ec\uae30\uc11c \uc9c0\uc801\ud574\uc57c \ud560 \uc911\uc694\ud55c \uc810\uc740 <code>Configuration.AppSettings<\/code>. \uc5d0\uc11c <code>local.settings.json<\/code> \ud30c\uc77c\uc5d0\uc11c \uac12 \uc139\uc158\uc5d0 \uc774\ub7ec\ud55c Couchbase \uc124\uc815\uc744 \ucd94\uac00\ud588\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\">{\r\n  \"IsEncrypted\": false,\r\n  \"Values\": {\r\n    \"AzureWebJobsStorage\": \"\",\r\n    \"AzureWebJobsDashboard\": \"\",\r\n    \"couchbaseUri\": \"https:\/\/localhost:8091\",\r\n    \"couchbaseBucketName\": \"azurefunctions\",\r\n    \"couchbaseBucketPassword\": \"Password88!\"\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Azure \ud568\uc218\ub97c \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589\ud560 \ub54c \uc774 \ud30c\uc77c\uc740 \uad6c\uc131\uc5d0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc800\ub294 \"azurefunctions\"\ub77c\ub294 \ubc84\ud0b7\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub85c\uceec\uc5d0\uc11c Couchbase Server\ub97c \uc2e4\ud589\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \"Values\"\uc758 \ubaa8\ub4e0 \ud56d\ubaa9\uc740 \ub2e4\uc74c\uc744 \ud1b5\ud574 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>Configuration.AppSettings<\/code>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_deploying_to_azure\">Azure\uc5d0 \ubc30\ud3ec<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Azure \ud568\uc218\ub97c \ubc30\ud3ec\ud558\uae30 \uc804\uc5d0 Azure\uc5d0\uc11c Couchbase \ud074\ub7ec\uc2a4\ud130\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. Azure Marketplace\uc5d0 \ub300\ud55c Ben Lackey\uc758 \ud6cc\ub96d\ud55c \uc791\uc5c5 \ub355\ubd84\uc5d0 \uc774 \uc791\uc5c5\uc740 \ub9e4\uc6b0 \uc27d\uc2b5\ub2c8\ub2e4. \uc77c\ub2e8 \ubc30\ud3ec\uac00 \uc644\ub8cc\ub418\uba74 Visual Studio \ub355\ubd84\uc5d0 Azure \ud568\uc218\ub97c \ubc30\ud3ec\ud558\ub294 \uac83\ub3c4 \uc27d\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_deploying_couchbase_server_to_azure\">Couchbase Server\ub97c Azure\uc5d0 \ubc30\ud3ec\ud558\uae30<\/h3>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc740 Azure\uc5d0\uc11c Couchbase Server \ud074\ub7ec\uc2a4\ud130\ub97c \ub9cc\ub4dc\ub294 \uacfc\uc815\uc744 \uc548\ub0b4\ud558\ub294 \uc9e7\uc740 \ub3d9\uc601\uc0c1\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>[\uc720\ud29c\ube0c https:\/\/www.youtube.com\/watch?v=q9mBBu0YqJI&amp;w=560&amp;h=315]<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc81c \uc608\uc5d0\uc11c\ub294 \ud574\ub2f9 \ub3d9\uc601\uc0c1\uc744 \uc790\uc138\ud788 \ub530\ub77c\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uc0ac\uc6a9\uc790 \uc774\ub984, \ube44\ubc00\ubc88\ud638 \ubc0f \ub9ac\uc18c\uc2a4 \uadf8\ub8f9\uc744 \uad6c\uc131\ud558\ub294 1\ub2e8\uacc4\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07406-Create-Couchbase-cluster-step-1.png\" alt=\"Create Couchbase Cluster step 1\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub450 \ubc88\uc9f8 \ub2e8\uacc4\uc5d0\uc11c\ub294 \uac00\uc7a5 \uc791\uace0 \uc800\ub834\ud55c VM(DS1 v2)\uc5d0 \ub2e8\uc77c \ub178\ub4dc \ud074\ub7ec\uc2a4\ud130\ub9cc \uc0dd\uc131\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \ub3d9\uae30\ud654 \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c \ub3d9\uae30\ud654 \uac8c\uc774\ud2b8\uc6e8\uc774 \ub178\ub4dc\ub97c 0\uac1c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07407-Create-Couchbase-cluster-step-2.png\" alt=\"Create Couchbase Cluster step 1\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>3\ub2e8\uacc4\ub294 \uc694\uc57d\uc774\uace0 4\ub2e8\uacc4\ub294 \ud655\uc778\uc785\ub2c8\ub2e4. Couchbase \ud074\ub7ec\uc2a4\ud130\uac00 Azure\uc5d0\uc11c \uc2dc\uc791\ub418\ub294 \ub370 3~5\ubd84 \uc815\ub3c4 \uac78\ub9bd\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud074\ub7ec\uc2a4\ud130\uac00 \uc0dd\uc131\ub418\uba74 \ud074\ub7ec\uc2a4\ud130\uc758 \uccab \ubc88\uc9f8 \ub178\ub4dc\uc5d0 \ub300\ud55c URL\uc744 \ucc3e\uc2b5\ub2c8\ub2e4(\uc704 \ub3d9\uc601\uc0c1\uc5d0\uc11c \uc124\uba85\ud55c \ub300\ub85c). \uc81c URL\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4: <code><a class=\"bare\" href=\"https:\/\/vm0.server-hsmkrefstzg2t.northcentralus.cloudapp.azure.com:8091\">https:\/\/vm0.server-hsmkrefstzg2t.northcentralus.cloudapp.azure.com:8091<\/a><\/code>. \uc774 URL\ub85c \uc774\ub3d9\ud558\uc5ec \ub85c\uadf8\uc778\ud558\uace0 \ubc84\ud0b7\uc744 \ub9cc\ub4ed\ub2c8\ub2e4(\uc800\ub294 \ub85c\uceec\uc5d0\uc11c \ud588\ub358 \uac83\ucc98\ub7fc \"azurefunctions\"\ub77c\uace0 \uc774\ub984 \uc9c0\uc5c8\uc2b5\ub2c8\ub2e4).<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_deploying_azure_functions_to_azure\">Azure \ud568\uc218\ub97c Azure\uc5d0 \ubc30\ud3ec\ud558\uae30<\/h3>\n<div class=\"paragraph\">\n<p>\uc774\uc81c Couchbase Server\uac00 \uc2e4\ud589 \uc911\uc785\ub2c8\ub2e4. \uc774\uc81c \uc774 \uc11c\ubc84\uc640 \uc0c1\ud638 \uc791\uc6a9\ud560 Azure \ud568\uc218\ub97c \ubc30\ud3ec\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc2dc\uc791\ud558\ub824\uba74 Visual Studio\uc5d0\uc11c \ud504\ub85c\uc81d\ud2b8\ub97c \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc73c\ub85c \ud074\ub9ad\ud558\uace0 \"\uac8c\uc2dc\"\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. \uc774 \uc791\uc5c5\uc744 \ucc98\uc74c \uc218\ud589\ud560 \ub54c \uc0c8 \uac8c\uc2dc \ud504\ub85c\ud544\uc744 \ub9cc\ub4e4\uc5b4\uc57c \ud558\uc9c0\ub9cc \uc774\ub294 \uac04\ub2e8\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07408-Publish-Azure-Functions.png\" alt=\"Publish Azure functions\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud568\uc218\uc5d0 \uc571 \uc774\ub984\uc744 \uc9c0\uc815\ud558\uace0, \uad6c\ub3c5\uc744 \uc120\ud0dd\ud558\uace0, \ub9ac\uc18c\uc2a4 \uadf8\ub8f9\uc744 \uc120\ud0dd\ud558\uace0(\uc0c8 \uadf8\ub8f9\uc744 \ub9cc\ub4e4\uac70\ub098 \uc704\uc5d0\uc11c Couchbase\uc6a9\uc73c\ub85c \ub9cc\ub4e0 \uac83\uacfc \ub3d9\uc77c\ud55c \uadf8\ub8f9\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc74c), \uc11c\ube44\uc2a4 \uc694\uae08\uc81c\ub97c \uc120\ud0dd\ud55c \ub2e4\uc74c \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc800\uc7a5\uc18c \uacc4\uc815\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4. \ud544\uc694\ud55c \uacbd\uc6b0 \uc0c8 \uacc4\uc815\uc744 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07409-Create-Publish-Profile.png\" alt=\"Create Publish Profile\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\"\ub9cc\ub4e4\uae30\"\ub97c \ud074\ub9ad\ud558\uba74 \uc774\ub7ec\ud55c \ud56d\ubaa9\uc774 Azure\uc5d0\uc11c \ub9cc\ub4e4\uc5b4\uc9c0\uae30 \uc2dc\uc791\ud569\ub2c8\ub2e4(1~2\ubd84 \uc815\ub3c4 \uac78\ub9b4 \uc218 \uc788\uc74c).<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_trying_out_the_azure_functions\">Azure \uae30\ub2a5 \uc0ac\uc6a9\ud574 \ubcf4\uae30<\/h3>\n<div class=\"paragraph\">\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c, Azure \ud568\uc218\uac00 Couchbase Server\uc5d0 \uc5f0\uacb0\ud558\ub824\uba74 URI, \ubc84\ud0b7 \uc774\ub984 \ubc0f \ube44\ubc00\ubc88\ud638\ub97c \uc54c\uc544\uc57c \ud55c\ub2e4\ub294 \uc810\uc744 \uae30\uc5b5\ud558\uc138\uc694. \ud574\ub2f9 \uc815\ubcf4\ub294 local.settings.json\uc5d0 \uc788\uc9c0\ub9cc \uc774 \ud30c\uc77c\uc740 \uc2e4\uc81c Azure \ubc30\ud3ec\uc5d0\ub294 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Azure \ud3ec\ud138\uc5d0\uc11c Azure \ud568\uc218(\uc800\ub294 cbazurefunctions\ub77c\uace0 \ud569\ub2c8\ub2e4)\ub85c \uc774\ub3d9\ud55c \ub2e4\uc74c \"\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc124\uc815\"\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4. \"\uc571 \uc124\uc815\"\uc5d0\uc11c \uc138 \uac00\uc9c0 \uc124\uc815\uc778 couchbaseUri, couchbaseBucketName \ubc0f couchbaseBucketPassword\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/08\/07410-Azure-Functions-App-settings.png\" alt=\"Azure Functions App settings\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \uc704\uc5d0\uc11c \uc124\uba85\ud55c Postman \ud504\ub85c\uc138\uc2a4\ub97c \ubc18\ubcf5\ud558\uc5ec Azure \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud574 \ubcf4\uace0 \uc791\ub3d9\ud558\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4. URL\uc740 \ub2e4\ub97c \uc218 \uc788\uc9c0\ub9cc \uc81c URL\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a class=\"bare\" href=\"https:\/\/cbazurefunctions.azurewebsites.net\/\">https:\/\/cbazurefunctions.azurewebsites.net\/<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary\">\uc694\uc57d<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Azure \ud568\uc218\ub97c \uc0ac\uc6a9\ud574 \ubcf8 \uac83\uc740 \uc774\ubc88\uc774 \ucc98\uc74c\uc785\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \uac04\ub2e8\ud55c \ub370\ubaa8\ub97c \ubcf4\uc5ec \ub4dc\ub9ac\uc9c0\ub9cc \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30 \uc804\uc5d0 \uace0\ub824\ud574\uc57c \ud560 \ub2e4\ub978 \uc694\uc18c\ub3c4 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\uc778\uc99d - \uac04\ub2e8\ud558\uac8c \uc720\uc9c0\ud558\uae30 \uc704\ud574 \uc775\uba85\uc758 Azure \ud568\uc218\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. Azure \ud568\uc218\ub294 \uc778\uc99d \ud1a0\ud070\uc744 \uc81c\uacf5\ud558\uc5ec \uad8c\ud55c\uc774 \uc788\ub294 \uc0ac\uc6a9\uc790 \uc678\uc5d0\ub294 \uc561\uc138\uc2a4\ud558\uc9c0 \ubabb\ud558\ub3c4\ub85d \ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uc571 \uc124\uc815 - \ud3ec\ud138\uc5d0\uc11c \uc218\ub3d9\uc73c\ub85c \uc124\uc815\ud558\ub294 \uac83\uc774 \ucd5c\uc120\uc758 \ud574\uacb0\ucc45\uc774 \uc544\ub2d0 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubd80\ubd84\uc744 \uc790\ub3d9\ud654\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc774 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4.<\/li>\n<li>HTTPS\/TLS - Azure \ud568\uc218\uc5d0 \ub370\uc774\ud130\ub97c \uac00\uc838\uc624\uace0 \uac8c\uc2dc\ud560 \ub54c \uc77c\uc815 \uc218\uc900\uc758 \uc554\ud638\ud654\uac00 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc704\uc758 \uc608\ub294 \ubaa8\ub4e0 \uac83\uc744 \uc77c\ubc18 \ud14d\uc2a4\ud2b8\ub85c \uc804\uc1a1\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc81c\uac00 \ub193\uce5c \uac83\uc774 \uc788\ub098\uc694? \uc774 \uacfc\uc815\uc744 \ub354 \uc27d\uac8c \ub610\ub294 \ub354 \uc88b\uac8c \ub9cc\ub4e4\uae30 \uc704\ud574 \uacf5\uc720\ud560 \ud301\uc774\ub098 \uc81c\uc548\uc774 \ub354 \uc788\ub098\uc694? \uc544\ub798\uc5d0 \ub313\uae00\uc744 \ub0a8\uae30\uac70\ub098 \ub2e4\uc74c \uc8fc\uc18c\ub85c \ud551\uc744 \ubcf4\ub0b4\uc8fc\uc138\uc694. <a href=\"https:\/\/twitter.com\/mgroves\">\ud2b8\uc704\ud130 @mgroves<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Azure Functions are Microsoft\u2019s answer to Amazon\u2019s Lambdas or Google\u2019s Cloud Functions (aka &#8220;serverless&#8221; architecture). They give you a way to deploy small pieces of code, and let Azure handle the underlying server. I\u2019ve never used them before, so I [&hellip;]<\/p>","protected":false},"author":71,"featured_media":3934,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10127,1816],"tags":[1245,1673,1772],"ppma_author":[8937],"class_list":["post-3923","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-c-sharp","category-couchbase-server","tag-cloud","tag-microsoft-azure","tag-visual-studio"],"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>Azure Functions with Couchbase Server - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Azure Functions are Microsoft&#039;s answer to &quot;serverless&quot;. With this post, you&#039;ll develop, deploy, and interact with Couchbase with Azure Functions.\" \/>\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\/azure-functions-couchbase-server\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Functions with Couchbase Server\" \/>\n<meta property=\"og:description\" content=\"Azure Functions are Microsoft&#039;s answer to &quot;serverless&quot;. With this post, you&#039;ll develop, deploy, and interact with Couchbase with Azure Functions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/azure-functions-couchbase-server\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-09T08:00:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:57:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"922\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\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\/azure-functions-couchbase-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Azure Functions with Couchbase Server\",\"datePublished\":\"2017-08-09T08:00:47+00:00\",\"dateModified\":\"2025-06-14T03:57:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/\"},\"wordCount\":1437,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"keywords\":[\"cloud\",\"Microsoft Azure\",\"Visual Studio\"],\"articleSection\":[\".NET\",\"C#\",\"Couchbase Server\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/\",\"name\":\"Azure Functions with Couchbase Server - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"datePublished\":\"2017-08-09T08:00:47+00:00\",\"dateModified\":\"2025-06-14T03:57:02+00:00\",\"description\":\"Azure Functions are Microsoft's answer to \\\"serverless\\\". With this post, you'll develop, deploy, and interact with Couchbase with Azure Functions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg\",\"width\":1920,\"height\":922,\"caption\":\"National Cloud Database Day\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Azure Functions with Couchbase Server\"}]},{\"@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\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Azure Functions with Couchbase Server - The Couchbase Blog","description":"Azure Functions are Microsoft's answer to \"serverless\". With this post, you'll develop, deploy, and interact with Couchbase with Azure Functions.","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\/azure-functions-couchbase-server\/","og_locale":"ko_KR","og_type":"article","og_title":"Azure Functions with Couchbase Server","og_description":"Azure Functions are Microsoft's answer to \"serverless\". With this post, you'll develop, deploy, and interact with Couchbase with Azure Functions.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/azure-functions-couchbase-server\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-08-09T08:00:47+00:00","article_modified_time":"2025-06-14T03:57:02+00:00","og_image":[{"width":1920,"height":922,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"8\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Azure Functions with Couchbase Server","datePublished":"2017-08-09T08:00:47+00:00","dateModified":"2025-06-14T03:57:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/"},"wordCount":1437,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","keywords":["cloud","Microsoft Azure","Visual Studio"],"articleSection":[".NET","C#","Couchbase Server"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/","url":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/","name":"Azure Functions with Couchbase Server - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","datePublished":"2017-08-09T08:00:47+00:00","dateModified":"2025-06-14T03:57:02+00:00","description":"Azure Functions are Microsoft's answer to \"serverless\". With this post, you'll develop, deploy, and interact with Couchbase with Azure Functions.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/08\/074-hero-Azure-Clouds.jpg","width":1920,"height":922,"caption":"National Cloud Database Day"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/azure-functions-couchbase-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Azure Functions with Couchbase Server"}]},{"@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\/3929663e372020321b0152dc4fa65a58","name":"\ub9e4\ud29c \uadf8\ub85c\ube0c\uc2a4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4. 90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4.  C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4.  90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4.  \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4.  \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3923","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\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=3923"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3923\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/3934"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=3923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=3923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=3923"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=3923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}