{"id":1933,"date":"2015-05-11T19:23:47","date_gmt":"2015-05-11T19:23:46","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1933"},"modified":"2025-06-13T23:49:46","modified_gmt":"2025-06-14T06:49:46","slug":"introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/","title":{"rendered":"Couchbase .NET SDK 2.1.0\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4: \ube44\ub3d9\uae30\uc2dd \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 .NET \ud074\ub77c\uc774\uc5b8\ud2b8!"},"content":{"rendered":"<p>\ub4dc\ub514\uc5b4 Couchbase .NET SDK 2.1.0 GA\uac00 \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4! \uc774\ubc88 \ub9b4\ub9ac\uc2a4\ub294 2.1.0\uc758 \ub9c8\uc774\ub108 \ub9b4\ub9ac\uc2a4\uc774\uc9c0\ub9cc, \uc791\uc5c5 \ube44\ub3d9\uae30 \ud328\ud134(\ube44\ub3d9\uae30 \ubc0f \ub300\uae30 \ud0a4\uc6cc\ub4dc)\uacfc \ubaa8\ub4e0 \ud0a4\/\uac12 \uc791\uc5c5\uc5d0 \ub300\ud55c \ube44\ucc28\ub2e8 IO \uc9c0\uc6d0\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \uc678\uc5d0\ub3c4 \uc5ec\ub7ec \uac00\uc9c0 \uae30\ub2a5\uc774 \ud3ec\ud568\ub418\uc5c8\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li>\uc5f0\uacb0\ubcc4 TCP KEEP_ALIVE \uc124\uc815<\/li>\n<li>\"\ud50c\ub7ec\uadf8\ud615\" \ud2b8\ub79c\uc2a4\ucf54\ub354, \uc2dc\ub9ac\uc5bc\ub77c\uc774\uc800 \ubc0f \ucee8\ubc84\ud130\ub97c \ub9cc\ub4e4\uae30 \uc704\ud55c \uc0c8\ub85c\uc6b4 \ud655\uc7a5 \ud3ec\uc778\ud2b8<\/li>\n<li>\ud0a4\/\uac12 \uc30d\uc758 \uc2ac\ub77c\uc774\ub529 \ub9cc\ub8cc\ub97c \uc704\ud55c '\uac00\uc838\uc624\uae30 \ubc0f \ud130\uce58' \uc9c0\uc6d0<\/li>\n<li>\"\ud0a4 \uc874\uc7ac\" \uba54\uc11c\ub4dc\uc5d0 \ub300\ud55c \uacf5\uc2dd \uc9c0\uc6d0<\/li>\n<\/ul>\n<p>\uae30\ud0c0 \uac1c\uc120 \uc0ac\ud56d \ubc0f \ubc84\uadf8 \uc218\uc815\uc5d0\ub294 \ubcf5\uc81c\ubcf8 \uc77d\uae30\uc5d0 \ub300\ud55c \uc218\uc815, \uc2a4\uc651\/\uc7ac\uc870\uc815\/\uc7a5\uc560 \uc870\uce58 \uc2dc\ub098\ub9ac\uc624 \uc911 \ubd88\uc77c\uce58 \ubc0f \uc624\ub958\ub97c \ucc98\ub9ac\ud558\uae30 \uc704\ud55c \uc0c8\ub85c\uc6b4 \ucffc\ub9ac \uc694\uccad \uc5d4\uc9c4 \ubc0f \uae30\ud0c0 \uc218\ub9ce\uc740 \ubc84\uadf8 \uc218\uc815 \ubc0f \uac1c\uc120 \uc0ac\ud56d(45\uac1c \uc774\uc0c1\uc758 Jira \ud2f0\ucf13\uc774 \uc885\ub8cc\ub428)\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub9b4\ub9ac\uc2a4\ub294 JUGGED\uc785\ub2c8\ub2e4!<\/p>\n<p>\ub2e4\uc74c \ub450 \uc139\uc158\uc5d0\uc11c\ub294 \uc774\ubc88 \ub9b4\ub9ac\uc2a4\uc758 \uc8fc\uc694 \uae30\ub2a5\uc5d0 \ub300\ud574 \uac04\ub7b5\ud558\uac8c \uc0b4\ud3b4\ubcf4\uace0, \uc870\ub9cc\uac04 \uac01 \uae30\ub2a5\uc5d0 \ub300\ud574 \ub354 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcfc \uc218 \uc788\ub294 \uae34 \ud3ec\uc2a4\ud305\uc744 \uc900\ube44\ud560 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n<h2>K\/V\uc5d0 \ub300\ud55c \uc791\uc5c5 \ube44\ub3d9\uae30 \ud328\ud134 \uc9c0\uc6d0<\/h2>\n<p>\uc774\ubc88 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 \uc804\uccb4 IO \uc5d4\uc9c4\uc774 \ube44\ucc28\ub2e8 IO\ub97c \uc9c0\uc6d0\ud558\ub3c4\ub85d \uac1c\uc120\ub418\uc5c8\uc73c\uba70, \uc774 \uae30\ub2a5\uc744 \ud65c\uc6a9\ud558\uae30 \uc704\ud574 \ube44\ub3d9\uae30 \ubc0f \ub300\uae30 \ud0a4\uc6cc\ub4dc\ub97c \ud1b5\ud574 \uc774 \uae30\ub2a5\uc744 \ub178\ucd9c\ud588\uc2b5\ub2c8\ub2e4. \ube44\ub3d9\uae30\/\ub300\uae30 \ud0a4\uc6cc\ub4dc\uc640 TAP(\uc791\uc5c5 \ube44\ub3d9\uae30 \ud328\ud134)\uc5d0 \uc775\uc219\ud558\uc9c0 \uc54a\uc73c\uc2dc\ub2e4\uba74, \ub2e4\uc74c \uae00\uc744 \uc77d\uc5b4\ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/vstudio\/hh191443%28v=vs.110%29.aspx\">\uc774<\/a>\ub610\ub294 <a href=\"https:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2012\/04\/03\/async-in-4-5-worth-the-await.aspx\">\uc774<\/a>\ub610\ub294 <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh156528.aspx\">\uc774<\/a> \ub97c \ud074\ub9ad\ud55c \ud6c4 \uacc4\uc18d\ud558\uc138\uc694.<\/p>\n<p>\ub108\ubb34 \uc790\uc138\ud788 \uc124\uba85\ud558\uc9c0 \uc54a\uace0(\ud5a5\ud6c4 \ub2e4\ub978 \ud3ec\uc2a4\ud305\uc5d0\uc11c \uc790\uc138\ud788 \ub2e4\ub8f0 \uc608\uc815\uc785\ub2c8\ub2e4), \uc5ec\uae30\uc11c\ub294 \ube44\ub3d9\uae30\/\ub300\uae30 \ubc0f Couchbase SDK\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \ud0a4\ub97c \uc0bd\uc785\ud558\uace0 \uac80\uc0c9\ud558\ub294 \uc608\uc81c\ub97c \ubcf4\uc5ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/417dbe9ff0f1b001c464.js\"><\/script><\/p>\n<p>\uac00\uc7a5 \uba3c\uc800 \ub208\uc5d0 \ub744\ub294 \ucc28\uc774\uc810\uc740 \uba54\uc18c\ub4dc \uc2dc\uadf8\ub2c8\ucc98\uc5d0 async \ud0a4\uc6cc\ub4dc\uac00 \ucd94\uac00\ub418\uc5b4 \uba54\uc18c\ub4dc \ubcf8\ubb38\uc5d0\uc11c await \ud0a4\uc6cc\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ub418\uc5c8\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uba54\uc18c\ub4dc\uac00 \uc2e4\ud589\ub420 \ub54c, await \ud0a4\uc6cc\ub4dc\uc5d0 \ub3c4\ub2ec\ud560 \ub54c\uae4c\uc9c0 \ub3d9\uae30\uc801\uc73c\ub85c \uc2e4\ud589\ub418\uace0, \uadf8 \ud6c4\uc5d0\ub294 \"\ud574\uc81c\"\ub418\uc5b4 \ube44\ub3d9\uae30\uc801\uc73c\ub85c \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\ub294 .NET \uce21\uc5d0\uc11c \uaf64 \ub9ce\uc740 \ucef4\ud30c\uc77c\ub7ec \ub9c8\ubc95\uc774 \uac1c\uc785\ub418\uc5b4 \uc788\uc9c0\ub9cc, Couchbase .NET SDK\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\ub294 \ub370 \ud544\uc694\ud55c \uac83\uc740 \uc774\uac83\ubfd0\uc785\ub2c8\ub2e4!<\/p>\n<p>\ud0dc\uc2a4\ud06c\uac00 \uc0dd\uc131\ub418\uc5b4 \ub300\uae30\uc5f4\uc5d0 \uc800\uc7a5\ub418\uace0, \uc694\uccad\uc740 \"\uc77c\ub2e8 \uc2e4\ud589\ud558\uace0 \uc78a\uc5b4\ubc84\ub9ac\ub294\" \ubc29\uc2dd(IOCP\ub97c \ud1b5\ud574)\uc73c\ub85c Couchbase \uc11c\ubc84\uc5d0 \uc2e4\ud589\ub418\uba70, \uc644\ub8cc\ub418\uba74 \uc751\ub2f5\uc744 \uc77d\uace0 \ud638\ucd9c\uc790\uc5d0\uac8c \ubc18\ud658\ud558\uc5ec \uc694\uccad\uc744 \uc644\ub8cc\ud558\ub294 \ucf5c\ubc31\uc774 \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc624\ub958\ub098 \uc608\uc678\uac00 \ubc1c\uc0dd\ud558\uba74 \uc774\ub97c \ucc98\ub9ac\ud558\uace0 \ud0dc\uc2a4\ud06c\uac00 \ucea1\uc290\ud654\ud558\ub294 IOperationResult \uad6c\ud604\uc73c\ub85c \ubc18\ud658\ud569\ub2c8\ub2e4. \ub2e4\uc74c \ud3ec\uc2a4\ud305\uc5d0\uc11c \ub2e4\uc2dc \ud55c \ubc88 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4!<\/p>\n<h2>\uc0c8\ub85c\uc6b4 \ud655\uc7a5 \ud3ec\uc778\ud2b8!<\/h2>\n<p>2.0 SDK\uc758 \ubaa9\ud45c \uc911 \ud558\ub098\ub294 SDK\uc758 \ub2e4\uc591\ud55c \uad6c\uc131 \uc694\uc18c\uc5d0 \ub300\ud55c \ud655\uc7a5 \ud3ec\uc778\ud2b8\ub97c \uc81c\uacf5\ud558\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4. \uad6c\ud604\uc774\ub098 \uae30\ubc18\uc774 \ub418\ub294 \uc678\ubd80 API\uac00 \ub9c8\uc74c\uc5d0 \ub4e4\uc9c0 \uc54a\ub294\ub2e4\uba74 \uc9c1\uc811 \uc791\uc131\ud558\uc138\uc694! \ub610 \ub2e4\ub978 \uae0d\uc815\uc801\uc778 \ud6a8\uacfc\ub294 SDK \ub0b4\uc5d0\uc11c \ub2e4\uc591\ud55c \ub808\uc774\uc5b4\uc640 \ucef4\ud3ec\ub10c\ud2b8\ub97c \ub354 \uc27d\uac8c \ubd84\ub9ac\ud558\uace0 \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>2.1.1\uc5d0\uc11c\ub294 \uc774\uc81c \uc138 \uac00\uc9c0 \uc0c8\ub85c\uc6b4 \ud655\uc7a5 \ud3ec\uc778\ud2b8\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4:<\/p>\n<ol>\n<li><b>\uc9c1\ub82c\ud654\uae30<\/b> - POCO\ub97c JSON\uc73c\ub85c \uc9c1\ub82c\ud654 \ubc0f \uc5ed\uc9c1\ub82c\ud654 \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<li><b>\ubcc0\ud658\uae30<\/b> - \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\uc640 \uc8fc\uace0\ubc1b\ub294 \uba64\uce90\uc2dc\ub4dc \ubc14\uc774\ud2b8 \ud328\ud0b7\uc758 \ubcc0\ud658(\ubc0f \ub2e4\ub978 SDK \uac04\uc758 \ud328\ub9ac\ud2f0)\uc744 \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<li><b>\ud2b8\ub79c\uc2a4\ucf54\ub354<\/b> - \uc694\uccad \ub610\ub294 \uc751\ub2f5 \ubcf8\ubb38('\ud0a4\/\uac12'\uc758 '\uac12' \ubd80\ubd84)\uc758 \ubcc0\ud658 \ubc0f \uc9c1\ub82c\ud654\/\uc5ed\uc9c1\ub82c\ud654\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<p>\ucee4\uc2a4\ud140 \uc9c1\ub82c\ud654\uae30\ub97c \ub9cc\ub4e4\ub824\uba74 ITypeSerializer \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud558\uace0 Func<itypeserializer> \ub97c \ud074\ub77c\uc774\uc5b8\ud2b8 \uad6c\uc131\uc5d0 \uc9c1\ub82c\ud654\uae30\ub97c \uc0dd\uc131\ud558\ub294 \ud329\ud1a0\ub9ac \uba54\uc11c\ub4dc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \uc815\uc758 \uc9c1\ub82c\ud654\uae30\uc758 \uc608\ub85c\ub294 \ub2e4\ub978 JSON \uc9c1\ub82c\ud654 API\ub97c \uc0ac\uc6a9\ud558\ub824\ub294 \uacbd\uc6b0\ub97c \ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/ServiceStack\/ServiceStack.Text\">ServiceStack.Text?<\/a>) SDK\uac00 \uae30\ubcf8\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \ud45c\uc900 JSON.NET API\uac00 \uc544\ub2d9\ub2c8\ub2e4. <\/itypeserializer><\/p>\n<p>\uc0ac\uc6a9\uc790 \uc815\uc758 \ucee8\ubc84\ud130\uc640 \ud2b8\ub79c\uc2a4\ucf54\ub354\ub3c4 ITypeConverter \ub610\ub294 ITypeTranscoder \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud558\uace0 \ud2b9\uc815 \uc0ac\uc6a9 \uc0ac\ub840\ub098 \uc694\uad6c \uc0ac\ud56d\uc744 \ucc98\ub9ac\ud558\ub294 \uc0ac\uc6a9\uc790 \uc815\uc758 \ud074\ub798\uc2a4\ub97c \uc81c\uacf5\ud558\uc5ec \ud50c\ub7ec\uadf8\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uc9c1\ub82c\ud654\uae30\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c Func<itypetranscoder> \ub610\ub294 Func<itypeconverter> \ud329\ud1a0\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc0c8 \ub3d9\uc791\uc744 \"\uc8fc\uc785\"\ud569\ub2c8\ub2e4. <\/itypeconverter><\/itypetranscoder><\/p>\n<p>\uc774\ub7ec\ud55c \ud655\uc7a5 \ud3ec\uc778\ud2b8\ub97c \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uace0 \uc0c8\ub85c\uc6b4 \ud2b8\ub79c\uc2a4\ucf54\ub354, \uc9c1\ub82c\ud654\uae30 \ubc0f\/\ub610\ub294 \ubcc0\ud658\uae30 \ub3d9\uc791\uc744 \ube4c\ub4dc\ud558\uace0 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc8fc\uc785\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud558\ub294 \ud5a5\ud6c4 \uac8c\uc2dc\ubb3c\uc744 \uae30\ub300\ud574 \uc8fc\uc138\uc694.<\/p>\n<h2>2.1.0\uc758 \uae30\ud0c0 \uc0c8\ub85c\uc6b4 \uae30\ub2a5<\/h2>\n<h3>TCP \ud0b5\uc5bc\ub77c\uc774\ube0c\uc5d0 \ub300\ud55c \uc5f0\uacb0\ubcc4 \uc124\uc815<\/h3>\n<p>Windows\uc5d0\uc11c TCP \ud0b5\uc5bc\ub77c\uc774\ube0c\uc758 \uae30\ubcf8 OS \uc124\uc815\uc740 120\ubd84\uc785\ub2c8\ub2e4. \ub124\ud2b8\uc6cc\ud06c \uc5b4\ud50c\ub77c\uc774\uc5b8\uc2a4(\ub85c\ub4dc \ubc38\ub7f0\uc11c \ub4f1)\uac00 \ub354 \uc9e7\uc740 \uc2dc\uac04 \ub3d9\uc548 \uc720\ud734 \uc0c1\ud0dc\uc778 TCP \uc5f0\uacb0\uc744 \uc885\ub8cc\ud558\ub3c4\ub85d \uad6c\uc131\ub41c \ud074\ub77c\uc6b0\ub4dc \ubc30\ud3ec\uc640 \uac19\uc740 \uc77c\ubd80 \uacbd\uc6b0\uc5d0\ub294 \uae30\ubcf8 TCP \ud0b5\uc5bc\ub77c\uc774\ube0c \uc2dc\uac04\uc744 \ub354 \uc9e7\uac8c \uc124\uc815\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. OS \uc218\uc900\uc5d0\uc11c \ub808\uc9c0\uc2a4\ud2b8\ub9ac \uc124\uc815\uc744 \ud1b5\ud574 KeepAliveInterval \ubc0f KeepAliveTime\uc744 \ud1b5\ud574 \uc804\uc5ed\uc801\uc73c\ub85c \uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc774 \uacbd\uc6b0 \ud574\ub2f9 \uc11c\ubc84\uc5d0\uc11c \uc2e4\ud589 \uc911\uc778 \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce69\ub2c8\ub2e4. \ub354 \ub098\uc740 \ud574\uacb0\ucc45\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc0ac\uc6a9 \uc911\uc778 \uc5f0\uacb0\uc5d0\ub9cc \uc801\uc6a9\ub418\ub3c4\ub85d TCP \uc5f0\uacb0 \uc218\uc900\uc5d0\uc11c \uac04\uaca9\uacfc \uc2dc\uac04\uc744 \ubcc0\uacbd\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c ClientConfiguration \ud074\ub798\uc2a4\uc758 EnableTcpKeepAlives, TcpKeepAliveTime \ubc0f TcpKeepAliveInterval \uc18d\uc131\uc744 \ud1b5\ud574 \uc774\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. EnableTcpKeepAlives\ub294 TCP \ud0b5-\uc54c\ub9ac\ube0c\ub97c \ud65c\uc131\ud654 \ub610\ub294 \ube44\ud65c\uc131\ud654\ud558\uba70(\uae30\ubcf8\uac12\uc740 \ud65c\uc131\ud654), TcpKeepAliveTime\uc740 \ud0b5-\uc54c\ub9ac\ube0c\ub97c \ubcf4\ub0b4\uae30 \uc804\uc5d0 \uacbd\uacfc\ud560 \uc2dc\uac04, TcpKeepAliveInterval\uc740 \ud0b5-\uc54c\ub9ac\ube0c \uac04\uaca9\uc774 TcpKeepAliveTime\uc5d0 \ub3c4\ub2ec\ud55c \ud6c4 \ud0b5-\uc54c\ube0c \uac04\uaca9\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/c723eba945af48265081.js\"><\/script><\/p>\n<p>\uc704\uc758 \uc608\uc81c\uc5d0\uc11c\ub294 Cluster \uac1c\uccb4\ub97c \uc0dd\uc131\ud558\uace0 \ubc84\ud0b7\uc744 \uc5f4\uae30 \uc804\uc5d0 ClientConfiguration\uc744 \uc0dd\uc131\ud558\uace0 EnableTcpKeepAlives\ub97c true\ub85c \uc124\uc815\ud558\uace0(\uae30\ubcf8\uac12\uc740 true\uc774\ubbc0\ub85c \uc124\uba85\uc744 \uc704\ud55c \uac83\uc784), TcpKeepAliveTime\uc744 1\uc2dc\uac04(\uc5f0\uacb0\uc774 \uc720\ud734 \uc0c1\ud0dc\uc77c \ub54c \uccab \ubc88\uc9f8 KEEP-ALIVE \ud328\ud0b7\uc774 \uc804\uc1a1\ub418\ub294 \uc2dc\uac04), \ub9c8\uc9c0\ub9c9\uc73c\ub85c TcpKeepAliveInterVal\uc744 5sec\ub85c \uc124\uc815\ud569\ub2c8\ub2e4. \uc989, 1\uc2dc\uac04 \ub3d9\uc548 \uc720\ud734 \uc0c1\ud0dc\uac00 \uc9c0\uc18d\ub418\uba74 \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \uc5f0\uacb0\uc774 \ub2e4\uc2dc \ud65c\uc131\ud654\ub420 \ub54c\uae4c\uc9c0 5\ucd08\ub9c8\ub2e4 TCP \ud0b5-\uc5bc\ub77c\uc774\ube0c\ub97c \uc804\uc1a1\ud558\uae30 \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/p>\n<h3>\uc874\uc7ac \uba54\uc11c\ub4dc \uc9c0\uc6d0<\/h3>\n<p>\uc0ac\uc6a9\uc790\ub4e4\uc740 \uc885\uc885 \uac12\uc744 \uc2e4\uc81c\ub85c \uac00\uc838\uc624\uc9c0 \uc54a\uace0\ub3c4 \ud0a4\uac00 \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc694\uccad\ud569\ub2c8\ub2e4. \uc774\uc81c v2.1.0\uc5d0\uc11c \uc774 \uae30\ub2a5\uc774 \uc9c0\uc6d0\ub429\ub2c8\ub2e4. \uc774 \uba54\uc11c\ub4dc\uc758 \ub3d9\uae30\uc2dd \ubc84\uc804\uacfc \ube44\ub3d9\uae30\uc2dd \ubc84\uc804\uc774 \ubaa8\ub450 \uc9c0\uc6d0\ub429\ub2c8\ub2e4.<\/p>\n<h3>GAT(\uac00\uc838\uc624\uae30 \ubc0f \ud130\uce58) \ubc0f \ud130\uce58(\uc2ac\ub77c\uc774\ub529 \ub9cc\ub8cc\uc6a9) \uc9c0\uc6d0<\/h3>\n<p>\ub450 \uac00\uc9c0 \uc0c8\ub85c\uc6b4 \ubc29\ubc95\uc774 \ub3c4\uc785\ub418\uc5c8\uc2b5\ub2c8\ub2e4: GetAndTouch\uc640 Touch. GetAndTouch\ub294 \uac12\uc744 \uac80\uc0c9\ud558\uc5ec \ub9cc\ub8cc\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uace0 Touch\ub294 \ud0a4\uc758 \ub9cc\ub8cc\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc9c0\ub9cc \uac12\uc744 \ubc18\ud658\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc911\uc694\ud55c \ubc84\uadf8 \uc218\uc815<\/h2>\n<ul>\n<li>1.3.X\uc5d0\uc11c 2.X\ub85c\uc758 \uc815\uc218 \ud2b8\ub79c\uc2a4\ucf54\ub529<\/li>\n<li>\ubcf5\uc81c\ubcf8 \uc77d\uae30 \uc218\uc815<\/li>\n<li>\uc218\ub9ce\uc740 \ubc84\uadf8 \uc218\uc815\uacfc \uac1c\uc120\uc774 \uc774\ub8e8\uc5b4\uc84c\uc2b5\ub2c8\ub2e4!<\/li>\n<\/ul>\n<h2>Couchbase .NET SDK\ub97c \uc5bb\ub294 \ubc29\ubc95<\/h2>\n<p>SDK\ub294 NuGet\uc744 \ud1b5\ud574 \uc9c1\uc811 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uac70\ub098 Github \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ubcf5\uc81c\ud558\uc5ec \uac00\uc838\uc640\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li>\ubc14\uc774\ub108\ub9ac \ub2e4\uc6b4\ub85c\ub4dc <a href=\"https:\/\/packages.couchbase.com.s3.amazonaws.com\/clients\/net\/2.1\/Couchbase-Net-Client-2.1.0.zip\">\uc5ec\uae30<\/a>.<\/li>\n<li>NuGet \ud328\ud0a4\uc9c0\ub294 \ub2e4\uc74c\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseNetClient\/\">\uc5ec\uae30<\/a>.<\/li>\n<li>\uae43\ud5c8\ube0c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/couchbase\/couchbase-net-client\">\uc5ec\uae30<\/a>.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>At long last the Couchbase .NET SDK 2.1.0 GA is available! This release is a minor release for 2.1.0, but it includes support for the Task Asynchrony Pattern (async and await keywords) and non-blocking IO for all Key\/Value operations. In [&hellip;]<\/p>","protected":false},"author":21,"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,2201],"tags":[1437,1439],"ppma_author":[8970],"class_list":["post-1933","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-tools-sdks","tag-async","tag-asynchronous"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client! - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client!\" \/>\n<meta property=\"og:description\" content=\"At long last the Couchbase .NET SDK 2.1.0 GA is available! This release is a minor release for 2.1.0, but it includes support for the Task Asynchrony Pattern (async and await keywords) and non-blocking IO for all Key\/Value operations. In [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-11T19:23:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:49:46+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client!\",\"datePublished\":\"2015-05-11T19:23:46+00:00\",\"dateModified\":\"2025-06-14T06:49:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\"},\"wordCount\":1093,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"async\",\"asynchronous\"],\"articleSection\":[\".NET\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\",\"name\":\"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client! - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-05-11T19:23:46+00:00\",\"dateModified\":\"2025-06-14T06:49:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#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\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client!\"}]},{\"@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\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client! - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/","og_locale":"ko_KR","og_type":"article","og_title":"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client!","og_description":"At long last the Couchbase .NET SDK 2.1.0 GA is available! This release is a minor release for 2.1.0, but it includes support for the Task Asynchrony Pattern (async and await keywords) and non-blocking IO for all Key\/Value operations. In [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-05-11T19:23:46+00:00","article_modified_time":"2025-06-14T06:49:46+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client!","datePublished":"2015-05-11T19:23:46+00:00","dateModified":"2025-06-14T06:49:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/"},"wordCount":1093,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["async","asynchronous"],"articleSection":[".NET","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/","name":"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client! - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-05-11T19:23:46+00:00","dateModified":"2025-06-14T06:49:46+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#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\/introducing-couchbase-net-sdk-2-1-0-the-asynchronous-couchbase-net-client\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Couchbase .NET SDK 2.1.0: The asynchronous Couchbase .NET Client!"}]},{"@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\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, \uc218\uc11d \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris\ub294 Couchbase\uc758 \uc218\uc11d \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 6\ub144 \ub3d9\uc548 Source Interlink\uc5d0\uc11c \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc6f9 \uc544\ud0a4\ud14d\ud2b8\ub85c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4. Jeff\ub294 Couchbase SDK \uac1c\ubc1c\uacfc N1QL(\ucffc\ub9ac \uc5b8\uc5b4)\uacfc \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc744 \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris\ub294 Couchbase\uc758 \uc218\uc11d \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 6\ub144 \ub3d9\uc548 Source Interlink\uc5d0\uc11c \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc6f9 \uc544\ud0a4\ud14d\ud2b8\ub85c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4. Jeff\ub294 Couchbase SDK \uac1c\ubc1c\uacfc N1QL(\ucffc\ub9ac \uc5b8\uc5b4)\uacfc \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc744 \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1933","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\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=1933"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1933\/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=1933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=1933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=1933"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=1933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}