{"id":1804,"date":"2014-12-16T18:04:10","date_gmt":"2014-12-16T18:04:10","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1804"},"modified":"2023-06-28T01:20:48","modified_gmt":"2023-06-28T08:20:48","slug":"tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/","title":{"rendered":"TapMap \ud30c\ud2b8 1: Couchbase Server 2.0 \ubc0f .NET \ud074\ub77c\uc774\uc5b8\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec T \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc791\uc5c5\ud558\uae30"},"content":{"rendered":"<p>\uc800\ub294 .NET\uacfc Couchbase Server\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c \ucc38\uc870 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4\uc5b4\uc57c\uaca0\ub2e4\uace0 \uc0dd\uac01\ud588\uc2b5\ub2c8\ub2e4.  Progressive NoSQL \ucee8\ud37c\ub7f0\uc2a4\uc5d0 \ucc38\uc11d\ud558\uae30 \uc704\ud574 \ub7f0\ub358\uc73c\ub85c \uc774\ub3d9\ud558\ub294 \ub3d9\uc548 <a href=\"https:\/\/skillsmatter.com\/event\/nosql\/progressive-nosql-tutorials\/\">\uc911\uc694\ud55c \uae30\uc220<\/a>\ud638\ud154 \ubc29\uc774 \uc900\ube44\ub418\uae30\ub97c \uae30\ub2e4\ub9ac\ub294 \ub3d9\uc548 \uc2a4\ud0c0\ud2b8\ubc85\uc2a4\uc5d0\uc11c TapMap\uc774\ub77c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uc571\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud569\ub2c8\ub2e4. \ub9e5\uc8fc\uc5d0 \ud2b9\ubcc4\ud788 \ucd08\uc810\uc744 \ub9de\ucd98 \ud2b8\uc704\ud130\uc758 \ubaa8\uc870\ud488\uc77c \ubfd0\uc785\ub2c8\ub2e4.  \uae30\ubcf8 \uc544\uc774\ub514\uc5b4\ub294 \uc220\uc9d1\uc5d0 \uc788\ub294 \ub204\uad70\uac00\uac00 \ud2b9\uc815 \uc7a5\uc18c\uc5d0\uc11c \ud2b9\uc815 \ub9e5\uc8fc\ub97c \ubc1c\uacac\ud558\uace0 \ub9c8\uc168\ub2e4\uace0 \uc2e0\uace0\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.  \uc774\ub7ec\ud55c \uc2e0\uace0\ub97c \"\ud0ed\"\uc774\ub77c\uace0 \ud569\ub2c8\ub2e4.  \"\uc9c0\ub3c4\" \uae30\ub2a5\uc740 \uc9c0\uc624\uce74\uc6b0\uce58\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub178\ud0a4\uc544 \uc9c0\ub3c4\uc5d0\uc11c \uc77c\ub828\uc758 \ud0ed\uc744 \ub80c\ub354\ub9c1\ud569\ub2c8\ub2e4.  \uc0ac\uc6a9\uc790\ub294 \uc790\uc2e0\uc774 \uc88b\uc544\ud558\ub294 \ub9e5\uc8fc\ub97c \uc5b4\ub514\uc11c \ucc3e\uc744 \uc218 \uc788\ub294\uc9c0 \ube60\ub974\uac8c \uc54c \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<p><img decoding=\"async\" style=\"width: 683px;height: 600px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/tapmap_0.PNG\" alt=\"\" \/><\/p>\n<p>\ucf54\ub4dc\ub294 \uc544\uc9c1 \uc54c\ud30c \ubc84\uc804\uc774\uace0 \uc81c HTML \uae30\uc220\ub3c4 \uc5c5\uadf8\ub808\uc774\ub4dc\ud574\uc57c \ud569\ub2c8\ub2e4.  \ud558\uc9c0\ub9cc \ucda9\ubd84\ud788 \uad6c\ud604\uc744 \ub9c8\ucce4\uae30 \ub54c\ubb38\uc5d0 \ud0ed\ub9f5\uc5d0 \ub178\ucd9c\ub41c \ucf54\ub4dc \ud328\ud134\uacfc \uc194\ub8e8\uc158\uc5d0 \ub300\ud55c \uc77c\ub828\uc758 \ud3ec\uc2a4\ud305\uc744 \uc2dc\uc791\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.  \uc774 \uae00\uc740 1\ud3b8\uc73c\ub85c, .NET \ud074\ub77c\uc774\uc5b8\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac04\ub2e8\ud55c T for Couchbase \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4.  \ucf54\ub4dc\ub294 \ub2e4\uc74c\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/couchbaselabs\/TapMap\">https:\/\/github.com\/couchbaselabs\/TapMap<\/a>.<\/p>\n<p>\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc775\uc219\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uae30\ubcf8 \uac1c\ub150\uc740 \ub3c4\uba54\uc778 \uac1d\uccb4\uc758 \ub370\uc774\ud130 \uc561\uc138\uc2a4\ub97c \ub2f4\ub2f9\ud558\ub294 \ud074\ub798\uc2a4\uac00 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.  \ub530\ub77c\uc11c \uc774\uba54\uc77c \uc8fc\uc18c\ub85c \uc0ac\uc6a9\uc790\ub97c \ucffc\ub9ac\ud558\ub824\uba74 UserRepository\uc758 GetByEmail(\ubb38\uc790\uc5f4 \uc774\uba54\uc77c) \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.  \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ud45c\uc900 CRUD \uba54\uc11c\ub4dc\ub3c4 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.  \uc774 \ud328\ud134\uc5d0\ub294 \uc870\uae08 \ub354 \ub9ce\uc740 \uac83\uc774 \uc788\uc9c0\ub9cc \uae30\ubcf8\uc801\uc778 \uc0ac\uc6a9\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.  \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ff649690.aspx\">https:\/\/msdn.microsoft.com\/en-us\/library\/ff649690.aspx<\/a>.<\/p>\n<p>\uc0c1\uc18d\uc740 \ucf54\ub4dc \uc7ac\uc0ac\uc6a9\uc744 \uc704\ud55c \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \ubc29\ubc95\uc785\ub2c8\ub2e4.  \ud0ed\ub9f5\uc740 \uae30\ubcf8 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0 CRUD \uba54\uc11c\ub4dc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.  \ub610\ud55c \ubca0\uc774\uc2a4 \ud074\ub798\uc2a4\ub294 \uc81c\ub124\ub9ad\uc744 \uc0ac\uc6a9\ud558\uc5ec CRUD \uba54\uc11c\ub4dc\uac00 \uac1d\uccb4 \ub300\uc2e0 T\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4.  T\ub97c \ud2b9\uc815 \uc720\ud615\uc73c\ub85c \uc81c\ud55c\ud558\uba74 \uace7 \uc124\uba85\ud560 \uba87 \uac00\uc9c0 \ucd94\uac00\uc801\uc778 \uc774\uc810\ub3c4 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">public<\/span> \ucd08\ub85d <span style=\"color: #6666cc;font-weight: bold\">\ud074\ub798\uc2a4<\/span> \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ubca0\uc774\uc2a4<span style=\"color: #008000\">&lt;<\/span>T<span style=\"color: #008000\">&gt;<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uc5b4\ub514<\/span> T <span style=\"color: #008000\">:<\/span> \ubaa8\ub378\ubca0\uc774\uc2a4<br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #008080;font-style: italic\">\/\/\ud06c\ub7ec\ub4dc \uba54\uc11c\ub4dc<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc774\ubbf8 \uc54c\uace0 \uacc4\uc2dc\uaca0\uc9c0\ub9cc Couchbase Server 2.0\uc740 \ubb38\uc11c\uc5d0 \uc2a4\ud0a4\ub9c8\ub97c \uc801\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.  \ud3ec\ud568\ud558\ub824\ub294 \ubaa8\ub4e0 \uc18d\uc131\uacfc \ud568\uaed8 JSON \ubb38\uc11c\ub97c \uc800\uc7a5\ud569\ub2c8\ub2e4.  \uc989, \ubaa8\ub4e0 \ubb38\uc11c\ub294 \ud574\ub2f9 \ud0a4\uc5d0\uc11c \uac12\uc744 \ud30c\uc0dd\ud558\ub294 \uc608\uc57d\ub41c \"_id\" \uc18d\uc131\uacfc \ud568\uaed8 \uc800\uc7a5\ub429\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 \ubb38\uc11c\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc2a4\ud1a0\uc5b4<\/span><span style=\"color: #008000\">(<\/span>\uc2a4\ud1a0\uc5b4\ubaa8\ub4dc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ucd94\uac00<\/span>, <span style=\"color: #666666\">\"\ub9e5\uc8fc_\uc138_\ucca0\ud559\uc790\"<\/span>, <span style=\"color: #666666\">&#8220;{ <span style=\"color: #008080;font-weight: bold\">&#8220;<\/span>\uc774\ub984<span style=\"color: #008080;font-weight: bold\">&#8220;<\/span> : <span style=\"color: #008080;font-weight: bold\">&#8220;<\/span>\uc138 \uba85\uc758 \ucca0\ud559\uc790<span style=\"color: #008080;font-weight: bold\">&#8220;<\/span> }&#8221;<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><\/div>\n<\/div>\n<p>\uadf8 \uacb0\uacfc \ub2e4\uc74c\uacfc \uac19\uc740 \ubb38\uc11c\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #666666\">\"_id\"<\/span> <span style=\"color: #008000\">:<\/span> <span style=\"color: #666666\">\"\ub9e5\uc8fc_\uc138_\ucca0\ud559\uc790\"<\/span>,<br \/>\n<span style=\"color: #666666\">\"name\"<\/span> <span style=\"color: #008000\">:<\/span> <span style=\"color: #666666\">\"\uc138 \ucca0\ud559\uc790\"<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\ub530\ub77c\uc11c \ubaa8\ub4e0 \ub610\ub294 \ubaa8\ub378 \uac1d\uccb4\uac00 \uc774 ID \uc18d\uc131\uc744 \uac16\ub3c4\ub85d \ud558\uae30 \uc704\ud574 ID \uc18d\uc131\uc744 \uc815\uc758\ud558\ub294 \ubaa8\ub378 \ubca0\uc774\uc2a4 \ud074\ub798\uc2a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #008000\">[<\/span>\uc9c1\ub82c\ud654 \uac00\ub2a5<span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> \ucd08\ub85d <span style=\"color: #6666cc;font-weight: bold\">\ud074\ub798\uc2a4<\/span> \ubaa8\ub378\ubca0\uc774\uc2a4<br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #008000\">[<\/span>\uc81c\uc774\uc2a8 \ud504\ub85c\ud37c\ud2f0<span style=\"color: #008000\">(<\/span>\uc18d\uc131 \uc774\ub984 <span style=\"color: #008000\">=<\/span> <span style=\"color: #666666\">\"_id\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> Id <span style=\"color: #008000\">{<\/span> get<span style=\"color: #008000\">;<\/span> set<span style=\"color: #008000\">;<\/span> <span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc5ec\uae30\uc11c\ub294 JsonProperty\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc124\uba85\ud558\uc9c0 \uc54a\uaca0\uc2b5\ub2c8\ub2e4.  \uc800\ub294 \uc9c1\ub82c\ud654\ub97c \uc704\ud574 Json.NET\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc73c\uba70, \uc774\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/develop\/net\/next\/\">https:\/\/www.couchbase.com\/develop\/net\/next<\/a>.  \uc911\uc694\ud55c \uc810\uc740 \"Id\" \uc18d\uc131\uc744 \uac00\uc9c4 \ubaa8\ub378 \uac1d\uccb4\uac00 \uc788\uace0 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uac00 ModelBase\uc758 \uc11c\ube0c\ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc81c\ud55c\ud568\uc73c\ub85c\uc368 \ud56d\uc0c1 \uc774 \uc18d\uc131\uc744 \uac16\uac8c \ub41c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\ubcf4\uae30\ub97c \ub9cc\ub4e4 \ub54c \ubaa8\ub4e0 '\ub9e5\uc8fc' \ubb38\uc11c\ub098 \ubaa8\ub4e0 '\uc0ac\uc6a9\uc790' \ubb38\uc11c\ub97c \uc27d\uac8c \ucc3e\uac70\ub098 \ud2b9\uc815 \uc774\uba54\uc77c \uc8fc\uc18c\ub85c '\uc0ac\uc6a9\uc790' \ubb38\uc11c\ub97c \ucc3e\uc744 \uc218 \uc788\ub3c4\ub85d \ubb38\uc11c\uc5d0 \ubd84\ub958 \uccb4\uacc4\ub97c \ub450\ub294 \uac83\uc774 \uc720\uc6a9\ud569\ub2c8\ub2e4.  \uc774 \uc694\uad6c \uc0ac\ud56d\uc744 \uc6a9\uc774\ud558\uac8c \ud558\uae30 \uc704\ud574 \ubaa8\ub4e0 \ubaa8\ub378 \ubb38\uc11c\uc5d0 \"type\" \uc18d\uc131\uc744 \ubd80\uacfc\ud560 \uac83\uc785\ub2c8\ub2e4.  \ubaa8\ub378\ubca0\uc774\uc2a4\uc5d0 \uc77d\uae30 \uc804\uc6a9\uc758 \ucd94\uc0c1\uc801\uc778 Type \uc18d\uc131\uc744 \ucd94\uac00\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #008000\">[<\/span>\uc81c\uc774\uc2a8 \ud504\ub85c\ud37c\ud2f0<span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"type\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> \ucd08\ub85d <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc720\ud615 <span style=\"color: #008000\">{<\/span> get<span style=\"color: #008000\">;<\/span> <span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc774\uc81c \ubaa8\ub378\uc5d0 \ub300\ud574 \uac00\uc815\ud560 \uc218 \uc788\ub294 \uac00\uc815\uc744 \uc774\ud574\ud588\uc73c\ubbc0\ub85c RespositoryBase \ud074\ub798\uc2a4\ub85c \ub3cc\uc544\uac00 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>RepositoryBase \ud074\ub798\uc2a4\uc5d0\uc11c \uac00\uc7a5 \uba3c\uc800 \ud574\uc57c \ud560 \uc77c\uc740 CouchbaseCliet\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \uc815\uc758\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\n<p><span style=\"color: #0600ff;font-weight: bold\">\ubcf4\ud638\ub428<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uc815\uc801<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uc77d\uae30 \uc804\uc6a9<\/span> \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ud074\ub77c\uc774\uc5b8\ud2b8 _\ud074\ub77c\uc774\uc5b8\ud2b8 <span style=\"color: #008000\">=<\/span> <span style=\"color: #0600ff;font-weight: bold\">null<\/span><span style=\"color: #008000\">;<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">\uc815\uc801<\/span> \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ubca0\uc774\uc2a4<span style=\"color: #008000\">(<\/span><span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n\ud074\ub77c\uc774\uc5b8\ud2b8 <span style=\"color: #008000\">=<\/span> <a href=\"https:\/\/www.google.com\/search?q=new+msdn.microsoft.com\"><span style=\"color: #008000\">new<\/span><\/a> \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">(<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<\/div>\n<\/div>\n<p>\ud074\ub77c\uc774\uc5b8\ud2b8 \uc124\uc815\uc740 \ube44\uc6a9\uc774 \ub9ce\uc774 \ub4e4\uae30 \ub54c\ubb38\uc5d0 \uc815\uc801 \uc0dd\uc131\uc790\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\ud654\ub418\ub294 \uc77d\uae30 \uc804\uc6a9 \uc815\uc801 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\uc5ec AppDomain\ub2f9 \ud55c \ubc88\ub9cc \ubc1c\uc0dd\ud558\ub3c4\ub85d \ud560 \uac83\uc785\ub2c8\ub2e4.  \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \uae30\ubcf8 \ud074\ub798\uc2a4\uc758 \uae30\ubcf8 CRUD \uba54\uc11c\ub4dc\ub97c \ud655\uc7a5\ud574\uc57c \ud558\ub294 \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0 \ubcf4\ud638\ub41c \ud544\ub4dc\ub85c \ub178\ucd9c\ub429\ub2c8\ub2e4.  \uc774 \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \"couchbase\" \uc139\uc158\uc744 \uc815\uc758\ud55c Web.config\uc5d0 \uc758\uc874\ud55c\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.  \uc5b8\uc820\uac00\ub294 IoC \uce5c\ud654\uc801\uc778 \ubc84\uc804\uc758 RepositoryBase\ub97c \ucd94\uac00\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ubca0\uc774\uc2a4\ub294 \uc0dd\uc131, \uc5c5\ub370\uc774\ud2b8 \ubc0f \uc800\uc7a5 \uba54\uc11c\ub4dc\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.  \uc774\ub7ec\ud55c \uba54\uc11c\ub4dc\ub294 \ucc28\ub840\ub85c \uc801\uc808\ud55c StoreMode \uac12\uc73c\ub85c \ube44\uacf5\uac1c \"store\" \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.  Create\uc640 Update\ub294 \uac04\ub2e8\ud569\ub2c8\ub2e4.  Save\ub294 \ud0a4\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc744 \ub54c \ubb38\uc11c\ub97c \uc0dd\uc131\ud558\uace0 \ud0a4\uac00 \uc788\uc73c\uba74 \ub300\uccb4\ud569\ub2c8\ub2e4.  \ubc18\ud658 \uac12\uc740 \uc5f0\uc0b0\uc5d0 \ub300\ud55c CAS \uac12\uc785\ub2c8\ub2e4.  \uc5b8\uc820\uac00\ub294 CAS\ub97c \uc120\ud0dd\uc801 \ub9e4\uac1c\ubcc0\uc218\ub85c \ucd94\uac00\ud560 \uac83\uc785\ub2c8\ub2e4.  \uc800\uc7a5 \uba54\uc11c\ub4dc\ub294 \ub610\ud55c \ubaa8\ub4e0 \uac1d\uccb4\ub97c Couchbase\uc5d0 \uc800\uc7a5\ud558\uae30 \uc804\uc5d0 \ubaa8\ub4e0 \uac1d\uccb4\ub97c JSON \ubb38\uc790\uc5f4\ub85c \uc9c1\ub82c\ud654\ud558\ub294 CasJson \ud655\uc7a5 \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\n<p><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uac00\uc0c1<\/span> <span style=\"color: #6666cc;font-weight: bold\">ulong<\/span> \ub9cc\ub4e4\uae30<span style=\"color: #008000\">(<\/span>T \ubaa8\ub378<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> store<span style=\"color: #008000\">(<\/span>\uc2a4\ud1a0\uc5b4\ubaa8\ub4dc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ucd94\uac00<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uac00\uc0c1<\/span> <span style=\"color: #6666cc;font-weight: bold\">ulong<\/span> \uc5c5\ub370\uc774\ud2b8<span style=\"color: #008000\">(<\/span>T \ubaa8\ub378<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> store<span style=\"color: #008000\">(<\/span>\uc2a4\ud1a0\uc5b4\ubaa8\ub4dc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uad50\uccb4<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uac00\uc0c1<\/span> <span style=\"color: #6666cc;font-weight: bold\">ulong<\/span> \uc800\uc7a5<span style=\"color: #008000\">(<\/span>T \ubaa8\ub378<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> store<span style=\"color: #008000\">(<\/span>\uc2a4\ud1a0\uc5b4\ubaa8\ub4dc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc124\uc815<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">\ube44\uacf5\uac1c<\/span> <span style=\"color: #6666cc;font-weight: bold\">ulong<\/span> store<span style=\"color: #008000\">(<\/span>\uc2a4\ud1a0\uc5b4\ubaa8\ub4dc \ubaa8\ub4dc, T \ubaa8\ub378<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\nvar \uacb0\uacfc <span style=\"color: #008000\">=<\/span> \ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">CasJson<\/span><span style=\"color: #008000\">(<\/span>\ubaa8\ub4dc, BuildKey<span style=\"color: #008000\">(<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> \uacb0\uacfc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uacb0\uacfc<\/span> <span style=\"color: #008000\">?<\/span> \uacb0\uacfc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Cas<\/span> <span style=\"color: #008000\">:<\/span> <span style=\"color: #ff0000\">0<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<\/div>\n<\/div>\n<p>\ub610\ud55c \ube44\uacf5\uac1c \uc800\uc7a5\uc18c \uba54\uc11c\ub4dc\ub294 \ubcf4\ud638\ub41c BuildKey \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uaddc\uce59\uc5d0 \ub530\ub77c \ud0a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.  \uad6c\uccb4\uc801\uc73c\ub85c, \ud0a4\ub294 \ubaa8\ub378\uc758 Type \uc18d\uc131\uacfc Id \uc18d\uc131\uc5d0\uc11c \uacf5\ubc31\uc744 \ubc11\uc904\ub85c \ub300\uccb4\ud558\uc5ec \uad6c\uc131\ub429\ub2c8\ub2e4.  \uc774 \ubc84\uc804\uc758 BuildKey\ub294 Create, Update \ub610\ub294 Save\ub97c \uc0ac\uc6a9\ud558\ub294 \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uc7ac\uc815\uc758\ub418\uae30 \ub54c\ubb38\uc5d0 \uc2e4\uc81c\ub85c TapMap\uc740 \uc774 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.  \uc720\ud615\uacfc \uc774\ub984\uc744 \uae30\ubc18\uc73c\ub85c \ud0a4\ub97c \uad6c\uc131\ud560 \uc218 \uc788\ub3c4\ub85d \ubaa8\ub378\ubca0\uc774\uc2a4\uc5d0 \"\uc774\ub984\" \uc18d\uc131\uc744 \ucd94\uac00\ud558\ub294 \uac83\uc744 \uace0\ub824 \uc911\uc785\ub2c8\ub2e4.  \uc608\ub97c \ub4e4\uc5b4 \uc774\ub984\uc774 \"Old Yankee Ale\"\uc778 \ub9e5\uc8fc\ub294 \"beer_Old_Yankee_Ale\" \ud0a4\ub97c \uac16\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">\ubcf4\ud638\ub428<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uac00\uc0c1<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ube4c\ub4dc \ud0a4<span style=\"color: #008000\">(<\/span>T \ubaa8\ub378<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Concat<\/span><span style=\"color: #008000\">(<\/span>\ubaa8\ub378<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc720\ud615<\/span>, <span style=\"color: #666666\">&#8220;_&#8221;<\/span>\ubaa8\ub378<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Id<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uad50\uccb4<\/span><span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">&#8221; &#8220;<\/span>, <span style=\"color: #666666\">&#8220;_&#8221;<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>Get \uba54\uc11c\ub4dc\ub294 \ud638\ucd9c \uc2dc \ubb38\uc11c\uc758 _id\ub97c \uc778\uc218\ub85c \ubc1b\uc2b5\ub2c8\ub2e4.  \uadf8\ub7f0 \ub2e4\uc74c \uc774 \uac12\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \uc77c\ubc18 Get \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uae30 \uc704\ud55c \ud0a4\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4.  \ub610 \ub2e4\ub978 \ud655\uc7a5 \uba54\uc11c\ub4dc\uc778 GetJson(\ubb38\uc790\uc5f4 id)\ub3c4 Get \uba54\uc11c\ub4dc\uc5d0\uc11c JSON \ubb38\uc11c\ub97c T\uc758 \uc778\uc2a4\ud134\uc2a4\ub85c \ubcc0\ud658\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uac00\uc0c1<\/span> T Get<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> id<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\nvar doc <span style=\"color: #008000\">=<\/span> \ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">GetJson<\/span><span style=\"color: #008000\">&lt;<\/span>T<span style=\"color: #008000\">&gt;<\/span><span style=\"color: #008000\">(<\/span>id<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ub9cc\uc57d<\/span> <span style=\"color: #008000\">(<\/span>doc <span style=\"color: #008000\">!=<\/span> <span style=\"color: #0600ff;font-weight: bold\">null<\/span><span style=\"color: #008000\">)<\/span> doc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Id<\/span> <span style=\"color: #008000\">=<\/span> id<span style=\"color: #008000\">;<\/span> <span style=\"color: #008080;font-style: italic\">\/\/\uc11c\ubc84\uac00 JSON\uc5d0\uc11c _id\ub97c \ub2e4\uc2dc \uc804\ub2ec\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> doc<span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc81c\uac70\ub294 \ub9e4\uc6b0 \uac04\ub2e8\ud569\ub2c8\ub2e4.  \ubb38\uc11c \ud0a4(\ub2e4\uc2dc _id)\ub97c \uac00\uc838\uc640\uc11c Couchbase\uc5d0\uc11c \ud56d\ubaa9\uc744 \uc81c\uac70\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uac00\uc0c1<\/span> <span style=\"color: #6666cc;font-weight: bold\">void<\/span> \uc81c\uac70<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> id<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n\ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc81c\uac70<\/span><span style=\"color: #008000\">(<\/span>id<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\ubcf4\uae30 \uc561\uc138\uc2a4\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc9c0\uc6d0\uc740 \ubcf4\uae30 \uba54\uc11c\ub4dc\uc5d0\uc11c \uad00\ub840\uc5d0 \ub530\ub77c \uc218\ud589\ub429\ub2c8\ub2e4.  \uc774 \uba54\uc11c\ub4dc\ub294 \ub514\uc790\uc778 \ubb38\uc11c \uc774\ub984\uc774 \ubcf5\uc218\ud615 \ubaa8\ub378 \uc720\ud615 \uc774\ub984\uc774\ub77c\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.  \ub530\ub77c\uc11c BeerRepository\ub294 \uc790\ub3d9\uc73c\ub85c \ubcf4\uae30 \uc694\uccad\uc744 \"beers\"\ub77c\ub294 \ub514\uc790\uc778 \ubb38\uc11c\uc5d0 \ub9e4\ud551\ud569\ub2c8\ub2e4.  View \uba54\uc11c\ub4dc\ub294 IView \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.  \ud638\ucd9c\uc790\uac00 IView\ub97c \uc774\ud130\ub808\uc774\ud2b8\ud560 \ub54c\uae4c\uc9c0 HTTP \ud638\ucd9c\uc774 \uc2e4\uc81c\ub85c \uc774\ub8e8\uc5b4\uc9c0\uc9c0 \uc54a\uc73c\ubbc0\ub85c, \uc11c\ube0c\ud074\ub798\uc2a4\ub294 \uc720\ucc3d\ud55c \ucffc\ub9ac \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubdf0\ub97c \ud638\ucd9c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uace7 \ud2b9\uc815 \ubdf0 \ud638\ucd9c\uc758 \uc608\ub97c \ubcf4\uc5ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">\ubcf4\ud638\ub428<\/span> IView<span style=\"color: #008000\">&lt;<\/span>IViewRow<span style=\"color: #008000\">&gt;<\/span> \ubcf4\uae30<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ubcf4\uae30 \uc774\ub984<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> \ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">GetView<\/span><span style=\"color: #008000\">(<\/span>\uc778\ud50c\ub809\ud130\ub137<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ubcf5\uc218\ud654<\/span><span style=\"color: #008000\">(<\/span><a href=\"https:\/\/www.google.com\/search?q=typeof+msdn.microsoft.com\"><span style=\"color: #008000\">typeof<\/span><\/a><span style=\"color: #008000\">(<\/span>T<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc774\ub984<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">ToLower<\/span><span style=\"color: #008000\">(<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span>, \ubcf4\uae30 \uc774\ub984<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\ud604\uc7ac GeoCouch\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc9c0\ub9ac\uacf5\uac04 \ucffc\ub9ac\ub97c \ud5c8\uc6a9\ud558\ub294 SpatialView \uba54\uc11c\ub4dc\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.  \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 GetSpatialView \uba54\uc11c\ub4dc\ub294 \ud604\uc7ac \uc2e4\ud5d8 \uc911\uc774\uba70 \ud074\ub77c\uc774\uc5b8\ud2b8 1.2 \ub9c8\uc2a4\ud130 \ube0c\ub79c\uce58\uc5d0 \ucd94\uac00\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.  \ud558\uc9c0\ub9cc \uace7 \ucd94\uac00\ub420 \uc608\uc815\uc785\ub2c8\ub2e4.  TapMap \uc800\uc7a5\uc18c\ub97c \ubcf5\uc81c\ud558\uba74 \uc774 \uba54\uc11c\ub4dc\ub97c \uc9c0\uc6d0\ud558\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8 \ubc14\uc774\ub108\ub9ac\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">\ubcf4\ud638\ub428<\/span> IView<span style=\"color: #008000\">&lt;<\/span>ISpatialViewRow<span style=\"color: #008000\">&gt;<\/span> \uc2a4\ud398\uc774\uc15c\ubdf0<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ubcf4\uae30 \uc774\ub984<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> \ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">GetSpatialView<\/span><span style=\"color: #008000\">(<\/span>\uc778\ud50c\ub809\ud130\ub137<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ubcf5\uc218\ud654<\/span><span style=\"color: #008000\">(<\/span><a href=\"https:\/\/www.google.com\/search?q=typeof+msdn.microsoft.com\"><span style=\"color: #008000\">typeof<\/span><\/a><span style=\"color: #008000\">(<\/span>T<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc774\ub984<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">ToLower<\/span><span style=\"color: #008000\">(<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span>, \ubcf4\uae30 \uc774\ub984<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc5ec\uae30\uae4c\uc9c0 RepositoryBase\uc5d0 \ub300\ud574 \uc124\uba85\ud588\uc2b5\ub2c8\ub2e4.  \uc774\uc81c \uba54\uc11c\ub4dc\uc640 \ubaa9\uc801\uc744 \uc0b4\ud3b4\ubd24\uc73c\ub2c8 \ud558\uc704 \ud074\ub798\uc2a4\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.  \uba3c\uc800 \uc0ac\uc6a9\uc790 \ubaa8\ub378 \ud074\ub798\uc2a4\ub294 \uc0ac\uc6a9\uc790 \uc774\ub984, \uc774\uba54\uc77c \ubc0f \ube44\ubc00\ubc88\ud638\uc5d0 \ub300\ud55c \uc18d\uc131\uc744 \uc815\uc758\ud569\ub2c8\ub2e4.  \ub610\ud55c \ud074\ub798\uc2a4 \ud504\ub85c\ud37c\ud2f0\uc758 \uc18c\ubb38\uc790 \ubc84\uc804\uc5d0 \ub300\ud55c JSON \ud504\ub85c\ud37c\ud2f0 \ub9e4\ud551\ub3c4 \uc81c\uacf5\ud569\ub2c8\ub2e4.  User\ub294 ModelBase\ub97c \ud655\uc7a5\ud558\uace0 \ubb38\uc790\uc5f4 \"user\"\ub97c \ubc18\ud658\ud558\uc5ec Type \uc18d\uc131\uc744 \uad6c\ud604\ud55c\ub2e4\ub294 \uc810\ub3c4 \uc8fc\ubaa9\ud558\uc138\uc694.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\n<p><span style=\"color: #008000\">[<\/span>\uc9c1\ub82c\ud654 \uac00\ub2a5<span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ud074\ub798\uc2a4<\/span> \uc0ac\uc6a9\uc790 <span style=\"color: #008000\">:<\/span> \ubaa8\ub378\ubca0\uc774\uc2a4<br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #008000\">[<\/span>\ud544\uc218<span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #008000\">[<\/span>\uc81c\uc774\uc2a8 \ud504\ub85c\ud37c\ud2f0<span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"username\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc0ac\uc6a9\uc790 \uc774\ub984 <span style=\"color: #008000\">{<\/span> get<span style=\"color: #008000\">;<\/span> set<span style=\"color: #008000\">;<\/span> <span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #008000\">[<\/span>\ud544\uc218<span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #008000\">[<\/span>\uc81c\uc774\uc2a8 \ud504\ub85c\ud37c\ud2f0<span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"\uc774\uba54\uc77c\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc774\uba54\uc77c <span style=\"color: #008000\">{<\/span> get<span style=\"color: #008000\">;<\/span> set<span style=\"color: #008000\">;<\/span> <span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #008000\">[<\/span>\ud544\uc218<span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #008000\">[<\/span>\uc81c\uc774\uc2a8 \ud504\ub85c\ud37c\ud2f0<span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"\ube44\ubc00\ubc88\ud638\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">]<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ube44\ubc00\ubc88\ud638 <span style=\"color: #008000\">{<\/span> get<span style=\"color: #008000\">;<\/span> set<span style=\"color: #008000\">;<\/span> <span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uc624\ubc84\ub77c\uc774\ub4dc<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc720\ud615<br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\nget <span style=\"color: #008000\">{<\/span> <span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> <span style=\"color: #666666\">\"user\"<\/span><span style=\"color: #008000\">;<\/span> <span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<\/div>\n<\/div>\n<p>UserRepository \ud074\ub798\uc2a4\ub294 T\uac00 \uc0ac\uc6a9\uc790 \uc720\ud615\uc73c\ub85c \uc124\uc815\ub41c RepositoryBase\ub97c \ud655\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ud074\ub798\uc2a4<\/span> \uc0ac\uc6a9\uc790 \uc800\uc7a5\uc18c <span style=\"color: #008000\">:<\/span> \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ubca0\uc774\uc2a4<span style=\"color: #008000\">&lt;<\/span>\uc0ac\uc6a9\uc790<span style=\"color: #008000\">&gt;<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #008080;font-style: italic\">\/\/methods<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc704\uc758 \uac04\ub2e8\ud55c \uc815\uc758\ub9cc\uc73c\ub85c\ub3c4 UserRepository\ub294 \uc0c1\ub2f9\ud55c \ud798\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.  \uae30\ubcf8 \ud074\ub798\uc2a4\uc5d0 \uc815\uc758\ub41c \ubaa8\ub4e0 \uae30\ubcf8 CRUD \uae30\ub2a5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uadf8\ub7ec\ub098 \uc571\uc5d0\uc11c \uc0ac\uc6a9\uc790 \ubb38\uc11c\ub85c \uc791\uc5c5\ud558\ub294 \uba87 \uac00\uc9c0 \ud2b9\uc218\ud55c \uc2dc\ub098\ub9ac\uc624\uac00 \uc788\uc73c\uba70 UserRepository\ub294 \uc774\ub7ec\ud55c \uc2dc\ub098\ub9ac\uc624\ub97c \uc9c0\uc6d0\ud558\uae30 \uc704\ud55c \uba54\uc11c\ub4dc\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc0ac\uc6a9\uc790\uac00 \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638\ub85c \ub85c\uadf8\uc778\ud560 \ub54c \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638\uc758 \ubcf5\ud569 \ud0a4\ub97c \uc0dd\uc131\ud558\ub294 \ubcf4\uae30\ub97c \ub9cc\ub4dc\ub294 \uac83\ub3c4 \ud55c \uac00\uc9c0 \uc635\uc158\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uadf8\ub7ec\ub098 \ub354 \ub098\uc740 \ub300\uc548\uc740 \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc11c\uc758 \ud0a4\ub97c \uc791\uc131\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.  \uc774\ub7ec\ud55c \ud0a4\ub97c \uc0ac\uc6a9\ud558\uba74 \uc0ac\uc6a9\uc790\uac00 \ub85c\uadf8\uc778\ud560 \ub54c \uc0ac\uc6a9\uc790 \ubb38\uc11c\ub97c \uc27d\uac8c \uac80\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uc774 \uc811\uadfc \ubc29\uc2dd\uc740 \ubcf4\uc870 \ubcf4\uae30 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4e4 \ud544\uc694\uac00 \uc5c6\uc5b4 \uacf5\uac04\uc744 \uc808\uc57d\ud558\uace0 \ud574\uc2dc \ud14c\uc774\ube14 \uc870\ud68c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud0a4\ub97c \ub354 \ube60\ub974\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc7ac\uc815\uc758\ub41c Create \uba54\uc11c\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uc774\ub984(Id)\uacfc \ube44\ubc00\ubc88\ud638(\ud574\uc2dc\ub428)\ub294 user_Username_HashedPassword \ud615\uc2dd\uc758 \ud0a4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">public<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uc624\ubc84\ub77c\uc774\ub4dc<\/span> <span style=\"color: #6666cc;font-weight: bold\">ulong<\/span> \ub9cc\ub4e4\uae30<span style=\"color: #008000\">(<\/span>\uc0ac\uc6a9\uc790 \ubaa8\ub378<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n\ubaa8\ub378<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ube44\ubc00\ubc88\ud638<\/span> <span style=\"color: #008000\">=<\/span> \ud574\uc2dc\ud5ec\ud37c<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">ToHashedString<\/span><span style=\"color: #008000\">(<\/span>\ubaa8\ub378<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ube44\ubc00\ubc88\ud638<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n\ubaa8\ub378<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Id<\/span> <span style=\"color: #008000\">=<\/span> \ube4c\ub4dc \ud0a4<span style=\"color: #008000\">(<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\nvar \uacb0\uacfc <span style=\"color: #008000\">=<\/span> \ud074\ub77c\uc774\uc5b8\ud2b8<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">CasJson<\/span><span style=\"color: #008000\">(<\/span>\uc2a4\ud1a0\uc5b4\ubaa8\ub4dc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ucd94\uac00<\/span>, \ube4c\ub4dc\ud0a4<span style=\"color: #008000\">(<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span>\ubaa8\ub378<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> \uacb0\uacfc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uacb0\uacfc<\/span> <span style=\"color: #008000\">?<\/span> \uacb0\uacfc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Cas<\/span> <span style=\"color: #008000\">:<\/span> <span style=\"color: #ff0000\">0<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc0c8 \ud0a4 \ud615\uc2dd\uc744 \ud5c8\uc6a9\ud558\uae30 \uc704\ud574 BuildKey\ub3c4 \uc7ac\uc815\uc758\ub429\ub2c8\ub2e4.   \ube4c\ub4dc\ud0a4 \ube44\uacf5\uac1c \uba54\uc11c\ub4dc\ub294 \uace7 \ubcf4\uac8c \ub420 \uc624\ubc84\ub85c\ub4dc\ub41c Get \uba54\uc11c\ub4dc\uc5d0 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\n<p><span style=\"color: #0600ff;font-weight: bold\">\ubcf4\ud638\ub428<\/span> <span style=\"color: #0600ff;font-weight: bold\">\uc624\ubc84\ub77c\uc774\ub4dc<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ube4c\ub4dc \ud0a4<span style=\"color: #008000\">(<\/span>\uc0ac\uc6a9\uc790 \uc0ac\uc6a9\uc790<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> \ube4c\ub4dc\ud0a4<span style=\"color: #008000\">(<\/span>\uc0ac\uc6a9\uc790<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc0ac\uc6a9\uc790 \uc774\ub984<\/span>, \uc0ac\uc6a9\uc790<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ube44\ubc00\ubc88\ud638<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">\ube44\uacf5\uac1c<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ube4c\ub4dc\ud0a4<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc0ac\uc6a9\uc790\uba85, <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ube44\ubc00\ubc88\ud638<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Concat<\/span><span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"user_\"<\/span>, \uc0ac\uc6a9\uc790 \uc544\uc774\ub514, <span style=\"color: #666666\">&#8220;_&#8221;<\/span>\ube44\ubc00\ubc88\ud638<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<\/div>\n<\/div>\n<p>RepositoryBase\uc5d0 \uc815\uc758\ub41c Get \uba54\uc11c\ub4dc\ub294 \ud0a4\ub85c \uc870\ud68c\ud55c\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.  \ud2b9\uc218\ud55c \uc0ac\uc6a9\uc790 \ud0a4 \ud615\uc2dd\uc744 \ud638\ucd9c\ud558\ub294 UserController \ud074\ub798\uc2a4\uc5d0 \ub178\ucd9c\ud558\ub294 \ub300\uc2e0 \uc0c8 \ud0a4\uac00 \uad6c\uc131\ub418\ub294 \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638\ub97c \ubc1b\ub3c4\ub85d Get\uc774 \uc624\ubc84\ub85c\ub4dc\ub429\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\"><span style=\"color: #0600ff;font-weight: bold\">public<\/span> \uc0ac\uc6a9\uc790 \uac00\uc838\uc624\uae30<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc0ac\uc6a9\uc790\uba85, <span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \ube44\ubc00\ubc88\ud638<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> Get<span style=\"color: #008000\">(<\/span>\ube4c\ub4dc\ud0a4<span style=\"color: #008000\">(<\/span>\uc0ac\uc6a9\uc790\uba85, \ud574\uc2dc\ud5ec\ud37c<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">ToHashedString<\/span><span style=\"color: #008000\">(<\/span>\ube44\ubc00\ubc88\ud638<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/div>\n<\/div>\n<p>\uc0ac\uc6a9\uc790 \uc800\uc7a5\uc18c \ud074\ub798\uc2a4\ub294 \uc0ac\uc6a9\uc790 \uc774\ub984\uc774\ub098 \uc774\uba54\uc77c\uc774 \uace0\uc720\ud55c\uc9c0 \uc5ec\ubd80\uc5d0 \ub300\ud55c \uc9c8\ubb38\uc5d0 \ub2f5\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc8fc\ub294 \uc5ed\ud560\ub3c4 \ub2f4\ub2f9\ud569\ub2c8\ub2e4.  \uc774\ub97c \uc704\ud574 \ub450 \uac00\uc9c0 \ubdf0\uac00 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.  \uccab \ubc88\uc9f8\ub294 \ub2e8\uc21c\ud788 \ubaa8\ub4e0 \uc0ac\uc6a9\uc790 \ubb38\uc11c\uc758 \ud0a4\ub85c \uc774\uba54\uc77c\uc744 \ub0b4\ubcf4\ub0b4\uace0, \ub450 \ubc88\uc9f8\ub294 \uc0ac\uc6a9\uc790 \uc774\ub984\uc744 \ud0a4\ub85c \ub0b4\ubcf4\ub0c5\ub2c8\ub2e4.  \uc774\ub7ec\ud55c \uc778\ub371\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ub354 \uc601\ub9ac\ud55c \ubc29\ubc95\ub3c4 \uc788\uc9c0\ub9cc, \uac04\ub2e8\ud558\uac8c \ud558\uae30 \uc704\ud574 \uac80\uc0ac\ud560 \uc18d\uc131\uacfc \ud574\ub2f9 \ubcf4\uae30 \uc0ac\uc774\uc5d0 \uc77c\ub300\uc77c \ub9e4\ud551\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\n<p>\ud568\uc218 <span style=\"color: #008000\">(<\/span>doc<span style=\"color: #008000\">)<\/span> <span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ub9cc\uc57d<\/span> <span style=\"color: #008000\">(<\/span>doc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc720\ud615<\/span> <span style=\"color: #008000\">==<\/span> <span style=\"color: #666666\">\"user\"<\/span><span style=\"color: #008000\">)<\/span> <span style=\"color: #008000\">{<\/span><br \/>\nemit<span style=\"color: #008000\">(<\/span>doc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc774\uba54\uc77c<\/span>, <span style=\"color: #0600ff;font-weight: bold\">null<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<p>\ud568\uc218 <span style=\"color: #008000\">(<\/span>doc<span style=\"color: #008000\">)<\/span> <span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ub9cc\uc57d<\/span> <span style=\"color: #008000\">(<\/span>doc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc720\ud615<\/span> <span style=\"color: #008000\">==<\/span> <span style=\"color: #666666\">\"user\"<\/span><span style=\"color: #008000\">)<\/span> <span style=\"color: #008000\">{<\/span><br \/>\nemit<span style=\"color: #008000\">(<\/span>doc<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">usrename<\/span>, <span style=\"color: #0600ff;font-weight: bold\">null<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<\/div>\n<\/div>\n<p>\uc0ac\uc6a9\uc790 \uc800\uc7a5\uc18c\uc5d0\ub294 \uae30\ubcf8 \ubdf0 \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac01\uac01\uc758 \ubdf0\ub97c \ucffc\ub9ac\ud558\ub294 GetByEmail \ubc0f GetByUsername \uba54\uc11c\ub4dc\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.  \ub450 \uba54\uc11c\ub4dc \ubaa8\ub450\uc5d0\uc11c \uc81c\ud55c\uc740 1\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\uba70, \uc774 \uc18d\uc131 \uac12\uc744 \uac00\uc9c4 \ub2e8\uc77c \ud56d\ubaa9\uc774 \uc874\uc7ac\ud558\ub294\uc9c0 \uc5ec\ubd80\ub9cc \ud655\uc778\ud558\ubbc0\ub85c \uccab \ubc88\uc9f8 \ubc18\ubcf5\uc5d0\uc11c\ub294 \ubc18\ud658\uc774 \uc5b4\ub835\uc2b5\ub2c8\ub2e4.  \ub370\uc774\ud130\uc758 \uace0\uc720\uc131\uc744 \ubcf4\uc7a5\ud558\uace0 \uac00\ub2a5\ud55c \ud55c \ucd5c\uc2e0\uc758 \ubdf0 \uc778\ub371\uc2a4\ub97c \uc720\uc9c0\ud574\uc57c \ud558\ubbc0\ub85c \uc624\ub798\ub41c \ubdf0\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace\">\n<p><span style=\"color: #0600ff;font-weight: bold\">public<\/span> \uc0ac\uc6a9\uc790 GetByEmail<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc774\uba54\uc77c<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">foreach<\/span> <span style=\"color: #008000\">(<\/span>var item <span style=\"color: #0600ff;font-weight: bold\">in<\/span> \ubcf4\uae30<span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"by_email\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc81c\ud55c<\/span><span style=\"color: #008000\">(<\/span><span style=\"color: #ff0000\">1<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ud0a4<\/span><span style=\"color: #008000\">(<\/span>\uc774\uba54\uc77c<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Stale<\/span><span style=\"color: #008000\">(<\/span>StaleMode<span style=\"color: #008000\">.<\/span><span style=\"color: #0600ff;font-weight: bold\">False<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> Get<span style=\"color: #008000\">(<\/span>\ud56d\ubaa9<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">ItemId<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> <span style=\"color: #0600ff;font-weight: bold\">null<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<p><span style=\"color: #0600ff;font-weight: bold\">public<\/span> \uc0ac\uc6a9\uc790 \uc774\ub984 \uac00\uc838\uc624\uae30<span style=\"color: #008000\">(<\/span><span style=\"color: #6666cc;font-weight: bold\">\ubb38\uc790\uc5f4<\/span> \uc0ac\uc6a9\uc790 \uc774\ub984<span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">foreach<\/span> <span style=\"color: #008000\">(<\/span>var item <span style=\"color: #0600ff;font-weight: bold\">in<\/span> \ubcf4\uae30<span style=\"color: #008000\">(<\/span><span style=\"color: #666666\">\"by_username\"<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\uc81c\ud55c<\/span><span style=\"color: #008000\">(<\/span><span style=\"color: #ff0000\">1<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">\ud0a4<\/span><span style=\"color: #008000\">(<\/span>\uc0ac\uc6a9\uc790 \uc774\ub984<span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">Stale<\/span><span style=\"color: #008000\">(<\/span>StaleMode<span style=\"color: #008000\">.<\/span><span style=\"color: #0600ff;font-weight: bold\">False<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">)<\/span><br \/>\n<span style=\"color: #008000\">{<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> Get<span style=\"color: #008000\">(<\/span>\ud56d\ubaa9<span style=\"color: #008000\">.<\/span><span style=\"color: #0000ff\">ItemId<\/span><span style=\"color: #008000\">)<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><br \/>\n<span style=\"color: #0600ff;font-weight: bold\">\ubc18\ud658<\/span> <span style=\"color: #0600ff;font-weight: bold\">null<\/span><span style=\"color: #008000\">;<\/span><br \/>\n<span style=\"color: #008000\">}<\/span><\/p>\n<\/div>\n<\/div>\n<p>\uc774 \ubaa8\ub4e0 \uac83\uc774 \uc5b4\ub5bb\uac8c \uacb0\ud569\ub418\ub294\uc9c0 \ubcf4\uc5ec\ub4dc\ub9ac\uae30 \uc704\ud574 \ub098\uc911\uc5d0 UserController\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.  \uc774 \ud3ec\uc2a4\ud305\uc758 \ubaa9\ud45c\ub294 RepositoryBase\uc640 \uc774\ub97c \ud655\uc7a5\ud558\ub294 \ubc29\ubc95\uc744 \uc18c\uac1c\ud558\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been meaning to put together a reference application for using .NET and Couchbase Server.\u00a0 While traveling to London for the Progressive NoSQL conference at Skills Matter, I passed the hours waiting for my hotel room to be ready by [&hellip;]<\/p>","protected":false},"author":22,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[8980],"class_list":["post-1804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Repository of T for Couchbase using the .NET Client Library<\/title>\n<meta name=\"description\" content=\"This post introduces to the RepositoryBase and how it\u2019s extended and how to create a simple Repository of T for Couchbase using the .NET Client Library.\" \/>\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\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TapMap Part I: Working with a Repository of T with Couchbase Server 2.0 and the .NET Client Library\" \/>\n<meta property=\"og:description\" content=\"This post introduces to the RepositoryBase and how it\u2019s extended and how to create a simple Repository of T for Couchbase using the .NET Client Library.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T18:04:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-28T08:20:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/tapmap_0.PNG\" \/>\n<meta name=\"author\" content=\"John Zablocki, NET. SDK Developer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Zablocki, NET. SDK Developer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\"},\"author\":{\"name\":\"John Zablocki, NET. SDK Developer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ee312fb775c13d20a32f1d455888a282\"},\"headline\":\"TapMap Part I: Working with a Repository of T with Couchbase Server 2.0 and the .NET Client Library\",\"datePublished\":\"2014-12-16T18:04:10+00:00\",\"dateModified\":\"2023-06-28T08:20:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\"},\"wordCount\":1952,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\",\"name\":\"Repository of T for Couchbase using the .NET Client Library\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T18:04:10+00:00\",\"dateModified\":\"2023-06-28T08:20:48+00:00\",\"description\":\"This post introduces to the RepositoryBase and how it\u2019s extended and how to create a simple Repository of T for Couchbase using the .NET Client Library.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#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\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TapMap Part I: Working with a Repository of T with Couchbase Server 2.0 and the .NET Client Library\"}]},{\"@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\/ee312fb775c13d20a32f1d455888a282\",\"name\":\"John Zablocki, NET. SDK Developer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/201925d9efc4992ce80385b76fdea34b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g\",\"caption\":\"John Zablocki, NET. SDK Developer, Couchbase\"},\"description\":\"John Zablocki is a NET. SDK Developer at Couchbase. John is also the organizer of Beantown ALT.NET and a former adjunct at Fairfield University. You can also check out the book on Amazon named \\\"Couchbase Essentials\\\" which explains how to install and configure Couchbase Server.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/john-zablocki\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Repository of T for Couchbase using the .NET Client Library","description":"This post introduces to the RepositoryBase and how it\u2019s extended and how to create a simple Repository of T for Couchbase using the .NET Client Library.","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\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/","og_locale":"ko_KR","og_type":"article","og_title":"TapMap Part I: Working with a Repository of T with Couchbase Server 2.0 and the .NET Client Library","og_description":"This post introduces to the RepositoryBase and how it\u2019s extended and how to create a simple Repository of T for Couchbase using the .NET Client Library.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T18:04:10+00:00","article_modified_time":"2023-06-28T08:20:48+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/tapmap_0.PNG","type":"","width":"","height":""}],"author":"John Zablocki, NET. SDK Developer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Zablocki, NET. SDK Developer, Couchbase","Est. reading time":"9\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/"},"author":{"name":"John Zablocki, NET. SDK Developer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ee312fb775c13d20a32f1d455888a282"},"headline":"TapMap Part I: Working with a Repository of T with Couchbase Server 2.0 and the .NET Client Library","datePublished":"2014-12-16T18:04:10+00:00","dateModified":"2023-06-28T08:20:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/"},"wordCount":1952,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/","url":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/","name":"Repository of T for Couchbase using the .NET Client Library","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T18:04:10+00:00","dateModified":"2023-06-28T08:20:48+00:00","description":"This post introduces to the RepositoryBase and how it\u2019s extended and how to create a simple Repository of T for Couchbase using the .NET Client Library.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#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\/tapmap-part-i-working-repository-t-couchbase-server-20-and-net-client-library\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"TapMap Part I: Working with a Repository of T with Couchbase Server 2.0 and the .NET Client Library"}]},{"@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\/ee312fb775c13d20a32f1d455888a282","name":"\uc874 \uc790\ube14\ub85c\ud0a4, NET. SDK \uac1c\ubc1c\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/201925d9efc4992ce80385b76fdea34b","url":"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g","caption":"John Zablocki, NET. SDK Developer, Couchbase"},"description":"John Zablocki is a NET. SDK Developer at Couchbase. John is also the organizer of Beantown ALT.NET and a former adjunct at Fairfield University. You can also check out the book on Amazon named \"Couchbase Essentials\" which explains how to install and configure Couchbase Server.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/john-zablocki\/"}]}},"authors":[{"term_id":8980,"user_id":22,"is_guest":0,"slug":"john-zablocki","display_name":"John Zablocki, NET. SDK Developer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g","author_category":"","last_name":"Zablocki","first_name":"John","job_title":"","user_url":"","description":"\uc874 \uc790\ube14\ub85c\ud0a4\ub294 NET. SDK \uac1c\ubc1c\uc790\uc785\ub2c8\ub2e4. John\uc740 Beantown ALT.NET\uc758 \uc8fc\ucd5c\uc790\uc774\uc790 Fairfield University\uc758 \uc804 \uacb8\uc784\uad50\uc218\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.\r\nAmazon\uc5d0\uc11c Couchbase Server\ub97c \uc124\uce58\ud558\uace0 \uad6c\uc131\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud558\ub294 \"Couchbase Essentials\"\ub77c\ub294 \ucc45\uc744 \ud655\uc778\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1804","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\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=1804"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1804\/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=1804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=1804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=1804"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=1804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}