{"id":2327,"date":"2016-07-12T13:18:54","date_gmt":"2016-07-12T13:18:53","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2327"},"modified":"2025-10-09T07:25:56","modified_gmt":"2025-10-09T14:25:56","slug":"sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/","title":{"rendered":".NET SDK\uac00 \ud3ec\ud568\ub41c Couchbase Server 4.5\uc758 \ud558\uc704 \ubb38\uc11c API(\uc7ac\uac80\ud1a0)"},"content":{"rendered":"<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p><em>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc740 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/developer-preview-of-new-sub-document-api-included-w-2.2.6-release-of-couchbase-.net-sdk\/\">\uc81c\ud504 \ubaa8\ub9ac\uc2a4\uc758 \uc774\uc804 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c<\/a> \ud558\uc704 \ubb38\uc11c API\uac00 \uc544\uc9c1 \uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0 \ubc84\uc804\uc77c \ub54c \ub2e4\ub8e8\uc5c8\ub358 \ub0b4\uc6a9\uc785\ub2c8\ub2e4. \ud574\ub2f9 \ub9b4\ub9ac\uc2a4 \uc774\ud6c4 API\uc5d0 \uba87 \uac00\uc9c0 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<\/em><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud568\uaed8 <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/introduction\/intro.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 4.5<\/a> \ubc0f <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/sdk\/dotnet\/start-using-sdk.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">.NET SDK 2.3.x<\/a>\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774\uc81c <em>\ud558\uc704 \ubb38\uc11c<\/em> \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc804 Couchbase \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 \ubaa8\ub4e0 \ubb38\uc11c \ubcc0\uacbd\uc774 \uc804\uccb4 \ubb38\uc11c\uc640 \uad00\ub828\ub41c \uc6d0\uc790\uc801 \ubcc0\uacbd\uc774\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e8\uc77c \ud544\ub4dc\ub9cc \ubcc0\uacbd\ud55c \ub2e4\uc74c \uc5c5\ub370\uc774\ud2b8\ub97c \uc218\ud589\ud558\ub824\ub294 \uacbd\uc6b0 \uc0c8 \uc218\uc815\ubcf8\uc5d0 \uc758\ud574 Couchbase \uc11c\ubc84\uc758 \uc804\uccb4 \ubb38\uc11c\uac00 \ubcf5\uc0ac\ub429\ub2c8\ub2e4. \ubb38\uc81c\ub294 \ubb38\uc11c\uac00 \ud06c\uac70\ub098 \ub124\ud2b8\uc6cc\ud06c\uac00 \ub290\ub9b0 \uacbd\uc6b0(\ub610\ub294 \ub458 \ub2e4) \uc218\uc815\ub418\uc9c0 \uc54a\uc740 \ub370\uc774\ud130\ub97c \uc804\uc1a1\ud558\ub294 \ub370 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\uac00 \ub0ad\ube44\ub41c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \ub354 \ub098\uc740 \uc131\ub2a5\uc758 \uc194\ub8e8\uc158\uc740 \ubb38\uc11c\uc758 \uc77c\ubd80\ubd84 \ub610\ub294 \ubcc0\uacbd\ub41c \uac12\ub9cc \uc804\uc1a1\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ud558\uc704 \ubb38\uc11c API\ub97c \uc0ac\uc6a9\ud558\uba74 \ubb38\uc11c\uc758 \uc694\uc18c\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uac70\ub098 \uc694\uc18c\ub97c \uc0ad\uc81c\ud560 \ub54c \ubcc0\uacbd\ud560 \uc870\uac01\uc758 \uacbd\ub85c\ub9cc \uc720\uc120\uc73c\ub85c \uc804\uc1a1\ub418\uace0 \ubb38\uc11c\uc758 \ud574\ub2f9 \ubd80\ubd84\ub9cc \uc218\uc815\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/july\/sub-document-api-in-couchbase-server-4.5-with-the-.net-sdk-revisted\/subdocument_001.jpg\" alt=\"Subdocument\" \/><\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>API\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 \uc791\uc5c5\uc5d0\ub294 \uac1c\ubcc4 \uc911\ucca9 \uc694\uc18c\uc758 \ubcc0\uc774(\uc77c\uba85 <em>sub-<\/em>\ubb38\uc11c)\ub97c \ubc30\uc5f4 \ubc0f \uc0ac\uc804 \uc218\uc815\uc73c\ub85c \ubcc0\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uce74\uc6b4\ud130 \uc5f0\uc0b0\ub3c4 \uc9c0\uc6d0\ub418\uba70, \uc784\ubca0\ub514\ub4dc JSON \uc870\uac01\uc5d0 \ub300\ud55c \uac80\uc0c9 \uc5f0\uc0b0\ub3c4 \uc9c0\uc6d0\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>API\ub294 \ub2e4\uc74c\uc744 \ud1b5\ud574 \ub178\ucd9c\ub429\ub2c8\ub2e4. <em>\uc720\ucc3d\ud55c<\/em> \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 \uc5ec\ub7ec \uc5f0\uc0b0\uc744 \ucd94\uac00\ud55c \ub2e4\uc74c \ubb38\uc11c\uc5d0 \ub300\ud574 \uc6d0\uc790\uc801\uc73c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc5f0\uc0b0\uc744 \uc704\ud55c \ube4c\ub354\uc640 \uc77d\uae30 \ub610\ub294 '\uc870\ud68c'(\uc8fc\uc5b4\uc9c4 \uacbd\ub85c\uc5d0 \uc694\uc18c\uac00 \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218\ub3c4 \uc788\uc74c)\ub97c \uc704\ud55c \ube4c\ub354\uc758 \ub450 \uac00\uc9c0 '\ube4c\ub354'\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueprerequisite-couchbase-server-4-5\">\ud544\uc218 \uad6c\uc131 \uc694\uc18c: Couchbase Server 4.5<\/h3>\n<div class=\"paragraph\">\n<p>\uc544\ub798 \uc608\uc2dc\ub97c \ub530\ub974\ub824\uba74 \ub2e4\uc74c\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc5ec \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/get-started-developing-nosql\/#Download_Couchbase_Server?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 4.5<\/a>. \uc774\uc804\uc5d0 Couchbase Server\ub97c \uc124\uce58\ud55c \uc801\uc774 \uc5c6\ub2e4\uba74 \ub2e4\uc74c \ub3d9\uc601\uc0c1\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/how-to-install-couchbase-server-on-windows-video\/\">Windows\uc5d0 Couchbase Server\ub97c \uc124\uce58\ud558\ub294 \ubc29\ubc95<\/a>. \uc5b4\ub5a4 OS\ub97c \uc0ac\uc6a9\ud558\ub4e0 \uc815\ub9d0 \uc27d\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truesub-document-api-overview\">\ud558\uc704 \ubb38\uc11c API \uac1c\uc694<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c \uc608\uc81c\uc5d0\uc11c\ub294 ID\uac00 'puppy'\uc778 \ubb38\uc11c\ub97c \uc0ac\uc6a9\ud558\uba70 \ub2e4\uc74c\uacfc \uac19\uc774 \uc2dc\uc791\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">  {\r\n  \"type\": \"\uac1c\",\r\n  \"\ud488\uc885\": \"\ud54f\ubd88\/\uce58\uc640\uc640\",\r\n  \"name\": \"\uac15\uc544\uc9c0\",\r\n  \"toys\": [\r\n    \"squeaker\",\r\n    \"\uacf5\",\r\n    \"shoe\"\r\n  ],\r\n  \"owner\": {\r\n    \"type\": \"\uc11c\ubc88\ud2b8\",\r\n    \"name\": \"\ub3c8 \ub178\ud2b8\",\r\n    \"age\": 63\r\n  },\r\n  \"attributes\": {\r\n    \"fleas\": true,\r\n    \"color\": \"white\",\r\n    \"eyeColor\": \"\uac08\uc0c9\",\r\n    \"age\": 5,\r\n    \"dirty\": true,\r\n    \"sex\": \"female\"\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ubaa8\ub4e0 <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/011SubDocumentInDotNet\/src\">\uc608\uc81c\ub294 \uae43\ud5c8\ube0c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/a> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8\ub97c \ubcf5\uc81c\ud558\uace0 API\ub97c \uc0ac\uc6a9\ud574 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truemutateinbuilder-and-lookupinbuilder\">MutateInBuilder \ubc0f \ub8e9\uc5c5\uc778\ube4c\ub354<\/h3>\n<div class=\"paragraph\">\n<p>\ud558\uc704 \ubb38\uc11c API\ub294 \ubb38\uc11c\uc5d0\uc11c \uc5ec\ub7ec \uc791\uc5c5\uc744 \uc5f0\uacb0\ud558\uae30 \uc704\ud574 \uc720\ucc3d\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud1b5\ud574 \ube4c\ub354 \ud328\ud134\uc744 \ud65c\uc6a9\ud558\ub294 \ub450 \uac00\uc9c0 \uc0c8\ub85c\uc6b4 \uc720\ud615\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub450 \uac1c\uccb4 \ubaa8\ub450 <code>MutateIn<\/code> \ub610\ub294 <code>\ub8e9\uc5c5\uc778<\/code> \uc5d0 <code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ubc84\ud0b7<\/code> \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0 \uc791\uc5c5 \uc911\uc778 \ubb38\uc11c\uc758 \ud0a4\ub97c \uc804\ub2ec\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">\/\/\uae30\ubcf8 \uc124\uc815\uc73c\ub85c \ud074\ub7ec\uc2a4\ud130 \ub3c4\uc6b0\ubbf8\ub97c \ucd08\uae30\ud654\ud569\ub2c8\ub2e4(\uc608: localhost).\r\nClusterHelper.Initialize();\r\nvar bucket = ClusterHelper.GetBucket(\"default\");\r\n\r\n\/\/ \"thekey\" \ubb38\uc11c\uc5d0 \ub300\ud55c \ub3cc\uc5f0\ubcc0\uc774 \ube4c\ub354\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.\r\nvar mutate = bucket.MutateIn(\"thekey\");\r\n\r\n\/\/\"thekey2\" \ubb38\uc11c\uc5d0 \ub300\ud55c \uc870\ud68c \ube4c\ub354\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.\r\nvar lookup = bucket.LookupIn(\"thekey2\");\r\n\r\nClusterHelper.Close();<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ube4c\ub354 \uac1d\uccb4\uac00 \uc788\uc73c\uba74 \uc608\ub97c \ub4e4\uc5b4 \ubb38\uc11c\uc5d0 \ub300\ud574 \uc2e4\ud589\ud560 \uc5ec\ub7ec \uc791\uc5c5\uc744 \uccb4\uc778\uc73c\ub85c \uc5f0\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">var builder = bucket.LookupIn(id).\r\n    Get(\"type\").\r\n    Get(\"name\").\r\n    Get(\"owner\").\r\n    Exists(\"notfound\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c \ubaa8\ub4e0 \uc791\uc5c5\uc744 \ud55c \ubc88\uc5d0 \uc11c\ubc84\ub85c \uc804\uc1a1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">var fragment = builder.Execute();<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>OpStatus\uc640 \uacbd\ub85c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud55c \uc791\uc5c5\uc758 \uacb0\uacfc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \uacbd\ub85c <code>\"type\"<\/code>:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">if (fragment.OpStatus(\"type\") == ResponseStatus.Success)\r\n{\r\n    \ubb38\uc790\uc5f4 \ud615\uc2dd = \"Path='{0}' Value='{1}'\";\r\n    Console.WriteLine(format, \"type\", fragment.Content(\"type\"));\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc740 \uba87 \uac00\uc9c0 \ubc29\ubc95\uacfc \ud544\ub4dc\uc5d0 \ub300\ud55c \uc124\uba85\uc785\ub2c8\ub2e4. <code>IDocumentFragment<\/code> \uc778\ud130\ud398\uc774\uc2a4.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all spread\">\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc774\ub984<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc124\uba85<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\ucf58\ud150\uce20(...)<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc9c0\uc815\ub41c \uacbd\ub85c \ub610\ub294 \uc778\ub371\uc2a4\uc758 \ucf58\ud150\uce20\ub97c \uac00\uc838\uc635\ub2c8\ub2e4.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc874\uc7ac(...)<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc9c0\uc815\ub41c \uacbd\ub85c \ub610\ub294 \uc778\ub371\uc2a4\uc5d0 \ub300\ud55c \uacb0\uacfc\uac00 \uc788\ub294 \uacbd\uc6b0 true\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Count()<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\ube4c\ub354\uac00 \uc720\uc9c0 \uad00\ub9ac\ud558\ub294 \ud604\uc7ac \uc791\uc5c5\uc758 \uac1c\uc218\uc785\ub2c8\ub2e4.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">OpStatus(...)<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uadf8\ub9ac\uace0 <code>\uc751\ub2f5 \uc0c1\ud0dc<\/code> \uc778\ub371\uc2a4 \ub610\ub294 \uacbd\ub85c\uc5d0\uc11c \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc0c1\ud0dc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uadf8\ub9ac\uace0 <code>\uc751\ub2f5 \uc0c1\ud0dc<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uc804\uccb4 \ub2e4\uc911 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc131\uacf5<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\uc804\uccb4 \ub2e4\uc911 \uc791\uc5c5\uc774 \uc131\uacf5\ud558\uba74 \ucc38\uc785\ub2c8\ub2e4.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>\uc774\ub7ec\ud55c \ud504\ub85c\ud37c\ud2f0 \ub610\ub294 \uba54\uc11c\ub4dc \uc678\uc5d0\ub3c4 \ub2e4\uc74c\uc5d0\uc11c \uc0c1\uc18d\ub41c \ub2e4\ub978 \ubaa8\ub4e0 \ud504\ub85c\ud37c\ud2f0\uac00 \uc788\uc2b5\ub2c8\ub2e4. <code>\uc791\uc5c5 \uacb0\uacfc<\/code> (\ud0a4\/\uac12 \uc5f0\uc0b0\uc758 \ud45c\uc900 \uc751\ub2f5): \uc5c5\uc11c\ud2b8, \uc81c\uac70, \ubc14\uafb8\uae30 \ub4f1.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueerror-handling\">\uc624\ub958 \ucc98\ub9ac<\/h3>\n<div class=\"paragraph\">\n<p>\uc5ec\ub7ec \uac1c\uc758 <em>\ub3cc\uc5f0\ubcc0\uc774<\/em>\uc911 \ud558\ub098\uac00 \uc2e4\ud328\ud558\uba74 \uc804\uccb4 \ub2e4\uc911 \uc791\uc5c5 \uc694\uccad\uc774 \uc2e4\ud328\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ub2e8\uc77c \ubb38\uc11c \ub0b4\uc5d0\uc11c \ubcc0\uacbd\uc744 \uc218\ud589\ud560 \ub54c \ud2b8\ub79c\uc7ad\uc158 '\uc804\ubd80 \uc544\ub2c8\uba74 \uc804\ubb34' \uc2dc\ub9e8\ud2f1\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc5ec\ub7ec \uac1c\uc758 <em>\uc870\ud68c<\/em>\ub97c \uc0ac\uc6a9\ud558\uba74 \uc11c\ubc84\uac00 \uc694\uccad\ub41c \ub9cc\ud07c\uc758 \ud56d\ubaa9\uc744 \ubc18\ud658\ud558\ub824\uace0 \uc2dc\ub3c4\ud558\uba74\uc11c \uc77c\ubd80 \uc791\uc5c5\uc740 \uc131\uacf5\ud558\uace0 \uc77c\ubd80\ub294 \uc2e4\ud328\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>If the operation(s) failed, then the`Status` property will contain a top-level error response such as <code>\ud558\uc704 \ubb38\uc11c \ub2e4\uc911 \uacbd\ub85c \uc2e4\ud328<\/code>. \uc774\ub294 \uad6c\uccb4\uc801\uc778 \uc624\ub958\ub97c \ud30c\uc545\ud558\uae30 \uc704\ud574 \uc791\uc5c5 \uacb0\uacfc\ub97c \ub354 \uc790\uc138\ud788 \uc870\uc0ac\ud574\uc57c \ud55c\ub2e4\ub294 \ud45c\uc2dc\uc785\ub2c8\ub2e4. \uc774 \uc791\uc5c5\uc744 \ubc18\ubcf5\ud558\uc5ec \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>OpStatus<\/code> \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uace0 \uc778\ub371\uc2a4 \ub610\ub294 \uacbd\ub85c\ub97c \uc804\ub2ec\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">var builder = bucket.LookupIn(id).\r\n    Get(\"type\").\r\n    Get(\"somepaththatdoesntexist\").\r\n    Get(\"owner\");\r\n\r\nvar fragment = builder.Execute();\r\nConsole.WriteLine(\"Generic error: {0}{1}Specific Error: {2}\",\r\n    fragment.Status, Environment.NewLine, fragment.OpStatus(1));\r\n\r\nConsole.WriteLine(\"Generic error: {0}{1}Specific Error: {2}\",\r\n   fragment.Status, Environment.NewLine, fragment.OpStatus(\"somepaththatdoesntexist\"));<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uacbd\uc6b0 \ubb38\uc11c \ub0b4\uc5d0 \"\uc77c\ubd80 \uacbd\ub85c\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacbd\ub85c\"\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c \ubc18\ud658\ub41c \ud2b9\uc815 \uc624\ub958\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <code>\ud558\uc704 \ubb38\uc11c \uacbd\ub85c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c<\/code>. \ube4c\ub354 \uc720\ud615\uacfc \uc624\ub958 \uc870\uac74\uc5d0 \ub530\ub77c \ub2e4\uc591\ud55c \uc870\ud569\uc758 \uc624\ub958\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truelookupinbuilder-examples\">\ub8e9\uc5c5\uc778\ube4c\ub354 \uc608\uc81c<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uadf8\ub9ac\uace0 <code>\ub8e9\uc5c5\uc778\ube4c\ub354<\/code> \uc720\ud615\uc740 \uacbd\ub85c\ubcc4\ub85c \uac12\uc744 \uac00\uc838\uc624\ub294 \uac83\uacfc \uc9c0\uc815\ub41c \uacbd\ub85c\uc5d0 \uac12\uc774 \uc788\ub294\uc9c0 \ud655\uc778\ud558\ub294 \ub450 \uac00\uc9c0 \uc791\uc5c5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueget\">Get:<\/h3>\n<div class=\"paragraph\">\n<p>\uc870\ud68c\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <code>\uc18c\uc720\uc790<\/code> \uc870\uac01\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\uc5d0 \uacbd\ub85c \ub9e4\uac1c \ubcc0\uc218\ub85c \"owner\"\ub97c \uc804\ub2ec\ud558\uba74...<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void GetExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 \uacbd\ub85c, \ubb38\uc790\uc5f4 id)\r\n{\r\n    var builder = bucket.LookupIn(id).\r\n        Get(path).\r\n        Execute();\r\n\r\n    var fragment = builder.Content(path);\r\n    Console.WriteLine(fragment);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>...\ucf58\uc194\uc5d0 \ucd9c\ub825\ub418\ub294 \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">{\r\n    \"type\": \"\uc11c\ubc88\ud2b8\",\r\n    \"name\": \"\ub3c8 \ub178\ud2b8\",\r\n    \"age\": 63\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueexist\">\uc874\uc7ac\ud569\ub2c8\ub2e4:<\/h3>\n<div class=\"paragraph\">\n<p>\uacbd\ub85c\uac00 \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\uc758 \uacbd\ub85c\ub85c \"owner\"\ub97c \uc804\ub2ec\ud558\uba74...<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">\uacf5\uc6a9 \uc815\uc801 void ExistsExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 \uacbd\ub85c, \ubb38\uc790\uc5f4 id)\r\n{\r\n    var builder = bucket.LookupIn(id).\r\n        Exists(path).\r\n        Execute();\r\n\r\n    var found = builder.Content(path);\r\n    Console.WriteLine(found);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>...\ucd9c\ub825\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <code>true<\/code>\uacbd\ub85c\uac00 <code>\uc18c\uc720\uc790<\/code> \uac00 \ubb38\uc11c \ub0b4\uc5d0 \uc2e4\uc81c\ub85c \uc874\uc7ac\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"truemutateinbuilder\">\ubba4\ud14c\uc774\ud2b8\uc778\ube4c\ub354<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>MutateInBuilder\ub294 \uc2a4\uce7c\ub77c \uac12, \ub515\uc154\ub108\ub9ac \ubc0f \ubc30\uc5f4\uc758 \ubcc0\ud615\uc744 \uc9c0\uc6d0\ud558\ub294 \ub2e4\uc591\ud55c \uba54\uc11c\ub4dc\uc640 \uc6d0\uc790 \uce74\uc6b4\ud130 \uc5f0\uc0b0\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueinsert\">\uc0bd\uc785\ud569\ub2c8\ub2e4:<\/h3>\n<div class=\"paragraph\">\n<p>\uc0bd\uc785\uc740 \uc0ac\uc804\uc5d0 \uac12\uc744 \ucd94\uac00\ud558\uba70, \uc120\ud0dd\uc801\uc73c\ub85c \ud3ec\ud568 \uc694\uc18c(\uc0ac\uc804 \uc790\uccb4)\ub97c \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void InsertExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \ubb38\uc790\uc5f4 \uac12)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        Insert(\uacbd\ub85c, \uac12, \ucc38).  \/\/ \uae30\ubcf8\uac12\uc740 false\uc785\ub2c8\ub2e4.\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc704\uc758 \uba54\uc11c\ub4dc\ub97c \uc774\ub807\uac8c \ud638\ucd9c\ud588\ub2e4\uba74<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">InsertExample(bucket, id,\"attributes.hairLength\", \"short\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \ubb38\uc11c\uc758 \uc18d\uc131 \uc0ac\uc804\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n\"attributes\":\r\n{\r\n    \"fleas\": true,\r\n    \"color\": \"white\",\r\n    \"eyeColor\": \"brown\",\r\n    \"age\": 5,\r\n    \"dirty\": true,\r\n    \"sex\": \"female\",\r\n    \"hairLength\": \"short\"\r\n}\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ucc38\uace0 <code>\uc0bd\uc785<\/code> \uba54\uc11c\ub4dc\uc5d0\ub294 \uc120\ud0dd\uc801 \ubd80\uc6b8 \ub9e4\uac1c\ubcc0\uc218\uc778 <code>createParents<\/code>. \uae30\ubcf8\uc801\uc73c\ub85c \uac70\uc9d3\uc785\ub2c8\ub2e4. true\uc774\uba74 \ud558\uc704 \ubb38\uc11c API\uac00 \ud544\ub4dc\uac00 \uc874\uc7ac\ud558\ub294 \ub370 \ud544\uc694\ud55c \uacbd\ub85c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. false\uc778 \uacbd\uc6b0 \ud558\uc704 \ubb38\uc11c API\ub294 \ud544\ub4dc\uc758 \ubd80\ubaa8\uac00 \uc774\ubbf8 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0\uc5d0\ub9cc \ud544\ub4dc\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc704\uc758 \uc608\uc5d0\uc11c <code>\uc18d\uc131<\/code> \ud544\ub4dc\uac00 \uc774\ubbf8 \uc874\uc7ac\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c \uc608\uc81c\uc5d0\uc11c\ub294 \uc0c1\uc704 \ud544\ub4dc(<code>\uc0c8\ub85c\uc6b4 \uc18d\uc131<\/code>)\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">InsertExample(bucket, id, \"anewattribute.withakey\", \"somevalue\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7ec\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc0c8 \uc18d\uc131\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4. <code>\uc0c8\ub85c\uc6b4 \uc18d\uc131<\/code> \ub77c\ub294 \ub2e8\uc77c \ud0a4\ub97c \ubb38\uc11c\uc5d0 \ucd94\uac00\ud558\uace0 <code>withakey<\/code> \uac12\uc73c\ub85c <code>\uc77c\ubd80\uac12<\/code>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">...\r\n\"anewattribute\":\r\n{\r\n    \"withakey\": \"somevalue\"\r\n}\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \uc6b0\ub9ac\uac00 \ud1b5\uacfc\ud588\ub2e4\uba74 <code>false<\/code> \uc5d0 \ub300\ud55c <code>createParents<\/code> \ub85c \uc124\uc815\ub418\uc5b4 \uc788\uace0 \ubd80\ubaa8 \uc18d\uc131\uc774 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc73c\uba74 \ub2e4\uc911 \ubcc0\uc774\uac00 \uc2e4\ud328\ud558\uace0 \ucd5c\uc0c1\uc704 \uc751\ub2f5 \uc0c1\ud0dc\ub294 <code>\ud558\uc704 \ubb38\uc11c \ub2e4\uc911 \uacbd\ub85c \uc2e4\ud328<\/code> \uad6c\uccb4\uc801\uc778 \uc624\ub958\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <code>\ud558\uc704 \ubb38\uc11c \uacbd\ub85c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc74c<\/code>.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueupsert\">Upsert<\/h3>\n<div class=\"paragraph\">\n<p>\uc5c5\uc11c\ud2b8\ub294 \uae30\uc874 \uc0ac\uc804 \ud56d\ubaa9\uc744 \ucd94\uac00\ud558\uac70\ub098 \ubc14\uafc9\ub2c8\ub2e4. \uc0ac\uc6a9\ubc95\uc740 <code>\uc0bd\uc785<\/code> \uba54\uc11c\ub4dc \uc774\ub984\uc774 <code>Upsert<\/code>.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"trueremove\">\uc81c\uac70<\/h3>\n<div class=\"paragraph\">\n<p><code>\uc81c\uac70<\/code> \ub294 \uc9c0\uc815\ub41c \uacbd\ub85c\uc5d0\uc11c \uc694\uc18c\ub97c \uc81c\uac70\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void RemoveExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        Remove(path).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uba74<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">RemoveExample(bucket, id, \"owner.name\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub098\uc911\uc5d0 \ubb38\uc11c\uac00 \uc5b4\ub5bb\uac8c \ud45c\uc2dc\ub418\ub294\uc9c0\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n\"owner\":\r\n{\r\n    \"type\": \"servant\",\r\n    \"age\": 63\r\n},\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truereplace\">\uad50\uccb4<\/h3>\n<div class=\"paragraph\">\n<p>\ubc14\uafb8\uae30\ub294 \uc9c0\uc815\ub41c \uacbd\ub85c\uc5d0\uc11c \uc694\uc18c\uc758 \uac12\uc744 \ubc14\uafb8\uba70, \uacbd\ub85c\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc73c\uba74 \uc2e4\ud328\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void ReplaceExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \uac1d\uccb4 \uac12)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        Replace(\uacbd\ub85c, \uac12).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud55c \ud6c4<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">ReplaceExample(bucket, id, \"owner\", new { CatLover=true, CatName=\"celia\"});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \ubb38\uc11c\uc758 '\uc18c\uc720\uc790' \uac12\uc774 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n\"owner\":\r\n{\r\n    \"catLover\": true,\r\n    \"catName\": \"celia\"\r\n},\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truearrayappend\">ArrayAppend<\/h3>\n<div class=\"paragraph\">\n<p>ArrayAppend\ub294 \ubc30\uc5f4\uc758 \ub05d\uc5d0 \uac12\uc744 \ucd94\uac00\ud558\uba70, \ubd80\ubaa8 \uc694\uc18c\uac00 \uc5c6\ub294 \uacbd\uc6b0 \uc120\ud0dd\uc801\uc73c\ub85c \ubd80\ubaa8 \uc694\uc18c(\ubc30\uc5f4 \uc694\uc18c \uc790\uccb4)\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void ArrayAppendExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \uac1d\uccb4 \uac12)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        ArrayAppend(\uacbd\ub85c, \uac12, \uac70\uc9d3).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\"\uc7a5\ub09c\uac10\" \uacbd\ub85c\ub85c \uc774 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud55c \ud6c4...<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">ArrayAppendExample(bucket, id, \"toys\", \"slipper\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>... <code>\uc7a5\ub09c\uac10<\/code> \ubc30\uc5f4\uc740 \ubb38\uc11c\uc758 \ub9c8\uc9c0\ub9c9 \uc11c\uc218\uc5d0 \"slipper\" \uac12\uc744 \uac16\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n\"toys\":\r\n[\r\n    \"squeaker\",\r\n    \"ball\",\r\n    \"shoe\",\r\n    \"slipper\"\r\n],\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truearrayprepend\">ArrayPrepend<\/h3>\n<div class=\"paragraph\">\n<p>ArrayPrepend\ub294 ArrayAppend\uc640 \ub3d9\uc77c\ud55c \ubc29\uc2dd\uc73c\ub85c \uc791\ub3d9\ud558\uc9c0\ub9cc, \uac12\uc744 \ucd94\uac00\ud55c\ub2e4\ub294 \uc810\uc744 \uc81c\uc678\ud558\uba74 <em>\uc55e<\/em> \ubc30\uc5f4\uc758<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void ArrayAppendExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \uac1d\uccb4 \uac12)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        ArrayAppend(\uacbd\ub85c, \uac12, \uac70\uc9d3).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\"toys\" \uacbd\ub85c\ub85c \ud574\ub2f9 \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uba74...<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">ArrayAppendExample(bucket, id, \"toys\", \"slipper\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub9ac\uace0 <code>\uc7a5\ub09c\uac10<\/code> \ubc30\uc5f4\uc5d0 \uc774\uc81c \"slipper\" \uac12\uc774 \uc788\uc2b5\ub2c8\ub2e4. <em>\uba3c\uc800<\/em> \uc11c\uc218\uc785\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n\"toys\":\r\n[\r\n    \"slipper\",\r\n    \"squeaker\",\r\n    \"ball\",\r\n    \"shoe\"\r\n],\r\n...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truearrayinsert\">ArrayInsert<\/h3>\n<div class=\"paragraph\">\n<p>ArrayPrepend\ub294 \uac12\uc744 \ucc98\uc74c\uc5d0, ArrayAppend\ub294 \ub05d\uc5d0 \ub123\uc2b5\ub2c8\ub2e4. \ub05d\uc744 \ub9c8\ubb34\ub9ac\ud558\uae30 \uc704\ud574 ArrayInsert\ub97c \uc0ac\uc6a9\ud558\uc5ec \uadf8 \uc0ac\uc774 \uc5b4\ub518\uac00\uc5d0(\uc8fc\uc5b4\uc9c4 \uc778\ub371\uc2a4\uc5d0) \uac12\uc744 \ub123\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void ArrayInsertExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \uac1d\uccb4 \uac12)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        ArrayInsert(\uacbd\ub85c, \uac12).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub9ac\uace0 \uadf8 \uba54\uc11c\ub4dc\ub97c \"toys[2]\"\ub85c \ud638\ucd9c\ud569\ub2c8\ub2e4...<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">ArrayInsertExample(bucket, id, \"toys[2]\", \"slipper\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub9ac\uace0 <code>\uc7a5\ub09c\uac10<\/code> \ubc30\uc5f4\uc740 \uc774\uc81c \uc138 \ubc88\uc9f8 \uc11c\uc218(\uc778\ub371\uc2a4 2)\uc5d0 \"slipper\" \uac12\uc744 \uac16\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">\"toys\":\r\n[\r\n    \"squeaker\",\r\n    \"ball\",\r\n    \"slipper\",\r\n    \"shoe\"\r\n ],<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truearrayaddunique\">ArrayAddUnique<\/h3>\n<div class=\"paragraph\">\n<p>ArrayAddUnique\ub294 \ubc30\uc5f4\uc5d0 \uac12\uc744 \uc0bd\uc785\ud558\uc9c0\ub9cc \ud574\ub2f9 \uac12\uc774 \uc774\ubbf8 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0(\uc989, \uac12\uc774 \ubc30\uc5f4 \ub0b4\uc5d0\uc11c \uace0\uc720\ud574\uc57c \ud568) \uc2e4\ud328\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void ArrayAddUniqueExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \uac1d\uccb4 \uac12)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        ArrayAddUnique(\uacbd\ub85c, \uac12).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\"\uc2e0\ubc1c\"\uc774\ub77c\uace0 \ubd80\ub974\uba74...<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">ArrayAddUniqueExample(bucket, id, \"toys\", \"shoe\");<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>... \"shoe\" \uac12\uc774 \uc774\ubbf8 \uc6d0\ubcf8 \ubb38\uc11c\uc758 <code>\uc7a5\ub09c\uac10<\/code> \ubc30\uc5f4\uc744 \uc0ac\uc6a9\ud558\uba74 \uc0c1\ud0dc <code>\ud558\uc704 \ubb38\uc11c \uacbd\ub85c \uc874\uc7ac<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><em>\uc774 \uba54\uc11c\ub4dc\uc5d0\uc11c\ub294 \ubb38\uc790\uc5f4, \uc22b\uc790, \ucc38, \uac70\uc9d3 \ub610\ub294 null\uc758 \ud2b9\uc218 \uac12\uacfc \uac19\uc740 JSON \uae30\ubcf8 \uc694\uc18c\ub9cc \uc0bd\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac01 JSON \uac1d\uccb4\ub85c \ub0b4\ub824\uac00\uc11c \uc694\uc18c\ub97c \ud56d\ubaa9\ubcc4\ub85c \ube44\uad50\ud558\uc9c0 \uc54a\uace0\ub294 \uace0\uc720\uc131\uc744 \ube44\uad50\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.<\/em><\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truecounter\">\uce74\uc6b4\ud130<\/h3>\n<div class=\"paragraph\">\n<p>\uae30\uc874 \uac12\uc5d0 \uc9c0\uc815\ub41c \ub378\ud0c0(\ubcc0\uacbd)\ub97c \ucd94\uac00\ud558\uc5ec \uc694\uc18c\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0 \uc694\uc18c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uac12\uacfc \ub378\ud0c0\ub294 \ubaa8\ub450 0\uc73c\ub85c \uae30\ubcf8 \uc124\uc815\ub429\ub2c8\ub2e4. \ub378\ud0c0\uac00 \uc74c\uc218\uc778 \uacbd\uc6b0 \uc694\uc18c\uc758 \uac12\uc740 \uc9c0\uc815\ub41c \ub378\ud0c0\ub9cc\ud07c \uac10\uc18c\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\ub294 \uba54\uc11c\ub4dc\ub97c \ub9cc\ub4e4\uaca0\uc2b5\ub2c8\ub2e4. <code>\uce74\uc6b4\ud130<\/code>:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">public static void CounterExample(IBucket \ubc84\ud0b7, \ubb38\uc790\uc5f4 id, \ubb38\uc790\uc5f4 \uacbd\ub85c, \uae34 \ub378\ud0c0)\r\n{\r\n    var fragment = bucket.MutateIn(id).\r\n        Counter(\uacbd\ub85c, \ub378\ud0c0).\r\n        Execute();\r\n\r\n    var status = fragment.OpStatus(path);\r\n    Console.WriteLine(status);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c \uc591\uc218 1\uacfc \uc74c\uc218 1\uc744 '\ub378\ud0c0'\ub85c \uc0ac\uc6a9\ud558\uc5ec \uba54\uc11c\ub4dc\ub97c \ub450 \ubc88 \ud638\ucd9c\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-C#\">CounterExample(bucket, id, \"likes\", 1);\r\nCounterExample(bucket, id, \"likes\", -1);<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uccab \ubc88\uc9f8 \ud638\ucd9c \ud6c4\uc5d0\ub294 \uc694\uc18c\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c \uc694\uc18c\uac00 \uc0dd\uc131\ub41c \ub2e4\uc74c \ud558\ub098(1)\ub85c \uc124\uc815\ub429\ub2c8\ub2e4. \uc774\uc81c \ubb38\uc11c\uac00 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n    ],\r\n    \"\uc88b\uc544\uc694\": 1\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub450 \ubc88\uc9f8 \ud638\ucd9c\uc740 \uc74c\uc218(-1)\ub97c \uc804\ub2ec\ud558\ubbc0\ub85c \ub2e4\uc74c \uce74\uc6b4\ud130\ub294 <code>\uc88b\uc544\uc694<\/code> \ub294 0\uc73c\ub85c \uac10\uc18c\ud569\ub2c8\ub2e4. \uc774\uc81c JSON \ubb38\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlightjs highlight\"><code class=\"language-javascript\">...\r\n    ],\r\n    \"\uc88b\uc544\uc694\": 0\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"trueconclusion\">\uacb0\ub860<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c \uc774\ud6c4 Couchbase .NET SDK\ub294 \ubc84\uc804 2.3.2\ub85c \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4(\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c \uc791\uc131 \uc2dc\uc810 \uae30\uc900). \uadf8 \ub3d9\uc548\uc758 \uc791\uc5c5 \ub0b4\uc6a9\uc744 \ud655\uc778\ud558\ub824\uba74 <a href=\"https:\/\/issues.couchbase.com\/projects\/NCBC\/versions\/13438?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">\ubc84\uc804 2.3.2\uc758 \ub9b4\ub9ac\uc2a4 \ub178\ud2b8<\/a>.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truehow-to-get-v2-3-x\">v2.3.x\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\ub294 \ubc29\ubc95<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>\ubc14\uc774\ub108\ub9ac \ub2e4\uc6b4\ub85c\ub4dc <a href=\"https:\/\/s3.amazonaws.com\/packages.couchbase.com\/clients\/net\/2.3\/Couchbase-Net-Client-2.3.3.zip\">\uc800\uc7a5\uc18c(2.3.3\uc774 \ucd5c\uc2e0 \ub9b4\ub9ac\uc2a4)\uc5d0\uc11c .NET SDK 2.3.x\uc6a9\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/a><\/li>\n<li>\ub2e4\uc74c\uc5d0\uc11c <a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseNetClient\/\">NuGet\uc758 \ucd5c\uc2e0 SDK<\/a>.<\/li>\n<li>\uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/couchbase\/couchbase-net-client\">\uc18c\uc2a4 \ucf54\ub4dc\ub294 \uae43\ud5c8\ube0c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"truefinal-notes\">\ucd5c\uc885 \ucc38\uace0 \uc0ac\ud56d<\/h3>\n<div class=\"paragraph\">\n<p>\ud558\uc704 \ubb38\uc11c API\ub294 \ubb38\uc11c\uc640\uc758 \uc0c1\ud638\uc791\uc6a9\uc744 \ub354\uc6b1 \uc138\ubd84\ud654\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ud544\uc694\ud55c \ubd80\ubd84\ub9cc \uc218\uc815\ud558\uace0 \uac80\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc544\ub798\uc5d0 \ub313\uae00\uc744 \ub0a8\uaca8\uc8fc\uc138\uc694, <a href=\"https:\/\/twitter.com\/mgroves\">\ud2b8\uc704\ud130\uc5d0\uc11c \uc800\uc640 \ub300\ud654\ud558\uae30<\/a>\ub97c \ucc38\uc870\ud558\uac70\ub098 \uc9c8\ubb38\uc774\ub098 \uc758\uacac\uc774 \uc788\uc73c\uba74 \uc800\uc5d0\uac8c \uc774\uba54\uc77c(matthew.groves AT couchbase DOT com)\ub85c \ubb38\uc758\ud558\uc138\uc694.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>This blog post is based on an earlier blog post by Jeff Morris that covered the sub-document API while it was still in developer preview. There have been some changes to the API since that release. With Couchbase Server 4.5 [&hellip;]<\/p>","protected":false},"author":71,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1816],"tags":[1586],"ppma_author":[8937],"class_list":["post-2327","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-couchbase-server","tag-subdocument"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sub-document API in Couchbase Server 4.5 with the .NET SDK<\/title>\n<meta name=\"description\" content=\"This blog focuses on the Sub-document feature in .Net application. It gives you the ability to be more granular in your interactions with documents.\" \/>\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\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sub-document API in Couchbase Server 4.5 with the .NET SDK (revisited)\" \/>\n<meta property=\"og:description\" content=\"This blog focuses on the Sub-document feature in .Net application. It gives you the ability to be more granular in your interactions with documents.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-12T13:18:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:25:56+00:00\" \/>\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=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Sub-document API in Couchbase Server 4.5 with the .NET SDK (revisited)\",\"datePublished\":\"2016-07-12T13:18:53+00:00\",\"dateModified\":\"2025-10-09T14:25:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\"},\"wordCount\":1568,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"subdocument\"],\"articleSection\":[\".NET\",\"Couchbase Server\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\",\"name\":\"Sub-document API in Couchbase Server 4.5 with the .NET SDK\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-07-12T13:18:53+00:00\",\"dateModified\":\"2025-10-09T14:25:56+00:00\",\"description\":\"This blog focuses on the Sub-document feature in .Net application. It gives you the ability to be more granular in your interactions with documents.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#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\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sub-document API in Couchbase Server 4.5 with the .NET SDK (revisited)\"}]},{\"@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":"Sub-document API in Couchbase Server 4.5 with the .NET SDK","description":"\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 .Net \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud558\uc704 \ubb38\uc11c \uae30\ub2a5\uc5d0 \ub300\ud574 \uc911\uc810\uc801\uc73c\ub85c \uc124\uba85\ud569\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uba74 \ubb38\uc11c\uc640\uc758 \uc0c1\ud638 \uc791\uc6a9\uc744 \ubcf4\ub2e4 \uc138\ubd84\ud654\ud560 \uc218 \uc788\uc2b5\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\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/","og_locale":"ko_KR","og_type":"article","og_title":"Sub-document API in Couchbase Server 4.5 with the .NET SDK (revisited)","og_description":"This blog focuses on the Sub-document feature in .Net application. It gives you the ability to be more granular in your interactions with documents.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-07-12T13:18:53+00:00","article_modified_time":"2025-10-09T14:25:56+00:00","author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Sub-document API in Couchbase Server 4.5 with the .NET SDK (revisited)","datePublished":"2016-07-12T13:18:53+00:00","dateModified":"2025-10-09T14:25:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/"},"wordCount":1568,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["subdocument"],"articleSection":[".NET","Couchbase Server"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/","url":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/","name":"Sub-document API in Couchbase Server 4.5 with the .NET SDK","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-07-12T13:18:53+00:00","dateModified":"2025-10-09T14:25:56+00:00","description":"\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 .Net \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud558\uc704 \ubb38\uc11c \uae30\ub2a5\uc5d0 \ub300\ud574 \uc911\uc810\uc801\uc73c\ub85c \uc124\uba85\ud569\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uba74 \ubb38\uc11c\uc640\uc758 \uc0c1\ud638 \uc791\uc6a9\uc744 \ubcf4\ub2e4 \uc138\ubd84\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#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\/sub-document-api-in-couchbase-server-4-5-with-the-net-sdk-revisted\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Sub-document API in Couchbase Server 4.5 with the .NET SDK (revisited)"}]},{"@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\/2327","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=2327"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2327\/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=2327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2327"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}