{"id":1956,"date":"2015-12-16T19:28:46","date_gmt":"2015-12-16T19:28:46","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1956"},"modified":"2025-10-09T07:26:48","modified_gmt":"2025-10-09T14:26:48","slug":"the-couchbase-asp-net-identity-storage-provider-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/the-couchbase-asp-net-identity-storage-provider-part-1\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 ASP.NET \uc2e0\uc6d0 \uc800\uc7a5\uc18c \uacf5\uae09\uc790: 1\ubd80"},"content":{"rendered":"<p>\uadf8\ub9ac\uace0 <a href=\"https:\/\/www.asp.net\/identity\/overview\/getting-started\" target=\"_blank\" rel=\"noopener\">ASP.NET ID \uc2dc\uc2a4\ud15c <\/a>\uc740 ASP.NET \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub0b4\uc5d0\uc11c \uad8c\ud55c \ubd80\uc5ec \ubc0f \uc778\uc99d\uc744 \uc9c0\uc6d0\ud558\uae30 \uc704\ud55c \uc0c8\ub85c\uc6b4 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uad6c\uc131 \uc694\uc18c \ubaa8\uc74c\uc785\ub2c8\ub2e4. \uc774\uc804 ASP.NET \uba64\ubc84\uc2ed \ubc0f \ub2e8\uc21c \uba64\ubc84\uc2ed\uc5d0 \ube44\ud574 \ud06c\uac8c \uac1c\uc120\ub41c \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, Couchbase Server\uc640 \uac19\uc740 \ube44\uad00\uacc4\ud615 \ubc31\uc5c5 \uc800\uc7a5\uc18c\ub97c \ubcf4\ub2e4 \uc27d\uac8c \uc9c0\uc6d0\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ud569\ub2c8\ub2e4. \uc778\uc99d \ubc0f \uad8c\ud55c \ubd80\uc5ec \uc678\uc5d0\ub3c4 \ud504\ub85c\ud544 \uc800\uc7a5\uc18c, \uc5ed\ud560 \ubc0f \ud074\ub808\uc784 \uae30\ubc18 \uad8c\ud55c \ubd80\uc5ec, Facebook \ubc0f Twitter\uc640 \uac19\uc740 \uc18c\uc15c \ub85c\uadf8\uc778 \uc9c0\uc6d0, OWIN \uc9c0\uc6d0 \ub4f1\uc744 \uc81c\uacf5\ud558\uba70 \ub354 \uc774\uc0c1 System.Web \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0 \uc758\uc874\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 ASP.NET \uc2e0\uc6d0 \uacf5\uae09\uc790\ub294 ASP.NET \uc2e0\uc6d0 API\uc758 \ubaa8\ub4e0 \uae30\ub2a5\uc740 \uc544\ub2c8\ub354\ub77c\ub3c4 \uac70\uc758 \ubaa8\ub4e0 \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud558\ub294 \"\uc644\uc804\ud55c\" \uacf5\uae09\uc790\uac00 \ub418\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ud569\ub2c8\ub2e4. \uc774\ubc88 \uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0(DP)\uc5d0\uc11c\ub294 \uc778\uc99d \ubd80\ubd84\ub9cc \ud14c\uc2a4\ud2b8\ub418\uc5c8\uc73c\uba70, \uc774\ud6c4 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 SMS \ubc0f \uc774\uba54\uc77c 2\ub2e8\uacc4 \uc778\uc99d\uacfc \uac19\uc740 \uae30\ub2a5 \uc678\uc5d0\ub3c4 \uc5ed\ud560 \ubc0f \ud074\ub808\uc784 \uae30\ubc18 \uad8c\ud55c \ubd80\uc5ec\uc640 \uc2f1\uae00\uc0ac\uc778\uc628(SSO)\uc744 \ud1b5\ud55c \ud0c0\uc0ac \uc18c\uc15c \ubbf8\ub514\uc5b4 \uacf5\uae09\uc790\uc640\uc758 \ud1b5\ud569\uc774 \ucd94\uac00\ub420 \uc608\uc815\uc785\ub2c8\ub2e4. \uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c<\/p>\n<p>Couchbase ASP.NET Identity Provider DP\ub97c ASP.NET MVC \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc2dc\uc791\ud558\uae30<\/h2>\n<p>\ud328\ud0a4\uc9c0\ub294 NuGet\uc5d0\uc11c \uc81c\uacf5\ub418\uac70\ub098 \uc5ec\uae30\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\ub294 Github\uc758 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c \uc9c1\uc811 \ube4c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 NuGet\uc744 \ud1b5\ud574 \uac8c\uc2dc\ub41c \ud328\ud0a4\uc9c0\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Visual Studio 2013(\ub610\ub294 2015)\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub2e4\uc74c\uacfc \uac19\uc774 \uc0c8 MVC \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4ed\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step1.jpg\" \/><\/p>\n<p>\uc6d0\ud558\ub294 \ub300\ub85c \uc774\ub984\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc800\ub294 CouchbaseIdentity\ub77c\uace0 \ud588\uc2b5\ub2c8\ub2e4. \"\ud655\uc778\"\uc744 \ud074\ub9ad\ud55c \ub2e4\uc74c \ub2e4\uc74c \ub300\ud654 \uc0c1\uc790\uc5d0\uc11c MVC\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step2.jpg\" \/><\/p>\n<p>\ub2e4\uc2dc \"\ud655\uc778\"\uc744 \ud074\ub9ad\ud558\uba74 Visual Studio\uc5d0\uc11c MVC \ud504\ub85c\uc81d\ud2b8\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c Visual Studio\ub294 \uc5d4\ud2f0\ud2f0 \ud504\ub808\uc784\uc6cc\ud06c ID \uacf5\uae09\uc790\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. Couchbase ID \uacf5\uae09\uc790\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 Entity Framework \uacf5\uae09\uc790\uc5d0 \ub300\ud55c \ud328\ud0a4\uc9c0 \uc885\uc18d\uc131\uc744 \uc81c\uac70\ud558\uace0, Couchbase Identity \ud328\ud0a4\uc9c0\uc5d0 \ub300\ud55c \ucc38\uc870\ub97c \ucd94\uac00\ud55c \ub2e4\uc74c Microsoft.AspNet.Identity.EntityFramework; \uc0ac\uc6a9\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \ucc38\uc870\ub97c Couchbase.AspNet.Identity\ub85c \ubc14\uafd4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\ud328\ud0a4\uc9c0 \uc885\uc18d\uc131\uc744 \ubcc0\uacbd\ud558\ub824\uba74 NuGet \ud328\ud0a4\uc9c0 \uad00\ub9ac\uc790\ub97c \uc5f4\uace0 Microsoft ASP.NET Identity EntityFramework \ud328\ud0a4\uc9c0\ub97c \ucc3e\uc544\uc11c \uc81c\uac70\ud569\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step3.jpg\" \/><\/p>\n<p>\uc774 \uc2dc\uc810\uc5d0\uc11c Visual Studio\ub97c \ub2e4\uc2dc \uc2dc\uc791\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c '\uc628\ub77c\uc778' \ud0ed\uc73c\ub85c \uc804\ud658\ud558\uace0 \ub4dc\ub86d\ub2e4\uc6b4\uc744 '\uc0ac\uc804 \ub9b4\ub9ac\uc2a4 \ud3ec\ud568'\uc73c\ub85c \ubcc0\uacbd\ud55c \ub2e4\uc74c \uac80\uc0c9 \ud14d\uc2a4\ud2b8 \uc0c1\uc790\uc5d0 'couchbase'\ub97c \uc785\ub825\ud569\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step4.jpg\" \/><\/p>\n<p>Couchbase ASP.NET ID\ub97c \uc120\ud0dd\ud558\uace0 \"\uc124\uce58\" \ubc0f \"\ub2eb\uae30\"\ub97c \ud074\ub9ad\ud558\uc5ec \ub300\ud654 \uc0c1\uc790\ub97c \ub2eb\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ud328\ud0a4\uc9c0 \uc885\uc18d\uc131 \uc5c5\ub370\uc774\ud2b8<\/h2>\n<p>\uc774\uc81c \uae30\ubcf8 \uc5d4\ud2f0\ud2f0 \ud504\ub808\uc784\uc6cc\ud06c ID \uacf5\uae09\uc790 \ud328\ud0a4\uc9c0\ub97c \uad50\uccb4\ud558\uace0 Couchbase ASP.NET Identity \uc885\uc18d\uc131 \ubc0f \ud328\ud0a4\uc9c0\ub85c \uad50\uccb4\ud588\uc73c\ubbc0\ub85c \uc0c8 \uacf5\uae09\uc790\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \ud504\ub85c\uc81d\ud2b8\ub97c \uc5c5\ub370\uc774\ud2b8\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800, \ub2e4\uc74c \ucc38\uc870\ub97c \ubaa8\ub450 \uc0b4\ud3b4\ubcf4\uace0<strong><em> Microsoft.AspNet.Identity.EntityFramework\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4; <\/em><\/strong>\uc640 \ud568\uaed8<em><strong> Couchbase.AspNet.Identity \uc0ac\uc6a9<\/strong><\/em>;. \uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub294 \uac00\uc7a5 \uc26c\uc6b4 \ubc29\ubc95\uc740 \uac04\ub2e8\ud55c \uac80\uc0c9 \ubc0f \ubc14\uafb8\uae30(Ctrl F)\uc785\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7f0 \ub2e4\uc74c IdentityModels.cs\uc5d0\uc11c ApplicationDbContext \ud074\ub798\uc2a4\ub97c IdentityDbContext \ub300\uc2e0 ThrowableBucket\uc5d0\uc11c \ud30c\uc0dd\ub418\ub3c4\ub85d \ubcc0\uacbd\ud55c \ub2e4\uc74c \uae30\ubcf8 \uc0dd\uc131\uc790\ub97c \uc7ac\uc815\uc758\ud558\uc5ec ID \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uae30\ub85c \uc120\ud0dd\ud55c \ubc84\ud0b7\uc774 \uc804\ub2ec\ub418\ub3c4\ub85d \ud558\uc138\uc694. \uc800\ub294 \"\uae30\ubcf8\" \ubc84\ud0b7\uc5d0 \uc2e0\uc6d0 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uae30\ub85c \uc120\ud0dd\ud588\uc9c0\ub9cc, \uc6d0\ud55c\ub2e4\uba74 \ubcc4\ub3c4\uc758 \ubc84\ud0b7\uc744 \ub9cc\ub4e4 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step6.jpg\" \/><\/p>\n<p>\"ThrowableBucket\"\uc740 SDK\uc758 \ub3d9\uc791\uc744 \uc57d\uac04 \ubcc0\uacbd\ud558\ub294 \uc77c\ubd80 CouchbaseBucket CRUD \uba54\uc11c\ub4dc\uc758 \ub798\ud37c\ub85c, \uc791\ub3d9 \uc2e4\ud328\uac00 \ubc1c\uc0dd\ud558\uba74 \ub358\uc838\uc9c4\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. \ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c\ub294 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c Global.asax \ud30c\uc77c\uc744 \uc5f4\uace0 \ucf54\ub4dc\ub97c \ucd94\uac00\ud558\uc5ec Couchbase ASP.NET ID \uacf5\uae09\uc790\uac00 \uc0ac\uc6a9\ud558\ub294 Couchbase SDK\ub97c \ucd08\uae30\ud654\ud569\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step5.jpg\" \/><\/p>\n<p>ClusterHelper\ub294 \ubc84\ud0b7\uacfc \ucc38\uc870\ub97c \uc27d\uac8c \uad00\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc8fc\ub294 Couchbase .NET SDK\uc758 \ub3c4\uc6b0\ubbf8 \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. Application_Start\uc5d0\uc11c ClusterHelper\ub97c \ucd08\uae30\ud654\ud558\uace0 Application_End\uc5d0\uc11c \ub2eb\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \uc774 \ub2e8\uacc4\ub97c \uc644\ub8cc\ud558\uba74 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c Couchbase\ub97c ID \ubc0f \ud504\ub85c\ud544\uc744 \uc704\ud55c \ubc31\uc5c5 \uc800\uc7a5\uc18c\ub85c \uc0ac\uc6a9\ud560 \uc900\ube44\uac00 \ub41c \uac83\uc785\ub2c8\ub2e4!<\/p>\n<h2>\ud14c\uc2a4\ud2b8\ud574 \ubcf4\uc138\uc694!<\/h2>\n<p>\uc704\uc758 \ub2e8\uacc4\ub97c \uc644\ub8cc\ud55c \ud6c4\uc5d0\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589(\uc624\ub978\ucabd \ud074\ub9ad&gt;\ub514\ubc84\uadf8=&gt;\uc0c8 \uc778\uc2a4\ud134\uc2a4 \uc2dc\uc791)\ud558\uace0 \ub4f1\ub85d \ud398\uc774\uc9c0\ub85c \uc774\ub3d9\ud558\uc5ec \uc5f0\ub3d9\uc744 \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step9.jpg\" \/><\/p>\n<p>\uc774\uba54\uc77c\uacfc \ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud558\uace0 \ube44\ubc00\ubc88\ud638\ub97c \ud655\uc778\ud55c \ub2e4\uc74c '\ub4f1\ub85d'\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step10.jpg\" \/><\/p>\n<p>\ubaa8\ub4e0 \uac83\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc9c4\ud589\ub418\uc5c8\ub2e4\uba74 \ud648 \ud398\uc774\uc9c0\ub85c \ub2e4\uc2dc \ub9ac\ub514\ub809\uc158\ub418\uace0 \"\uc548\ub155\ud558\uc138\uc694 ....\" \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc774\uc81c \uc778\uc99d\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4!<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step11.jpg\" \/><\/p>\n<h2>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \ud504\ub85c\ud544\uc744 \ubaa8\ub378\ub9c1\ud558\ub294 \ubc29\ubc95<\/h2>\n<p>\uae30\ubcf8 ID \uacf5\uae09\uc790\ub294 \ub370\uc774\ud130\ub97c \uc11c\ub85c \uc5f0\uacb0\ud558\ub294 \uc678\ub798 \ud0a4\uac00 \uc788\ub294 \uc77c\ub828\uc758 \uad00\uacc4\ud615 \ud14c\uc774\ube14\uc744 \uae30\ubc18\uc73c\ub85c \ud569\ub2c8\ub2e4. Couchbase ASP.NET \uacf5\uae09\uc790\ub294 NoSQL \uc811\uadfc \ubc29\uc2dd\uc744 \ucde8\ud558\uc5ec \ub370\uc774\ud130\ub97c JSON \ubb38\uc11c\ub85c \uc800\uc7a5\ud558\uace0 \ub370\uc774\ud130\ub97c \uac00\uc838\uc624\ub294 \ud0a4\uac00 \uae30\ubcf8 \uc778\ub371\uc2a4\uac00 \uc544\ub2cc \uacbd\uc6b0 \ubcf4\uc870 \uc778\ub371\uc2a4\uc5d0 \"\uc218\ub3d9 \uc778\ub371\uc2a4\"\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uae30\ubcf8 \ubb38\uc11c\uc758 \uad6c\uc870\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step7.jpg\" \/><\/p>\n<p>\uc774\ub294 \ub9e4\uc6b0 \uac04\ub2e8\ud55c \ubb38\uc11c\ub85c, \uac70\uc758 \ubaa8\ub4e0 \uacbd\uc6b0\uc5d0 \"\uc784\ubca0\ub529\"\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc5ed\ud560 \ubc0f \ud074\ub808\uc784\uacfc \uac19\uc740 \uad00\uacc4\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4(\ub098\uc911\uc5d0 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \uc790\uc138\ud788 \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4!). \uc774 \ubb38\uc11c \ub0b4\uc758 \ud544\ub4dc\uc5d0 \ub300\ud55c \uc870\ud68c\ub97c \uc218\ud589\ud558\uae30 \uc704\ud574 \ud504\ub85c\ud544\uc758 \uc774\uba54\uc77c \uc8fc\uc18c\ub97c \uae30\ubcf8 \ud0a4(914dc...)\uc640 \uc5f0\uacb0\ud558\ub294 \ub450 \ubc88\uc9f8 \ubc14\uc774\ub108\ub9ac \ubb38\uc11c\ub97c \uc0dd\uc131\ud558\ub294\ub370, \uc774\ub294 \"\ucc38\uc870\"\ub77c\ub294 \ubaa8\ub378\ub9c1 \uac1c\ub150\uacfc \uc720\uc0ac\ud569\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/july\/the-couchbase-asp.net-identity-storage-provider-part-1\/couchbase-example-step8.jpg\" \/><\/p>\n<p>\"\uc218\ub3d9\" \ubcf4\uc870 \uc778\ub371\uc2a4\ub97c \uc4f8\ubaa8\uc5c6\uac8c \ub9cc\ub4dc\ub294 N1QL \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\uc5c8\uc9c0\ub9cc, \uadf8 \uc758\ub3c4\ub294 Couchbase Server 3.0 \uc774\uc0c1\uc744 \uc9c0\uc6d0\ud558\uae30 \uc704\ud55c \uac83\uc774\uba70, N1QL\uc740 \uc62c\ud574 \ub9d0\uc5d0 \ucd9c\uc2dc\ub420 Couchbase Server 4.0\uc758 \uae30\ub2a5\uc774 \ub420 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<h2>\ubc1b\ub294 \ubc29\ubc95:<\/h2>\n<p>Couchbase ASP.NET ID \uacf5\uae09\uc790\ub294 NuGet\uc5d0\uc11c \ud328\ud0a4\uc9c0\ub85c \uc81c\uacf5\ub418\uac70\ub098 Github \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc18c\uc2a4\uc5d0\uc11c \uc9c1\uc811 \ube4c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uae30\uc5ec\ud558\uace0 \uc2f6\uc73c\uc2dc\uba74 \uc5b8\uc81c\ub4e0\uc9c0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \ud658\uc601\ud569\ub2c8\ub2e4. \ubc84\uadf8\ub97c \ubc1c\uacac\ud558\uba74 Jira \ud2f0\ucf13\uc744 \ub9cc\ub4e4\uba74 \ud604\uc7ac \uc0c1\ud0dc\uc5d0 \ub300\ud55c \uc54c\ub9bc\uc744 \ubc1b\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>Github: <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-aspnet-identity\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/couchbaselabs\/couchbase-aspnet-identity<\/a><\/li>\n<li>NuGet: <a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseIdentity\/1.0.0-dp\" target=\"_blank\" rel=\"noopener\">https:\/\/www.nuget.org\/packages\/CouchbaseIdentity\/1.0.0-dp<\/a><\/li>\n<li>Jira: <a href=\"https:\/\/issues.couchbase.com\/browse\/CBASP\" target=\"_blank\" rel=\"noopener\">https:\/\/issues.couchbase.com\/browse\/CBASP<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>The ASP.NET Identity System is a new collection of software components for supporting authourization and authentication within ASP.NET applications. It provides significant improvements over the previous ASP.NET Membership and Simple Membership and aims to make it easier support non-relational backing [&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,1814,10126,1815,2201],"tags":[1452,1455,1456],"ppma_author":[8970],"class_list":["post-1956","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-application-design","category-asp-dotnet","category-best-practices-and-tutorials","category-tools-sdks","tag-asp","tag-authentication","tag-authorization"],"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>The Couchbase ASP.NET Identity Storage Provider: Part 1<\/title>\n<meta name=\"description\" content=\"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.\" \/>\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\/the-couchbase-asp-net-identity-storage-provider-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Couchbase ASP.NET Identity Storage Provider: Part 1\" \/>\n<meta property=\"og:description\" content=\"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/the-couchbase-asp-net-identity-storage-provider-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-16T19:28:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:26:48+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=\"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\/the-couchbase-asp-net-identity-storage-provider-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"The Couchbase ASP.NET Identity Storage Provider: Part 1\",\"datePublished\":\"2015-12-16T19:28:46+00:00\",\"dateModified\":\"2025-10-09T14:26:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\"},\"wordCount\":958,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"asp\",\"authentication\",\"authorization\"],\"articleSection\":[\".NET\",\"Application Design\",\"ASP.NET\",\"Best Practices and Tutorials\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\",\"name\":\"The Couchbase ASP.NET Identity Storage Provider: Part 1\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-12-16T19:28:46+00:00\",\"dateModified\":\"2025-10-09T14:26:48+00:00\",\"description\":\"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#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\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Couchbase ASP.NET Identity Storage Provider: Part 1\"}]},{\"@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":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 ASP.NET \uc2e0\uc6d0 \uc800\uc7a5\uc18c \uacf5\uae09\uc790: 1\ubd80","description":"\uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Couchbase ASP.NET ID \uc800\uc7a5\uc18c \uacf5\uae09\uc790 DP\ub97c ASP.NET MVC \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc744 \uc911\uc810\uc801\uc73c\ub85c \uc124\uba85\ud569\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\/the-couchbase-asp-net-identity-storage-provider-part-1\/","og_locale":"ko_KR","og_type":"article","og_title":"The Couchbase ASP.NET Identity Storage Provider: Part 1","og_description":"This post focuses on how to integrate the Couchbase ASP.NET Identity Storage Provider DP with an ASP.NET MVC Web Application.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/the-couchbase-asp-net-identity-storage-provider-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-12-16T19:28:46+00:00","article_modified_time":"2025-10-09T14:26:48+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":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"The Couchbase ASP.NET Identity Storage Provider: Part 1","datePublished":"2015-12-16T19:28:46+00:00","dateModified":"2025-10-09T14:26:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/"},"wordCount":958,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["asp","authentication","authorization"],"articleSection":[".NET","Application Design","ASP.NET","Best Practices and Tutorials","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 ASP.NET \uc2e0\uc6d0 \uc800\uc7a5\uc18c \uacf5\uae09\uc790: 1\ubd80","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-12-16T19:28:46+00:00","dateModified":"2025-10-09T14:26:48+00:00","description":"\uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Couchbase ASP.NET ID \uc800\uc7a5\uc18c \uacf5\uae09\uc790 DP\ub97c ASP.NET MVC \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc744 \uc911\uc810\uc801\uc73c\ub85c \uc124\uba85\ud569\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/the-couchbase-asp-net-identity-storage-provider-part-1\/#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\/the-couchbase-asp-net-identity-storage-provider-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Couchbase ASP.NET Identity Storage Provider: Part 1"}]},{"@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\/1956","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=1956"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1956\/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=1956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=1956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=1956"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=1956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}