{"id":4027,"date":"2017-09-20T08:45:52","date_gmt":"2017-09-20T15:45:52","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4027"},"modified":"2025-06-13T19:40:26","modified_gmt":"2025-06-14T02:40:26","slug":"distributed-session-aspnet-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/distributed-session-aspnet-couchbase\/","title":{"rendered":"Couchbase\ub97c \uc0ac\uc6a9\ud55c ASP.NET Core\uc758 \ubd84\uc0b0 \uc138\uc158 \uad00\ub9ac"},"content":{"rendered":"<div class=\"paragraph\">\n<p>\ubd84\uc0b0 \uc138\uc158\uc740 \uc138\uc158 \uc0c1\ud0dc\ub97c ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc678\ubd80\uc5d0 \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ud2b9\ud788 \uc6f9 \uc0ac\uc774\ud2b8\ub97c \ud655\uc7a5\ud574\uc57c \ud560 \ub54c, \uc138\uc158 \uc0c1\ud0dc\ub97c \uc800\uc7a5\ud558\ub294 \ub370 Couchbase\ub97c \uc0ac\uc6a9\ud558\uba74 \ub3c4\uc6c0\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/sticky-sessions\/\">\uace0\uc815 \uc138\uc158<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc81c\uac00 \ub9cc\ub4e0 \ucf54\ub4dc \uc0d8\ud50c\uc740 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/081AspNetCoreSession\/src\/AspNetDistributedSession\">GitHub<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><em>\uc774 \uae00\uc744 \uc791\uc131\ud558\ub294 \uc2dc\uc810\uc5d0 Couchbase.Extensions.Session\uc740 \ubca0\ud0c0 \ub9b4\ub9ac\uc2a4\uc785\ub2c8\ub2e4.<\/em><\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_review_of_session\">\uc138\uc158 \uc0c1\ud0dc\ub780 \ubb34\uc5c7\uc778\uac00\uc694?<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc138\uc158 \uc0c1\ud0dc\ub294 \ub2e8\uc21c\ud788 \ud2b9\uc815 \uc0ac\uc6a9\uc790\uc5d0 \ub300\ud55c \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \ud1a0\ud070\uc740 \uc0ac\uc6a9\uc790 \ucfe0\ud0a4\uc5d0 \uc800\uc7a5\ub418\uba70 \ud574\ub2f9 \ud1a0\ud070\uc740 \uc11c\ubc84 \uce21\uc758 \uc77c\ubd80 \ub370\uc774\ud130 \uc9d1\ud569\uc5d0 \ub300\ud55c \ud0a4 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<h2 id=\"_review_of_session\">ASP.NET\uc5d0\uc11c \uc138\uc158\uc744 \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc124\uc815\ud558\ub294 \ubc29\ubc95<\/h2>\n<p>ASP.NET \ub610\ub294 ASP Classic\uc5d0 \uc775\uc219\ud55c \uacbd\uc6b0 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. <code>\uc138\uc158<\/code>. \ubaa8\ub4e0 \ucfe0\ud0a4 \uc791\uc5c5\uc740 \ubc31\uadf8\ub77c\uc6b4\ub4dc\uc5d0\uc11c \uc774\ub8e8\uc5b4\uc9c0\ubbc0\ub85c \uac04\ub2e8\ud788 <code>\uc138\uc158<\/code> \ub97c \uc0ac\uc804\uc73c\ub85c \uc0ac\uc6a9\ud558\uc5ec \uc6d0\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \uac80\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">if(Session[\"IsLoggedIn\"] = false)\r\n    \uc138\uc158[\"\uc0ac\uc6a9\uc790 \uc774\ub984\"] = \"\ub9e4\ud2b8\";<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uae30\ubcf8\uc801\uc73c\ub85c ASP.NET \ubc0f ASP Classic\uc5d0\uc11c \uc774 \uc815\ubcf4\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud504\ub85c\uc138\uc2a4\uc758 \uc77c\ubd80\ub85c \uba54\ubaa8\ub9ac\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>ASP.NET Core\uc5d0\uc11c\ub294 \uc138\uc158\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \uad6c\uc131\ud558\uc5ec \uc774 \uae30\ub2a5\uc744 \uc120\ud0dd\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. <code>\ucd94\uac00 \uc138\uc158<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uba3c\uc800, Startup.cs\uc758 <code>\uad6c\uc131<\/code> \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec ASP.NET Core\uc5d0 \uc138\uc158\uc744 \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">\uc571.\uc0ac\uc6a9 \uc138\uc158();<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c <code>\uc11c\ube44\uc2a4 \uad6c\uc131<\/code> \ud568\uc218, \uc0ac\uc6a9 <code>\ucd94\uac00 \uc138\uc158<\/code> \ub97c \ud074\ub9ad\ud558\uc5ec \uc138\uc158 \uacf5\uae09\uc790 \uc11c\ube44\uc2a4\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">services.AddDistributedMemoryCache();\r\nservices.AddSession();<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>(\uae30\ubcf8 \uc138\uc158 \uc124\uc815\uc774 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. <a href=\"https:\/\/docs.microsoft.com\/en-us\/aspnet\/core\/fundamentals\/app-state?tabs=aspnetcore2x\">ASP.NET Core \ubb38\uc11c<\/a> \ub97c \ucc38\uc870\ud558\uc138\uc694.)<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2> ASP.NET Core\uc5d0\uc11c \uc138\uc158 \uad00\ub9ac\ub780 \ubb34\uc5c7\uc778\uac00\uc694? <\/h2>\n<div class=\"paragraph\"> ASP.NET Core\uc758 \uc138\uc158 \uad00\ub9ac\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub0b4\uc758 \uc5ec\ub7ec \uc694\uccad\uc5d0 \uac78\uccd0 \uc0ac\uc6a9\uc790\ubcc4 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \uad00\ub9ac\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \ucfe0\ud0a4\uc5d0 \uc800\uc7a5\ub418\ub294 \uc138\uc158 \ud1a0\ud070\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790\ub97c \uc11c\ubc84\uc758 \ub370\uc774\ud130\uc640 \uc5f0\uacb0\ud569\ub2c8\ub2e4. \uc138\uc158\uc740 \uba54\ubaa8\ub9ac, \ubd84\uc0b0 \uc2dc\uc2a4\ud15c \ub610\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uc0c1\ud0dc\ub97c \ud655\uc7a5 \uac00\ub2a5\ud558\uace0 \ud6a8\uc728\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/p>\n<p>\ubd84\uc0b0 \uc138\uc158\uc740 \uc138\uc158 \uc0c1\ud0dc\ub97c ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc678\ubd80\uc5d0 \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ud2b9\ud788 \uace0\uc815 \uc138\uc158\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc73c\ub824\ub294 \uacbd\uc6b0 \uc138\uc158 \uc0c1\ud0dc\ub97c \uc800\uc7a5\ud558\ub294 \ub370 Couchbase\ub97c \uc0ac\uc6a9\ud558\uba74 \uc6f9\uc0ac\uc774\ud2b8\ub97c \ud655\uc7a5\ud574\uc57c \ud560 \ub54c \ub3c4\uc6c0\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/p><\/div>\n<h2 id=\"_why_distributed_session\">\ubd84\uc0b0 \uc138\uc158 \uad00\ub9ac\uac00 \ud544\uc694\ud55c \uc774\uc720\ub294 \ubb34\uc5c7\uc778\uac00\uc694?<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uadf8\ub7ec\ub098 \uc5ec\ub7ec \uc6f9 \uc11c\ubc84\ub85c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ud655\uc7a5\ud558\ub294 \uacbd\uc6b0 \uc138\uc158\uc5d0 \ub300\ud574 \uba87 \uac00\uc9c0 \uacb0\uc815\uc744 \ub0b4\ub824\uc57c \ud569\ub2c8\ub2e4. \ucc98\ub9ac \uc911 \uc138\uc158\uc744 \uacc4\uc18d \uc0ac\uc6a9\ud558\ub824\uba74 \uace0\uc815 \uc138\uc158\uc744 \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4(\uc0ac\uc6a9\uc790\uac00 \ucc98\uc74c \uc811\uc18d\ud558\ub294 \uc6f9 \uc11c\ubc84\uac00 \uc774\ud6c4 \uc694\uccad\uc5d0 \ub300\ud574 '\uace0\uc815'\ub418\ub294 \uc11c\ubc84\uac00 \ub429\ub2c8\ub2e4). \uc5ec\uae30\uc5d0\ub294 \uba87 \uac00\uc9c0 \uc7a0\uc7ac\uc801\uc778 \ub2e8\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4( <a href=\"https:\/\/serverfault.com\/questions\/46307\/what-is-the-downside-to-sticky-sessions-with-load-balancers\">\uc11c\ubc84 \uc624\ub958\uc5d0 \ub300\ud55c \uc774 \uc2a4\ub808\ub4dc<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/technet.microsoft.com\/en-us\/library\/2009.06.asp.aspx\">\ub9c8\uc774\ud06c\ub85c\uc18c\ud504\ud2b8\uc758 \ud14c\ud06c\ub137 \ub9e4\uac70\uc9c4\uc5d0 \uc2e4\ub9b0 \uc774 \uae30\uc0ac<\/a>).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uace0\uc815 \uc138\uc158\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc73c\ub824\uba74 \uc9c4\ud589 \uc911\uc778 \uc138\uc158 \uc635\uc158\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc2e0 \ubd84\uc0b0 \uc138\uc158\uc744 \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4. \uc138\uc158 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \uc704\uce58\uc5d0\ub294 \uc5ec\ub7ec \uac00\uc9c0 \uc635\uc158\uc774 \uc788\uc9c0\ub9cc, \uba54\ubaa8\ub9ac \uc6b0\uc120 \uc544\ud0a4\ud14d\ucc98\uc640 \uc720\uc5f0\ud55c \ud655\uc7a5 \uae30\ub2a5\uc744 \uac16\ucd98 Couchbase\uac00 \uc88b\uc740 \uc120\ud0dd\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_using_distributed_session_in_asp_net_core\">ASP.NET Core\uc5d0\uc11c \ubd84\uc0b0 \uc138\uc158 \uc0ac\uc6a9<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ucf54\ub4dc \uc791\uc131\uc744 \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ubc84\ud0b7(\uc800\ub294 \"\uc138\uc158\uc2a4\ud1a0\uc5b4\"\ub77c\uace0 \uba85\uba85\ud588\uc2b5\ub2c8\ub2e4)\uc73c\ub85c \uc2e4\ud589\ub418\ub294 Couchbase Server \ud074\ub7ec\uc2a4\ud130\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \ub610\ud55c \ubc84\ud0b7\uc5d0 \ub370\uc774\ud130 \ub9ac\ub354 \ubc0f \ub370\uc774\ud130 \uc791\uc131\uc790 \uad8c\ud55c\uc774 \uc788\ub294 \uc0ac\uc6a9\uc790\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4(\uc800\ub294 \uac04\ub2e8\ud558\uac8c \ud558\uae30 \uc704\ud574 \uc81c \uc0ac\uc6a9\uc790\ub97c \"\uc138\uc158\uc2a4\ud1a0\uc5b4\"\ub77c\uace0 \ubd88\ub800\uc2b5\ub2c8\ub2e4).<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_adding_couchbase_extensions_session\">Couchbase.Extensions.Session \ucd94\uac00\ud558\uae30<\/h3>\n<div class=\"paragraph\">\n<p>\uc774\uc81c Visual Studio\uc5d0\uc11c ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc5fd\ub2c8\ub2e4. (\uc800\ub294 \uc0c8\ub85c\uc6b4 ASP.NET Core MVC \uc571\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/081AspNetCoreSession\/src\/AspNetDistributedSession\">GitHub\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/a>). \uadf8\ub7f0 \ub2e4\uc74c NuGet\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase.Extensions.Session \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc124\uce58\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>NuGet UI\ub97c \uc0ac\uc6a9\ud558\uac70\ub098(\uc544\ub798 \ucc38\uc870), \ub610\ub294<\/li>\n<li><code>\uc124\uce58-\ud328\ud0a4\uc9c0 Couchbase.Extensions.Session -\ubc84\uc804 1.0.0-beta2<\/code> \ud328\ud0a4\uc9c0 \uad00\ub9ac\uc790\ub97c \uc0ac\uc6a9\ud558\uac70\ub098<\/li>\n<li><code>\ub2f7\ub137 Couchbase.Extensions.Session \ud328\ud0a4\uc9c0 \ucd94\uac00 --\ubc84\uc804 1.0.0-beta2<\/code> \ub2f7\ub137 \uba85\ub839\uc904\uc744 \uc0ac\uc6a9\ud558\uc5ec<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/08101-Couchbase-Extensions-with-NuGet.png\" alt=\"Couchbase Extensions with NuGet\" \/><\/span><\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_configuring_couchbase\">Couchbase \uad6c\uc131<\/h3>\n<div class=\"paragraph\">\n<p>\uc138\uc158 \uacf5\uae09\uc790\ub97c \uad6c\uc131\ud558\uae30 \uc704\ud574 \uc774 Couchbase.Extensions \uc2dc\ub9ac\uc988\ub97c \ub530\ub77c\uac00\ub2e4 \ubcf4\uba74 \uc775\uc219\ud574 \ubcf4\uc774\ub294 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub9ac\uace0 <code>\uc11c\ube44\uc2a4 \uad6c\uc131<\/code> \uba54\uc11c\ub4dc\uc5d0 \uad6c\uc131 \ucf54\ub4dc\ub97c \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uba3c\uc800, \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. <code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucd94\uac00<\/code>\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc218\ud589\ub429\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/dependency-injection-aspnet-couchbase\/\">\uc885\uc18d\uc131 \uc8fc\uc785<\/a> \ud655\uc7a5\uc790\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0 \ub300\ud55c \ubd84\uc0b0 \uce90\uc2dc\ub97c \uc124\uc815\ud569\ub2c8\ub2e4. <code>\ucd94\uac00 \ubd84\uc0b0 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uce90\uc2dc<\/code>\uc5d0 \ub300\ud55c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \ub2e4\ub8ec \ubc14 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/distributed-caching-aspnet-couchbase\/\">\ubd84\uc0b0 \uce90\uc2f1<\/a>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">services.AddCouchbase(opt =&gt; =&gt;)\r\n{\r\n    opt.Servers = new List { new Uri(\"https:\/\/localhost:8091\") };\r\n});\r\n\r\nservices.AddDistributedCouchbaseCache(\"sessionstore\", \"password\", opt =&gt; { });<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase\ub97c \uc138\uc158 \uc800\uc7a5\uc18c\ub85c \uad6c\uc131\ud569\ub2c8\ub2e4. <code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc138\uc158 \ucd94\uac00<\/code>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">services.AddCouchbaseSession(opt =&gt; =&gt;)\r\n{\r\n    opt.CookieName = \".MyApp.Cookie\";\r\n    opt.IdleTimeout = new TimeSpan(0, 0, 20, 0);\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud544\uc694\ud55c \uacbd\uc6b0 \uc720\ud734 \uc2dc\uac04 \uc81c\ud55c(\uc138\uc158\uc774 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uc740 \ud6c4 \ub9cc\ub8cc\ub420 \ub54c\uae4c\uc9c0\uc758 \uc2dc\uac04), \ucfe0\ud0a4 \uc774\ub984 \ub4f1\uc744 \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc704\uc758 \uc608\uc5d0\uc11c\ub294 \uc2dc\uac04 \uc81c\ud55c\uc744 20\ubd84\uc73c\ub85c \uc124\uc815\ud558\uace0 \ucfe0\ud0a4 \uc774\ub984\uc744 \".MyApp.Cookie\"\ub85c \uc124\uc815\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_writing_to_a_distributed_session\">\ubd84\uc0b0 \uc138\uc158\uc5d0 \uc4f0\uae30<\/h3>\n<div class=\"paragraph\">\n<p>\uc138\uc158 \ub370\uc774\ud130\uc5d0 \uc561\uc138\uc2a4\ud558\ub824\uba74 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>HttpContext.Session<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uba3c\uc800 \uc138\uc158\uc5d0 \ubb34\uc5b8\uac00\ub97c \uc4f0\uace0 \uc2f6\uc2b5\ub2c8\ub2e4. \uc138\uc158\uc5d0\uc11c <code>\uc815\ubcf4<\/code> \ucee8\ud2b8\ub864\ub7ec \uc561\uc158\uc744 \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. <code>SetObject<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">public IActionResult About()\r\n{\r\n    HttpContext.Session.SetObject(\"sessionkey\", new\r\n    {\r\n        Name = \"Matt\",\r\n        Twitter = \"@mgroves\",\r\n        Guid = DateTime.Now\r\n    });\r\n\r\n    ViewData[\"Message\"] = \"\uadc0\ud558\uc758 \uc138\uc158\uc5d0 \uac12\uc744 \ub123\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ubcf4\ub824\uba74 '\uc5f0\ub77d\ucc98'\ub97c \ud074\ub9ad\ud558\uc138\uc694.\";\r\n\r\n    \ubc18\ud658 View();\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uc2dc\uc810\ubd80\ud130 '\uc815\ubcf4' \ud398\uc774\uc9c0\ub97c \ud074\ub9ad\ud558\uc5ec \ubcfc \ub54c\ub9c8\ub2e4 \"\uc138\uc158\ud0a4\" \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc138\uc158\uc5d0 \uc0c8 \uac12\uc774 \uc800\uc7a5\ub429\ub2c8\ub2e4. Couchbase \ucf58\uc194\ub85c \uc804\ud658\ud558\uba74 \uc800\uc7a5\ub418\ub294 \ub370\uc774\ud130\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/08102-distributed-session-document-in-couchbase.png\" alt=\"Distributed session document in Couchbase\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc0ac\uc6a9\uc790\uc758 \uc138\uc158\uc740 \ud558\ub098\uc758 \ubb38\uc11c\ub85c \ud45c\ud604\ub41c\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. \ub530\ub77c\uc11c \uc544\ub798\uc640 \uac19\uc774 \ub2e4\ub978 \uc138\uc158 \uac12\uc744 \uc0bd\uc785\ud558\uba74 \ud574\ub2f9 \uac12\uc740 \ub3d9\uc77c\ud55c \ubb38\uc11c\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">HttpContext.Session.SetObject(\"sessionkey2\", new\r\n{\r\n    \uc8fc\uc18c = \"123 Main St\",\r\n    City = \"Lancaster\",\r\n    State = \"OH\"\r\n});<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uacb0\uacfc \ubb38\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/08103-two-distributed-session-keys.png\" alt=\"Two distributed session keys\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubb38\uc11c\ub294 20MB\ub85c \uc81c\ud55c\ub418\ubbc0\ub85c \uc138\uc158\uc5d0 \ub123\ub294 \ub370\uc774\ud130\uc758 \uc591\uc774 \ub108\ubb34 \ub9ce\uc9c0 \uc54a\ub3c4\ub85d \uc8fc\uc758\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_reading_from_a_distributed_session\">\ubd84\uc0b0 \uc138\uc158\uc5d0\uc11c \uc77d\uae30<\/h3>\n<div class=\"paragraph\">\n<p>\uc138\uc158\uc5d0\uc11c \uac12\uc744 \uac00\uc838\uc624\ub824\uba74 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>GetObject<\/code> \ub97c \ud074\ub9ad\ud558\uace0 \uc138\uc158 \ud0a4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uc0d8\ud50c \ucf54\ub4dc\uc5d0\uc11c\ub294 \uc774 \uc791\uc5c5\uc744 <code>\uc5f0\ub77d\ucc98<\/code> \uc561\uc158:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\">public IActionResult Contact()\r\n{\r\n    ViewData[\"Message\"] = HttpContext.Session.GetObject(\"sessionkey\");\r\n\r\n    View();\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>'\uc815\ubcf4' \ud398\uc774\uc9c0\ub97c \ud55c \ubc88 \uc774\uc0c1 \ubc29\ubb38\ud55c \ud6c4 '\uc5f0\ub77d\ucc98' \ud398\uc774\uc9c0\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4. \ud398\uc774\uc9c0\uc5d0 \uc138\uc158 \uac1c\uccb4\uac00 \uc778\uc1c4\ub41c \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/08104-output-from-distributed-session.png\" alt=\"Output to ASP.NET from distributed session\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc5ec\uae30\uae4c\uc9c0\uc785\ub2c8\ub2e4. \ube44\uad50\uc801 \uc790\uba85\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ub2e4\ub978 \ubc29\ubc95\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. <code>\uc138\uc158<\/code>. \ub610\ud55c <a href=\"https:\/\/docs.microsoft.com\/en-us\/aspnet\/core\/fundamentals\/app-state?tabs=aspnetcore2x\">ASP.NET Core \ubb38\uc11c\uc5d0 \uc124\uba85\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud55c \uac00\uc9c0 \ub354: \ucfe0\ud0a4 \uc774\ub984(\".MyApp.Cookie\")\uc744 \uc9c0\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc774 \ucfe0\ud0a4\ub294 \uc6d0\ud558\ub294 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. Chrome\uc5d0\uc11c\ub294 Ctrl+Shift+I\ub97c \ub204\ub974\uace0 '\uc560\ud50c\ub9ac\ucf00\uc774\uc158' \ud0ed\uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4. \ucfe0\ud0a4\uc640 \ucfe0\ud0a4 \uac12\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/09\/08105-session-cookie.png\" alt=\"Session cookie\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc77c\ubc18\uc801\uc73c\ub85c ASP.NET Core \uac1c\ubc1c\uc790\ub85c\uc11c \uc77c\uc0c1\uc801\uc73c\ub85c \uc774 \uc138\ubd80 \uc0ac\ud56d\uc744 \uc54c \ud544\uc694\ub294 \uc5c6\uc9c0\ub9cc, \ub9cc\uc77c\uc744 \ub300\ube44\ud558\uc5ec \uc791\ub3d9 \ubc29\uc2dd\uc744 \uc54c\uc544\ub450\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_summary\">\uc694\uc57d<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Couchbase\uc6a9 \ubd84\uc0b0 \uc138\uc158 \ud655\uc7a5\uc740 ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ud655\uc7a5\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub418\ub294 \ub610 \ub2e4\ub978 \ub3c4\uad6c\uc785\ub2c8\ub2e4. \uc774 \ud3b8\ub9ac\ud55c .NET \ud655\uc7a5\uc790\ub97c \uc0ac\uc6a9\ud558\uba74 Couchbase\uac00 \uc5b4\ub5bb\uac8c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/data-platform\/\">\ucc38\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4<\/a> \ud50c\ub7ab\ud3fc\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Couchbase \ud655\uc7a5 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc9c8\ubb38\uc774\ub098 \uc758\uacac\uc774 \uc788\ub294 \uacbd\uc6b0, \ub2e4\uc74c\uc744 \ud655\uc778\ud558\uc138\uc694. <a href=\"https:\/\/github.com\/couchbaselabs\/Couchbase.Extensions\">GitHub \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac<\/a> \ub610\ub294 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/c\/net-sdk\/6\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 .NET SDK \ud3ec\ub7fc<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc544\ub798\uc5d0 \ub313\uae00\uc744 \ub0a8\uae30\uac70\ub098 \ub2e4\uc74c\uc5d0\uc11c \uc800\ub97c \ucc3e\uc544 .NET \ubc0f Couchbase\uc5d0 \uad00\ud55c \ubaa8\ub4e0 \uc9c8\ubb38\uc5d0 \ub300\ud574 \ubb38\uc758\ud574 \uc8fc\uc138\uc694. <a href=\"https:\/\/twitter.com\/mgroves\">\ud2b8\uc704\ud130 @mgroves<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Distributed session is a way for you to store your session state outside of your ASP.NET Core application. Using Couchbase to store session state can help you when you need to scale your web site, especially if you don\u2019t want [&hellip;]<\/p>","protected":false},"author":71,"featured_media":4028,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10126,1816],"tags":[1239,2052,2024],"ppma_author":[8937],"class_list":["post-4027","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-asp-dotnet","category-couchbase-server","tag-caching","tag-extensions","tag-session"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Distributed Session Management in ASP.NET Core | Couchbase<\/title>\n<meta name=\"description\" content=\"Learn about distributed session management in ASP.NET Core with Couchbase. Scale your web apps seamlessly with our memory-first architecture and tools.\" \/>\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\/distributed-session-aspnet-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Distributed session management in ASP.NET Core with Couchbase\" \/>\n<meta property=\"og:description\" content=\"Learn about distributed session management in ASP.NET Core with Couchbase. Scale your web apps seamlessly with our memory-first architecture and tools.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/distributed-session-aspnet-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-20T15:45:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:40:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"633\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Distributed session management in ASP.NET Core with Couchbase\",\"datePublished\":\"2017-09-20T15:45:52+00:00\",\"dateModified\":\"2025-06-14T02:40:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/\"},\"wordCount\":1087,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg\",\"keywords\":[\"caching\",\"extensions\",\"session\"],\"articleSection\":[\".NET\",\"ASP.NET\",\"Couchbase Server\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/\",\"name\":\"Distributed Session Management in ASP.NET Core | Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg\",\"datePublished\":\"2017-09-20T15:45:52+00:00\",\"dateModified\":\"2025-06-14T02:40:26+00:00\",\"description\":\"Learn about distributed session management in ASP.NET Core with Couchbase. Scale your web apps seamlessly with our memory-first architecture and tools.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg\",\"width\":1200,\"height\":633},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Distributed session management in ASP.NET Core with Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/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":"Distributed Session Management in ASP.NET Core | Couchbase","description":"Couchbase\ub97c \uc0ac\uc6a9\ud55c ASP.NET Core\uc758 \ubd84\uc0b0 \uc138\uc158 \uad00\ub9ac\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc138\uc694. \uba54\ubaa8\ub9ac \uc6b0\uc120 \uc544\ud0a4\ud14d\ucc98\uc640 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6f9 \uc571\uc744 \uc6d0\ud65c\ud558\uac8c \ud655\uc7a5\ud558\uc138\uc694.","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\/distributed-session-aspnet-couchbase\/","og_locale":"ko_KR","og_type":"article","og_title":"Distributed session management in ASP.NET Core with Couchbase","og_description":"Learn about distributed session management in ASP.NET Core with Couchbase. Scale your web apps seamlessly with our memory-first architecture and tools.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/distributed-session-aspnet-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-09-20T15:45:52+00:00","article_modified_time":"2025-06-14T02:40:26+00:00","og_image":[{"width":1200,"height":633,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Distributed session management in ASP.NET Core with Couchbase","datePublished":"2017-09-20T15:45:52+00:00","dateModified":"2025-06-14T02:40:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/"},"wordCount":1087,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg","keywords":["caching","extensions","session"],"articleSection":[".NET","ASP.NET","Couchbase Server"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/","name":"Distributed Session Management in ASP.NET Core | Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg","datePublished":"2017-09-20T15:45:52+00:00","dateModified":"2025-06-14T02:40:26+00:00","description":"Couchbase\ub97c \uc0ac\uc6a9\ud55c ASP.NET Core\uc758 \ubd84\uc0b0 \uc138\uc158 \uad00\ub9ac\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc138\uc694. \uba54\ubaa8\ub9ac \uc6b0\uc120 \uc544\ud0a4\ud14d\ucc98\uc640 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6f9 \uc571\uc744 \uc6d0\ud65c\ud558\uac8c \ud655\uc7a5\ud558\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/09\/081-hero-congress-session.jpg","width":1200,"height":633},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/distributed-session-aspnet-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Distributed session management in ASP.NET Core with Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/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\/4027","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=4027"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/4027\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/4028"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=4027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=4027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=4027"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=4027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}