{"id":1833,"date":"2014-12-16T17:38:22","date_gmt":"2014-12-16T17:38:21","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1833"},"modified":"2014-12-16T17:38:22","modified_gmt":"2014-12-16T17:38:21","slug":"why-couchbase-chose-rxjava-new-java-sdk","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/why-couchbase-chose-rxjava-new-java-sdk\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uac00 \uc0c8\ub85c\uc6b4 Java SDK\ub85c RxJava\ub97c \uc120\ud0dd\ud55c \uc774\uc720"},"content":{"rendered":"<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \uc0c8\ub85c\uc6b4 Java SDK\uc758 \ud544\uc218 \uad6c\uc131 \uc694\uc18c \uc911 \ud558\ub098\ub85c RxJava\ub97c \uc120\ud0dd\ud55c \uc774\uc720\uc640 \ub3d9\uae30\ub97c \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ub3d9\uae30 \ubd80\uc5ec<\/h2>\n<p>API\ub97c \uc124\uacc4\ud558\ub294 \ubc29\ubc95\uc5d0\ub294 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc73c\uba70 \uac01 \ubc29\ubc95\ub9c8\ub2e4 \uace0\uc720\ud55c \uc7a5\uc810\uacfc \ub2e8\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 API\ub97c \uc124\uacc4\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \uc8fc\uc694 \uc9c8\ubb38 \uc911 \ud558\ub098\ub294 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc5b4\ub5bb\uac8c \ub178\ucd9c\ud560 \uac83\uc778\uac00 \ud558\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4.\u00a0<\/p>\n<p>\uc6b0\ub9ac\uac00 \uc2a4\uc2a4\ub85c\uc5d0\uac8c \ubb3c\uc5b4\ubcfc \ud544\uc694\uac00 \uc5c6\uc5c8\ub358 \ud55c \uac00\uc9c0 \uc9c8\ubb38\uc740 \ub3d9\uae30\uc2dd\uc778\uac00 \ube44\ub3d9\uae30\uc2dd\uc778\uac00 \ud558\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4. \uc800\ud76c\ub294 \ube44\ub3d9\uae30 API\uac00 \uc5ec\ub7ec\ubd84\uc774 \uc790\uc8fc \ud544\uc694\ub85c \ud558\ub294 \uc131\ub2a5\uacfc \ud655\uc7a5\uc131\uc744 \uc5bb\uc744 \uc218 \uc788\ub294 \uc720\uc77c\ud55c \ud569\ub9ac\uc801\uc778 \ubc29\ubc95\uc774\uba70, \ube44\ub3d9\uae30\uc5d0\uc11c \ub3d9\uae30\uc2dd\uc73c\ub85c \uc804\ud658\ud558\ub294 \uac83\uc774 \uadf8 \ubc18\ub300\ubcf4\ub2e4 \ud6e8\uc52c \uc27d\ub2e4\uace0 \uad73\uac8c \ubbff\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud604\uc7ac \uc548\uc815\uc801\uc778 SDK(\uc791\uc131 \uc2dc\uc810 \uae30\uc900 1.4.3)\ub294 \uc774\ubbf8 \ube44\ub3d9\uae30 \uc751\ub2f5\uc744 \uc81c\uacf5\ud558\uae30 \uc704\ud574 \ub2e4\uc591\ud55c \ubc29\uc2dd\uc73c\ub85c \ud4e8\ucc98\ub97c \ub9ce\uc774 \ud65c\uc6a9\ud558\uace0 \uc788\uc73c\uba70, \uc774\ub294 spymemcached\uac00 \ucc98\uc74c \uc774 \uac1c\ub150\uc744 API\uc5d0 \ub3c4\uc785\ud55c 2006\/7\ub144\uc73c\ub85c \uac70\uc2ac\ub7ec \uc62c\ub77c\uac11\ub2c8\ub2e4.<\/p>\n<p>Java Future \uc778\ud130\ud398\uc774\uc2a4\ub294 \ub2e4\ub978 \uc194\ub8e8\uc158(\uc608: Scala \ud4e8\ucc98)\uc5d0 \ube44\ud574 \ub9e4\uc6b0 \uc81c\ud55c\uc801\uc774\ub77c\ub294 \uac83\uc740 \uc798 \uc54c\ub824\uc838 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ud558\ub098\uc758 \uacc4\uc0b0\uc774 \ub2e4\ub978 \uacc4\uc0b0\uc5d0 \uc758\uc874\ud558\ub294 \ube44\ub3d9\uae30 \ub370\uc774\ud130 \ud750\ub984\uc744 \uad6c\ucd95\ud574\uc57c \ud558\uace0 \ubaa8\ub4e0 \uac83\uc744 \ube44\ub3d9\uae30\ud654\ud558\ub824\ub294 \uacbd\uc6b0 \ucf54\ub529\ud558\uae30\uac00 \uc57d\uac04 \uae4c\ub2e4\ub86d\uc2b5\ub2c8\ub2e4. \ucd5c\uadfc \ubc84\uc804\uc5d0\uc11c\ub294 \ub9ac\uc2a4\ub108\uc5d0 \ub300\ud55c \uc9c0\uc6d0\uc774 \ucd94\uac00\ub418\uc5b4 \uc0c1\ud669\uc774 \uc0c1\ub2f9\ud788 \uac1c\uc120\ub418\uc5c8\uc9c0\ub9cc \uc5ec\uc804\ud788 \uc774\uc0c1\uc801\uc778 \uc194\ub8e8\uc158\uc740 \uc544\ub2d9\ub2c8\ub2e4.<\/p>\n<p>\uc9c0\ub09c \uba87 \ub144 \ub3d9\uc548 \ub2e4\ub978 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ud328\ud134\uc774 \ub4f1\uc7a5\ud588\uace0, \uc800\ud76c\ub294 \uc774\ub97c \uba74\ubc00\ud788 \ub530\ub790\uc2b5\ub2c8\ub2e4. \uc131\uc219\ud55c \uac1c\ub150 \uc911 \ud558\ub098\ub294 Microsoft\uc640 .NET\uc5d0\uc11c \uc2dc\uc791\ub41c \ubc18\uc751\ud615 \ud655\uc7a5\uc73c\ub85c \uc54c\ub824\uc838 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uac1c\ub150\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc774\ubca4\ud2b8 \uc9c0\ud5a5\uc801\uc774\uc5b4\uc57c \ud558\uace0 \ube44\ub3d9\uae30 \ubc29\uc2dd\uc73c\ub85c \uc774\ubca4\ud2b8\uc5d0 \ubc18\uc751\ud574\uc57c \ud55c\ub2e4\ub294 \uc544\uc774\ub514\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud569\ub2c8\ub2e4. \ub370\uc774\ud130\ub85c \uc218\ud589\ud560 \uc218 \uc788\ub294 \uc791\uc5c5(\ub370\uc774\ud130 \uc218\uc815, \uacb0\ud569, \ud544\ud130\ub9c1 \ub4f1)\uc5d0 \ub300\ud55c \ub9e4\uc6b0 \ud48d\ubd80\ud55c \uc5f0\uc0b0\uc790 \uc9d1\ud569\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \ucd5c\uadfc \ub137\ud50c\ub9ad\uc2a4\ub294 \uc774\ub97c Java\ub85c \ud3ec\ud305\ud558\uace0 RxJava\ub77c\ub294 \ubcc4\uba85\uc744 \ubd99\uc600\uc2b5\ub2c8\ub2e4(\ud604\uc7ac \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 \ub137\ud50c\ub9ad\uc2a4 \ub124\uc784\uc2a4\ud398\uc774\uc2a4 \uc544\ub798\uc5d0 \uc788\uc9c0\ub9cc \uc870\ub9cc\uac04 \"io.reactivex\"\ub85c \uc774\uc804\ub420 \uc608\uc815\uc785\ub2c8\ub2e4). \uc774 \ud504\ub85c\uc81d\ud2b8\ub294 \ub9e4\uc6b0 \uc548\uc815\uc801\uc774\uba70 Scala, Groovy, JRuby\uc640 \uac19\uc740 \ub2e4\ub978 JVM \uc5b8\uc5b4\uc5d0 \ub300\ud55c \uc5b4\ub311\ud130\ub3c4 \uc81c\uacf5\ud558\uc5ec \uc9c0\uc6d0\uc744 \ud655\ub300\ud558\ub824\ub294 \uacc4\ud68d\uacfc\ub3c4 \uc798 \ub9de\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ucee8\uc149<\/h2>\n<p>Rx\uc758 \uc8fc\uc694 \uc544\uc774\ub514\uc5b4\ub294 \uc635\uc800\ubc84\ube14\uacfc \uadf8 \uc635\uc800\ubc84\ub97c \uc911\uc2ec\uc73c\ub85c \uc804\uac1c\ub429\ub2c8\ub2e4. \uc774 \uac1c\ub150\uc744 \ucc98\uc74c \uc811\ud558\ub294 \ubd84\ub4e4\uc744 \uc704\ud574 \uc124\uba85\ud558\uc790\uba74, \uc635\uc800\ubc84\ube14\uc740 \uc774\ud130\ub7ec\ube14\uc758 \ube44\ub3d9\uae30 \ubc0f \ud478\uc2dc \uae30\ubc18 \uc0ac\ucd0c(\ub610\ub294 \ub354 \uc815\uc2dd\uc73c\ub85c \uc774\uc911\uc774\ub77c\uace0\ub3c4 \ud568)\uc774\ub77c\uace0 \uc0dd\uac01\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4. \uc880 \ub354 \uad6c\uccb4\uc801\uc73c\ub85c \uc774\ub4e4\uc758 \uad00\uacc4\ub97c \uc124\uba85\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:500px\">\n<thead>\n<tr>\n<th scope=\"col\">\uc774\ubca4\ud2b8<\/th>\n<th scope=\"col\">\ubc18\ubcf5 \uac00\ub2a5(\ud480)<\/th>\n<th scope=\"col\">\uad00\ucc30 \uac00\ub2a5(\ud478\uc2dc)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\ub370\uc774\ud130 \uac80\uc0c9<\/td>\n<td>T next()<\/td>\n<td>onNext(T)<\/td>\n<\/tr>\n<tr>\n<td>\uc624\ub958 \ubc1c\uacac<\/td>\n<td>\uc608\uc678\ub97c \ub358\uc9d1\ub2c8\ub2e4.<\/td>\n<td>onError(\uc608\uc678)<\/td>\n<\/tr>\n<tr>\n<td>\uc644\ub8cc<\/td>\n<td>\ubc18\ud658<\/td>\n<td>onCompleted()<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc635\uc800\ubc84\ube14\uc5d0 \ub370\uc774\ud130\uac00 \ud478\uc2dc\ub420 \ub54c\ub9c8\ub2e4, \uad6c\ub3c5\ub41c \ubaa8\ub4e0 \uc635\uc800\ube0c\ub294 onNext() \uba54\uc11c\ub4dc\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ubc1b\uc2b5\ub2c8\ub2e4. \uc635\uc800\ubc84\ube14\uc774 \ucd5c\uc885\uc801\uc73c\ub85c \uc644\ub8cc\ub418\uba74(\ud56d\uc0c1 \uadf8\ub7f4 \ud544\uc694\ub294 \uc5c6\uc9c0\ub9cc) onCompleted \uba54\uc11c\ub4dc\uac00 \ud638\ucd9c\ub429\ub2c8\ub2e4. \uc774\uc81c \ud504\ub85c\uc138\uc2a4\uc758 \uc5b4\ub290 \uc9c0\uc810\uc5d0\uc11c\ub4e0 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uba74 onError \uba54\uc11c\ub4dc\uac00 \ud638\ucd9c\ub418\uace0 Observable\ub3c4 \uc644\ub8cc\ub41c \uac83\uc73c\ub85c \uac04\uc8fc\ub429\ub2c8\ub2e4.<\/p>\n<p>\ubb38\ubc95\uc744 \uc88b\uc544\ud55c\ub2e4\uba74 \uacc4\uc57d\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:\u00a0<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\uc628\ub125\uc2a4\ud2b8*(\uc628\uc644\ub8cc | \uc628\uc5d0\ub7ec)?<\/div>\n<\/div>\n<p>\ud2b9\ud788 1 \ub610\ub294 N\uac1c\uc758 \ub370\uc774\ud130\ub9cc \ubc18\ud658\ub418\ub294\uc9c0 \uc5ec\ubd80\ub294 \uad6c\ubd84\ub418\uc9c0 \uc54a\uc73c\uba70, \uc774\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ud638\ucd9c\ud558\ub294 \uba54\uc11c\ub4dc\uc640 \ubb38\uc11c\ud654 \ubc29\uc2dd\uc5d0\uc11c \uc720\ucd94\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5b4\uca0c\ub4e0 \ud504\ub85c\uadf8\ub798\ubc0d \ud750\ub984\uc740 \ubc14\ub00c\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub2e4\uc18c \ucd94\uc0c1\uc801\uc774\ubbc0\ub85c \uad6c\uccb4\uc801\uc778 \uc608\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. CouchbaseCluster \ud074\ub798\uc2a4\uc5d0\ub294 \ud544\uc694\ud55c \ubaa8\ub4e0 \ub9ac\uc18c\uc2a4\ub97c \ucd08\uae30\ud654\ud55c \ub2e4\uc74c \uc791\uc5c5\ud560 \uc218 \uc788\ub294 Bucket \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud558\ub294 openBucket\uc774\ub77c\ub294 \uba54\uc11c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc18c\ucf13\uc744 \uc5f4\uace0, \uad6c\uc131\uc744 \uac00\uc838\uc624\ub294 \ub4f1\uc758 \uc791\uc5c5\uc5d0 \uc2dc\uac04\uc774 \uac78\ub9ac\ub294 \uac83\uc744 \uc0c1\uc0c1\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uc774 \uba54\uc11c\ub4dc\ub294 \uc644\ubcbd\ud55c \ud6c4\ubcf4\uc785\ub2c8\ub2e4. \ucc28\ub2e8 API\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\uc778\ud130\ud398\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130 {<br \/>\u00a0 \u00a0 \u00a0 \u00a0 \ubc84\ud0b7 \uc5f4\uae30 \ubc84\ud0b7(\ubb38\uc790\uc5f4 \uc774\ub984, \ubb38\uc790\uc5f4 \uc554\ud638);<br \/>}<\/div>\n<\/div>\n<p>\uc5b4\ub5bb\uac8c \ube44\ub3d9\uae30\ub85c \ub9cc\ub4e4 \uc218 \uc788\uc744\uae4c\uc694? \uc635\uc800\ubc84\ube14\ub85c \ub798\ud551\ud574\uc57c \ud569\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\uc778\ud130\ud398\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130 {<br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<bucket> openBucket(\ubb38\uc790\uc5f4 \uc774\ub984, \ubb38\uc790\uc5f4 \ube44\ubc00\ubc88\ud638);<br \/>}<\/div>\n<\/div>\n<p>\uc774\uc81c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubc84\ud0b7 \uc778\uc2a4\ud134\uc2a4\uc640 \ud568\uaed8 \ubc18\ud658\ub418\ub294 \uc635\uc800\ubc84\ube14\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4. \uc635\uc800\ubc84\ub97c \ucd94\uac00\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"java geshifilter-java\" style=\"font-family:monospace;\">\ud074\ub7ec\uc2a4\ud130.<span style=\"color: #006633;\">\uc624\ud508\ubc84\ud0b7<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span>.<span style=\"color: #006633;\">\uad6c\ub3c5<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> \uc635\uc800\ubc84<span style=\"color: #339933;\"><<\/span>\ubc84\ud0b7<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <span style=\"color: #000066; font-weight: bold;\">void<\/span> on\uc644\ub8cc<span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Asystem+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\uc2dc\uc2a4\ud15c<\/span><\/a>.<span style=\"color: #006633;\">out<\/span>.<span style=\"color: #006633;\">println<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\uad00\ucc30 \uac00\ub2a5 \uc644\ub8cc!\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><\/p>\n<p>\u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <span style=\"color: #000066; font-weight: bold;\">void<\/span> onError<span style=\"color: #009900;\">(<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Athrowable+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ub358\uc9c0\uae30 \uac00\ub2a5<\/span><\/a> e<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Asystem+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\uc2dc\uc2a4\ud15c<\/span><\/a>.<span style=\"color: #006633;\">err<\/span>.<span style=\"color: #006633;\">println<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\ubb34\uc2a8 \uc77c\uc774 \uc0dd\uacbc\uc5b4\uc694\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 e.<span style=\"color: #006633;\">\ud504\ub9b0\ud2b8\uc2a4\ud0dd\ud2b8\ub808\uc774\uc2a4<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><\/p>\n<p>\u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <span style=\"color: #000066; font-weight: bold;\">void<\/span> onNext<span style=\"color: #009900;\">(<\/span>\ubc84\ud0b7 \ubc84\ud0b7<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Asystem+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\uc2dc\uc2a4\ud15c<\/span><\/a>.<span style=\"color: #006633;\">out<\/span>.<span style=\"color: #006633;\">println<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\ubc84\ud0b7\uc744 \ubc1b\uc558\uc2b5\ub2c8\ub2e4: \"<\/span> <span style=\"color: #339933;\">+<\/span> \ubc84\ud0b7<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/><span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/div>\n<\/div>\n<p>\uc774 \uba54\uc11c\ub4dc\ub294 \ub2e4\ub978 \uc2a4\ub808\ub4dc\uc5d0\uc11c \ud638\ucd9c\ub418\ubbc0\ub85c \ucf54\ub4dc\ub97c \uc774\ub807\uac8c \ub0a8\uaca8\ub450\uace0 \uba54\uc778 \uc2a4\ub808\ub4dc\ub97c \uc885\ub8cc\ud558\uba74 \uc544\ubb34 \uac83\ub3c4 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc81c \ub098\uba38\uc9c0 \ucf54\ub4dc\ub97c \ubaa8\ub450 onNext \uba54\uc11c\ub4dc\uc5d0 \uc791\uc131\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uc774\uac83\uc774 \ucd5c\uc120\uc758 \ubc29\ubc95\uc740 \uc544\ub2d0 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubc84\ud0b7\uc740\u00a0<br \/>\ub97c \ubbf8\ub9ac \uc5f4\uace0 \uc2f6\uc744 \uacbd\uc6b0, \uc774\ub97c \ucc28\ub2e8\ud55c \ub2e4\uc74c \ub098\uba38\uc9c0 \ucf54\ub4dc\ub97c \uc9c4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 \uc635\uc800\ubc84\ube14\uc740 \uc774\ud130\ub7ec\ube14\ucc98\ub7fc \ub290\uaef4\uc9c0\ub294 \ube14\ub85c\ud0b9 \uc635\uc800\ubc84\ube14\ub85c \ubcc0\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\ucc28\ub2e8 \uad00\ucc30 \uac00\ub2a5<bucket> \ube14\ub85c\ud0b9\uc635\uc800\ubc84\ube14 = cluster.openBucket().toBlocking();<\/div>\n<\/div>\n<p>\ucc28\ub2e8 \ubc29\uc2dd\uc73c\ub85c \uc218\uc2e0\ub41c \uadf8\ud0c0\ub97c \ubc18\ubcf5\ud558\ub294 \ubc29\ubc95\uc740 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc9c0\ub9cc, \ub2e8 \ud558\ub098\uc758 \uac12\ub9cc \uae30\ub300\ud558\ub294 \uacbd\uc6b0(\uc800\ud76c\uc758 \uacbd\uc6b0\ucc98\ub7fc) \uc18d\uae30 \ubc29\ubc95\ub3c4 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\ubc84\ud0b7 bucket = cluster.openBucket().toBlocking().single();<\/div>\n<\/div>\n<p>\uc5ec\uae30\uc11c \ub0b4\ubd80\uc801\uc73c\ub85c \uc77c\uc5b4\ub098\ub294 \uc77c\uc740 onNext\uc5d0\uc11c \ud638\ucd9c\ub41c \uac12\uc744 \uc800\uc7a5\ud588\ub2e4\uac00 onComplete\uac00 \ud638\ucd9c\ub418\uba74 \ubc18\ud658\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. onError\uac00 \ud638\ucd9c\ub418\uba74 throwable\uc774 \uc9c1\uc811 \ub358\uc838\uc9c0\uace0 \uc774\ub97c \uc7a1\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>API \ud1b5\ud569<\/h2>\n<p>\uc9c0\uae08\uae4c\uc9c0 \ubcf4\uc2e0 \uac83\uc740 \uc774\uc81c \uaca8\uc6b0 \ud45c\uba74\uc5d0 \ubd88\uacfc\ud569\ub2c8\ub2e4. \ubc84\ud0b7 \uc624\ud504\ub2dd\uc740 \ubbf8\ub798\uc5d0\ub3c4 \ub9e4\uc6b0 \uc798 \ucc98\ub9ac\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<bucket> \ud63c\uc790\uc11c. Observables\uac00 \ube5b\uc744 \ubc1c\ud558\ub294 \uacbd\uc6b0\ub294 \ub458 \uc774\uc0c1\uc758 \uacb0\uacfc\ub97c \ubc18\ud658\ud574\uc57c \ud560 \ub54c\uc785\ub2c8\ub2e4. \uc774 \uacbd\uc6b0, Future<t> \ub294 \ub354 \uc774\uc0c1 \uc801\ud569\ud558\uc9c0 \uc54a\uc73c\uba70 \ud5a5\ud6c4&lt;\uceec\ub809\uc158&lt;T&gt;&gt; \ub610\ub294 \uc774\uc640 \uc720\uc0ac\ud55c \uac83\uc740 \ub3d9\uc77c\ud55c \ucee8\ud2b8\ub799\ud2b8\ub97c \uac16\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc635\uc800\ubc84\ube14\uc740 \ub458 \uc774\uc0c1\uc758 T\uac00 \ubc18\ud658\ub420 \uc218 \uc788\uc74c\uc744 \uc758\ubbf8\ud558\ubbc0\ub85c, \ub54c\ub85c\ub294 \ud558\ub098, \ub54c\ub85c\ub294 \ub458 \uc774\uc0c1\uc758 T\uac00 \ubc18\ud658\ub418\ub354\ub77c\ub3c4 API\ub294 \ub3d9\uc77c\ud558\uac8c \ubcf4\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc2dc \uad6c\uccb4\uc801\uc778 \uc608\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. SDK\ub294 \ud558\ub098\uc758 \ubb38\uc11c\ub97c \ubc18\ud658\ud558\ub294 get \uba54\uc11c\ub4dc\ub97c \ub178\ucd9c\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uacfc \uac19\uc774 \ubcf4\uc785\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\uc778\ud130\ud398\uc774\uc2a4 \ubc84\ud0b7 {<br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<jsondocument> get(String id);<br \/>}<\/div>\n<\/div>\n<p>\uadf8\ub7ec\ub098 \uc7a0\uc7ac\uc801\uc73c\ub85c \ub458 \uc774\uc0c1\uc758 \uacb0\uacfc\ub97c \ubc18\ud658\ud560 \uc218 \uc788\ub294 \ucffc\ub9ac(\ubcf4\uae30, N1QL)\ub3c4 \uc9c0\uc6d0\ud569\ub2c8\ub2e4(\ub610\ub294 \uc804\ud600 \ubc18\ud658\ud558\uc9c0 \uc54a\uc744 \uc218\ub3c4 \uc788\uc74c). Observable \uacc4\uc57d \ub355\ubd84\uc5d0 \uc774\uc640 \uac19\uc740 API\ub97c \uad6c\ucd95\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\uc778\ud130\ud398\uc774\uc2a4 \ubc84\ud0b7 {<br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<viewresult> \ucffc\ub9ac(\ubdf0 \ucffc\ub9ac \ucffc\ub9ac);<br \/>}<\/div>\n<\/div>\n<p>\ubcf4\uc774\uc2dc\uc8e0? \ucee8\ud2b8\ub799\ud2b8\uc5d0\uc11c\ub294 \"\ucffc\ub9ac\ub97c \uc804\ub2ec\ud558\uba74 N\uac1c\uc758 ViewResults\ub97c \ubc18\ud658\ud55c\ub2e4\"\ub77c\uace0 \uc554\uc2dc\uc801\uc73c\ub85c \ub9d0\ud558\ub294\ub370, \uc774\ub294 Observable\uc774 \uc5b4\ub5bb\uac8c \ub3d9\uc791\ud574\uc57c \ud558\ub294\uc9c0 \uc54c\uace0 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub354 \ud070 \uadf8\ub9bc\uc744 \uc704\ud574 \uc9c1\uad00\uc801\uc73c\ub85c \uc608\uc0c1\ub300\ub85c \uc791\ub3d9\ud558\ub294 \ub354 \ub9ce\uc740 \uba54\uc11c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"geshifilter\">\n<div class=\"java geshifilter-java\" style=\"font-family:monospace;\"><span style=\"color: #000000; font-weight: bold;\">\uc778\ud130\ud398\uc774\uc2a4<\/span> \ubc84\ud0b7 <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #339933;\"><<\/span>D <span style=\"color: #000000; font-weight: bold;\">\ud655\uc7a5<\/span> \ubb38\uc11c<span style=\"color: #339933;\">&gt;<\/span> \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933\">&lt;<\/span>D<span style=\"color: #339933\">&gt;<\/span> insert<span style=\"color: #009900\">(<\/span>D \ubb38\uc11c<span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">;<\/span><br \/> <span style=\"color: #339933\">&lt;<\/span>D <span style=\"color: #000000;font-weight: bold\">extends<\/span> \ubb38\uc11c<span style=\"color: #339933\">&gt;<\/span> \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>D<span style=\"color: #339933;\">><\/span> \uc5c5\uc11c\ud2b8<span style=\"color: #009900;\">(<\/span>D \ubb38\uc11c<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #339933;\"><<\/span>D <span style=\"color: #000000; font-weight: bold;\">\ud655\uc7a5<\/span> \ubb38\uc11c<span style=\"color: #339933;\"><?>><\/span> \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>D<span style=\"color: #339933;\">><\/span> \ub300\uccb4<span style=\"color: #009900;\">(<\/span>D \ubb38\uc11c<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/p>\n<p>\u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>ViewResult<span style=\"color: #339933;\">><\/span> \ucffc\ub9ac<span style=\"color: #009900;\">(<\/span>\ubdf0 \ucffc\ub9ac \ucffc\ub9ac<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>QueryResult<span style=\"color: #339933;\">><\/span> \ucffc\ub9ac<span style=\"color: #009900;\">(<\/span>\ucffc\ub9ac \ucffc\ub9ac<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>QueryResult<span style=\"color: #339933;\">><\/span> \ucffc\ub9ac<span style=\"color: #009900;\">(<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a> \ucffc\ub9ac<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/p>\n<p>\u00a0 \u00a0 \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>\ubd80\uc6b8<span style=\"color: #339933;\">><\/span> \ud50c\ub7ec\uc2dc<span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/><span style=\"color: #009900;\">}<\/span><\/div>\n<\/div>\n<h2>\ub0b4 \ub370\uc774\ud130 \ud750\ub984\uc744 \ube44\ub3d9\uae30\ud654\ud558\uc138\uc694!<\/h2>\n<p>\uc9c0\uae08\uae4c\uc9c0 Observables\uac00 \uc5b4\ub5a4 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \uc77c\uad00\ub418\uace0 \ub2e8\uc21c\ud558\uba74\uc11c\ub3c4 \ube44\ub3d9\uae30\uc801\uc778 API\ub97c \uc81c\uacf5\ud558\ub294 \ub370 \uc5b4\ub5bb\uac8c \ub3c4\uc6c0\uc774 \ub418\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc Observables\ub294 \uad6c\uc131 \uac00\ub2a5\uc131 \uce21\uba74\uc5d0\uc11c \uc815\ub9d0 \ube5b\uc744 \ubc1c\ud569\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c \ubaa8\ub450 \ub2e4\ub8f0 \uc218\ub294 \uc5c6\uc9c0\ub9cc Observables\ub85c \ub9ce\uc740 \uc77c\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. RxJava\uc5d0\ub294 \uc5ec\uae30\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\ub294 \ub9e4\uc6b0 \ud6cc\ub96d\ud55c \ucc38\uc870 \ubb38\uc11c\uac00 \uc788\uc73c\ub2c8 \ud655\uc778\ud574 \ubcf4\uc138\uc694. \ube44\ub3d9\uae30 \ub370\uc774\ud130 \ud750\ub984\uc758 \uc791\ub3d9 \ubc29\uc2dd\uc744 \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574 \ub9c8\ube14 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub294\ub370, \uc774 \ub610\ud55c \ud5a5\ud6c4 \ubb38\uc11c\uc758 \uc77c\ubd80\ub85c \uc81c\uacf5\ud558\uace0\uc790 \ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc2e4\uc81c \uc608\ub97c \ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4: \uc0ac\uc6a9\uc790 \uc138\ubd80 \uc815\ubcf4\uac00 \ud3ec\ud568\ub41c \uc644\uc804\ud55c JSON \uac1d\uccb4\uc778 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \ubb38\uc11c\ub97c \ub85c\ub4dc\ud558\uace0 \uc2f6\uc9c0\ub9cc \ucf54\ub4dc\uc758 \ub354 \uc544\ub798\ucabd\uc5d0\uc11c \uc774\ub984\uc5d0 \ub300\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub824\uace0 \ud569\ub2c8\ub2e4. \ub9f5 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec JsonDocument\uc5d0\uc11c \uc774\ub984 \ubb38\uc790\uc5f4\ub85c \ub9e4\ud551\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"java geshifilter-java\" style=\"font-family:monospace;\">\ubc84\ud0b7<br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"user::1\"<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\uc9c0\ub3c4<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Func1<span style=\"color: #339933;\"><<\/span>JsonDocument, \ubb38\uc790\uc5f4<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a> \ud1b5\ud654<span style=\"color: #009900;\">(<\/span>\uc81c\uc774\uc2a8\ubb38\uc11c \uc81c\uc774\uc2a8\ubb38\uc11c<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">\ubc18\ud658<\/span> jsonDocument.<span style=\"color: #006633;\">\ucf58\ud150\uce20<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span>.<span style=\"color: #006633;\">getString<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\uc774\ub984\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\uad6c\ub3c5<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Action1<span style=\"color: #339933;\"><<\/span>\ubb38\uc790\uc5f4<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <span style=\"color: #000066; font-weight: bold;\">void<\/span> \ud1b5\ud654<span style=\"color: #009900;\">(<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a> \uc774\ub984<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Asystem+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\uc2dc\uc2a4\ud15c<\/span><\/a>.<span style=\"color: #006633;\">out<\/span>.<span style=\"color: #006633;\">println<\/span><span style=\"color: #009900;\">(<\/span>\uc774\ub984<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/div>\n<\/div>\n<p>\uc5ec\uae30\uc5d0\ub294 \ub450 \uac00\uc9c0 \uc911\uc694\ud55c \uce21\uba74\uc774 \uc788\uc2b5\ub2c8\ub2e4: \uc5ec\uae30\uc11c \uccb4\uc778\ud654\ub41c \ubaa8\ub4e0 \uba54\uc11c\ub4dc\ub294 \ube44\ub3d9\uae30\uc801\uc73c\ub85c \uc2e4\ud589\ub418\ubbc0\ub85c \uc6d0\ub798 \uc2a4\ub808\ub4dc\ub97c \ucc28\ub2e8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \ub300\ud55c get \ud638\ucd9c\uc774 \ubc18\ud658\ub418\uba74 JSON \ubb38\uc11c\uc5d0\uc11c \uc774\ub984\uc744 \ub9e4\ud551\ud55c \ub2e4\uc74c \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc778\uc1c4\ud569\ub2c8\ub2e4. \uc644\uc804\ud55c Observer\ub97c \uc81c\uacf5\ud560 \ud544\uc694\ub294 \uc5c6\uc73c\uba70, onNext \uac12\uc5d0\ub9cc \uad00\uc2ec\uc774 \uc788\ub294 \uacbd\uc6b0 \ud574\ub2f9 \uac12\ub9cc \uad6c\ud604\ud558\uba74 \ub429\ub2c8\ub2e4(\uc5ec\uae30\uc5d0 \ud45c\uc2dc\ub41c \uac83\ucc98\ub7fc). \ub354 \ub9ce\uc740 \uc608\uc81c\ub294 \uc624\ubc84\ub85c\ub4dc\ub41c \uba54\uc11c\ub4dc\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<p>\ub610\ud55c \uc5ec\uae30\uc5d0\uc11c\ub294 \uc77c\ubd80\ub7ec Java 6\/7 \uc2a4\ud0c0\uc77c\uc758 \uc775\uba85 \ud074\ub798\uc2a4\ub97c \ubcf4\uc5ec\ub4dc\ub9ac\uace0 \uc788\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. Java 8\ub3c4 \uc9c0\uc6d0\ud558\uc9c0\ub9cc \uc774\uc5d0 \ub300\ud574\uc11c\ub294 \ub098\uc911\uc5d0 \uc790\uc138\ud788 \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc774\uc81c \uc774\ub984\uc774 \"a\"\ub85c \uc2dc\uc791\ud558\ub294 \uacbd\uc6b0\uc5d0\ub9cc \uc774\ub984\uc744 \ucd9c\ub825\ud558\ub824\uba74 \uc774 \uccb4\uc778\uc744 \uc5b4\ub5bb\uac8c \ud655\uc7a5\ud560 \uc218 \uc788\uc744\uae4c\uc694?<\/p>\n<div class=\"geshifilter\">\n<div class=\"java geshifilter-java\" style=\"font-family:monospace;\">\ubc84\ud0b7<br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"user::1\"<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\uc9c0\ub3c4<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Func1<span style=\"color: #339933;\"><<\/span>JsonDocument, \ubb38\uc790\uc5f4<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a> \ud1b5\ud654<span style=\"color: #009900;\">(<\/span>\uc81c\uc774\uc2a8\ubb38\uc11c \uc81c\uc774\uc2a8\ubb38\uc11c<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">\ubc18\ud658<\/span> jsonDocument.<span style=\"color: #006633;\">\ucf58\ud150\uce20<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span>.<span style=\"color: #006633;\">getString<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\uc774\ub984\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\ud544\ud130<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Func1<span style=\"color: #339933;\"><<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a>, \ubd80\uc6b8<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Aboolean+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubd80\uc6b8<\/span><\/a> \ud1b5\ud654<span style=\"color: #009900;\">(<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a> s<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">\ubc18\ud658<\/span> s.<span style=\"color: #006633;\">startsWith<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"a\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\uad6c\ub3c5<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Action1<span style=\"color: #339933;\"><<\/span>\ubb38\uc790\uc5f4<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> <span style=\"color: #000066; font-weight: bold;\">void<\/span> \ud1b5\ud654<span style=\"color: #009900;\">(<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Astring+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ubb38\uc790\uc5f4<\/span><\/a> \uc774\ub984<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Asystem+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\uc2dc\uc2a4\ud15c<\/span><\/a>.<span style=\"color: #006633;\">out<\/span>.<span style=\"color: #006633;\">println<\/span><span style=\"color: #009900;\">(<\/span>\uc774\ub984<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/div>\n<\/div>\n<p>\ubb3c\ub860 \uac04\ub2e8\ud55c if \ubb38\uc73c\ub85c\ub3c4 \ucda9\ubd84\ud558\uc9c0\ub9cc, \ud544\ud130\ub9c1\ud558\ub294 \ucf54\ub4dc\uac00 \ud6e8\uc52c \ub354 \ubcf5\uc7a1\ud560 \uc218\ub3c4 \uc788\uace0 \ub2e4\ub978 \uac83\uc744 \ud638\ucd9c\ud560 \uc218\ub3c4 \uc788\ub2e4\uace0 \uc0c1\uc0c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uad00\uce21\uac12 \ubcc0\ud658\uc5d0 \ub300\ud55c \ub9c8\uc9c0\ub9c9 \uc608\ub85c, \ubb38\uc11c\ub97c \ub85c\ub4dc\ud558\uace0 \ucf58\ud150\uce20\ub97c \uc218\uc815\ud55c \ub2e4\uc74c \ub2e4\uc2dc couchbase\uc5d0 \uc800\uc7a5\ud558\ub294 \ub9e4\uc6b0 \uc790\uc8fc \ubc1c\uc0dd\ud558\ub294 \uc791\uc5c5\uc744 \ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"java geshifilter-java\" style=\"font-family:monospace;\">\ubc84\ud0b7<br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"user::1\"<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\uc9c0\ub3c4<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Func1<span style=\"color: #339933;\"><<\/span>JsonDocument, \uc81c\uc774\uc2a8\ub3c4\ud050\uba3c\ud2b8<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> JsonDocument \ud638\ucd9c<span style=\"color: #009900;\">(<\/span>JsonDocument \uc6d0\ubcf8<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \uc6d0\ubcf8.<span style=\"color: #006633;\">\ucf58\ud150\uce20<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span>.<span style=\"color: #006633;\">put<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\uc774\ub984\"<\/span>, <span style=\"color: #0000ff;\">\"SomethingElse\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">\ubc18\ud658<\/span> \uc6d0\ubcf8<span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\ud50c\ub7ab\ub9f5<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Func1<span style=\"color: #339933;\"><<\/span>JsonDocument, \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>JsonDocument<span style=\"color: #339933;\">>><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> \uad00\ucc30 \uac00\ub2a5<span style=\"color: #339933;\"><<\/span>JsonDocument<span style=\"color: #339933;\">><\/span> \ud1b5\ud654<span style=\"color: #009900;\">(<\/span>JsonDocument \uc218\uc815\ub428<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">\ubc18\ud658<\/span> \ubc84\ud0b7.<span style=\"color: #006633;\">\ub300\uccb4<\/span><span style=\"color: #009900;\">(<\/span>\uc218\uc815\ub428<span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span>.<span style=\"color: #006633;\">\uad6c\ub3c5<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/div>\n<\/div>\n<p>FlatMap\uc740 \ub9f5\uacfc \ub9e4\uc6b0 \uc720\uc0ac\ud558\uac8c \uc791\ub3d9\ud558\uc9c0\ub9cc, \ucc28\uc774\uc810\uc740 \uc635\uc800\ubc84\ube14 \uc790\uccb4\ub97c \ubc18\ud658\ud558\ubbc0\ub85c \ube44\ub3d9\uae30 \uc5f0\uc0b0\uc744 \ud1b5\ud55c \ub9e4\ud551\uc5d0 \ub9e4\uc6b0 \uc801\ud569\ud558\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub610 \ud55c \uac00\uc9c0 \uce21\uba74\uc740 Observables\ub97c \uc0ac\uc6a9\ud558\uba74 \uc815\uad50\ud55c \uc624\ub958 \ucc98\ub9ac\uac00 \uc190\ub05d\uc5d0\uc11c \ubc14\ub85c \uac00\ub2a5\ud558\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. 2\ucd08\uc758 \ud0c0\uc784\uc544\uc6c3\uc744 \uc801\uc6a9\ud558\uace0 \ud638\ucd9c\uc774 \uc2e4\ud328\ud558\uba74 \ub2e4\ub978 \uac83\uc744 \ubc18\ud658\ud558\ub294 \uc608\uc81c\ub97c \uad6c\ud604\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"java geshifilter-java\" style=\"font-family:monospace;\">\ubc84\ud0b7<br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">get<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"user::1\"<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">\uc2dc\uac04 \ucd08\uacfc<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #cc66cc;\">2<\/span>, TimeUnit.<span style=\"color: #006633;\">\ucd08<\/span><span style=\"color: #009900;\">)<\/span><br \/>\u00a0 \u00a0 .<span style=\"color: #006633;\">onErrorReturn<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #000000; font-weight: bold;\">new<\/span> Func1<span style=\"color: #339933;\"><<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Athrowable+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ub358\uc9c0\uae30 \uac00\ub2a5<\/span><\/a>, JsonDocument<span style=\"color: #339933;\">><\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \uc624\ubc84\ub77c\uc774\ub4dc<br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">public<\/span> JsonDocument \ud638\ucd9c<span style=\"color: #009900;\">(<\/span><a href=\"https:\/\/www.google.com\/search?hl=en&#038;q=allinurl%3Athrowable+java.sun.com&#038;btnI=I%27m%20Feeling%20Lucky\"><span style=\"color: #003399;\">\ub358\uc9c0\uae30 \uac00\ub2a5<\/span><\/a> \ub358\uc9c0\uae30 \uac00\ub2a5<span style=\"color: #009900;\">)<\/span> <span style=\"color: #009900;\">{<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #000000; font-weight: bold;\">\ubc18\ud658<\/span> JsonDocument.<span style=\"color: #006633;\">create<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\uc0ac\uc6a9\uc790::\uc775\uba85\"<\/span>, JsonObject.<span style=\"color: #006633;\">\ube48<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #009900;\">)<\/span>.<span style=\"color: #006633;\">put<\/span><span style=\"color: #009900;\">(<\/span><span style=\"color: #0000ff;\">\"\uc774\ub984\"<\/span>, <span style=\"color: #0000ff;\">\"john-doe\"<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><br \/>\u00a0 \u00a0 \u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><br \/>\u00a0 \u00a0 <span style=\"color: #009900;\">}<\/span><span style=\"color: #009900;\">)<\/span><span style=\"color: #339933;\">;<\/span><\/div>\n<\/div>\n<p>\uc5ec\uae30\uc11c\ub294 2\ucd08 \ub0b4\uc5d0 get \ud638\ucd9c\uc774 \ubc18\ud658\ub418\uc9c0 \uc54a\uc73c\uba74 \ub354\ubbf8 \ubb38\uc11c\uac00 \ubc18\ud658\ub429\ub2c8\ub2e4(\uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \ud569\ub9ac\uc801\uc778 \uae30\ubcf8\uac12\uc744 \uac00\uc815\ud558\uc5ec). \uc774\uac83\uc740 \uac04\ub2e8\ud55c \uc608\uc2dc\uc77c \ubfd0\uc774\uc9c0\ub9cc \uc7ac\uc2dc\ub3c4, \ub2e4\ub978 \uad00\uce21\uac12\uc73c\ub85c \ubd84\uae30\ud558\ub294 \ub4f1 \uc608\uc678\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub9ce\uc740 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc62c\ubc14\ub978 \uc0ac\uc6a9 \ubc29\ubc95\uc740 \uacf5\uc2dd \ubb38\uc11c(\ubc0f Rx\uc758 \ubb38\uc11c)\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<h2>\uc7a0\uae50, \ub354 \uc788\uc2b5\ub2c8\ub2e4<\/h2>\n<p>\uc11c\ub85c \ub2e4\ub978 \uad00\uce21\uac12\uc744 \uacb0\ud569(\ubcd1\ud569, \uc555\ucd95, \uc5f0\uacb0)\ud558\uace0, \uacb0\uacfc\ub97c \uc2dc\uac04 \uac04\uaca9\uc73c\ub85c \uc77c\uad04 \ucc98\ub9ac\ud558\uace0, \ubd80\uc791\uc6a9\uc744 \uc218\ud589\ud558\ub294 \ub4f1 \ud6e8\uc52c \ub354 \ub9ce\uc740 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ub150\uc744 \uc774\ud574\ud558\ub294 \ucd08\uae30 (\uc791\uc740) \uc7a5\uc560\ubb3c\uc744 \ub118\uace0 \ub098\uba74 \ub9e4\uc6b0 \uc790\uc5f0\uc2a4\ub7ec\uc6cc\uc9c0\uace0 \ub2e4\uc2dc \ub3cc\uc544\uac00\uace0 \uc2f6\uc9c0 \uc54a\uc744 \uac83\uc785\ub2c8\ub2e4(\ud558\uc9c0\ub9cc \uc800\ud76c\uac00 \ud2c0\ub838\ub2e4\uba74 \uc5b8\uc81c\ub4e0\uc9c0 Observable\uc744 \ucc28\ub2e8\ud558\uac70\ub098 \ubbf8\ub798\ub85c \uc804\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4).<\/p>\n<p>RxJava\ub294 Java 8\ub3c4 \uc81c\ub300\ub85c \uc9c0\uc6d0\ud558\ubbc0\ub85c \uc774\ubbf8 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc6b4\uc774 \uc88b\uc740 \uc0ac\ub78c\uc774\ub77c\uba74 \uc704\uc758 \uc608\uc81c\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ub2e8\uc21c\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family:monospace;\">\ubc84\ud0b7<br \/>\u00a0 \u00a0 .get(\"user::1\")<br \/>\u00a0 \u00a0 .map(jsonDocument -&gt; jsonDocument.content().getString(\"firstname\"))<br \/>\u00a0 \u00a0 .filter(s -&gt; s.startsWith(\"a\"))<br \/>\u00a0 \u00a0 .subscribe(System.out::println);<\/div>\n<\/div>\n<p>\uba4b\uc9c0\uc9c0 \uc54a\ub098\uc694? RxJava\ub294 \ub610\ud55c \uadf8 \uc704\uc5d0 \ub2e4\uc591\ud55c \uc5b8\uc5b4 \uc5b4\ub311\ud130\ub97c \uc81c\uacf5\ud558\ub294\ub370, \ud604\uc7ac Scala, Clojure, Groovy, JRuby \ubc0f Kotlin\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc5b4\ub311\ud130\ub294 \ub354 \ub9ce\uc740 \uc5b8\uc5b4\ubcc4 \ud1b5\ud569\uc744 \uc81c\uacf5\ud558\ub294 \ub370 \uc0ac\uc6a9\ub420 \uc218 \uc788\uc73c\uba70, \ud5a5\ud6c4 \uc218\uc694\uc5d0 \ub530\ub77c \uac01 \uc5b8\uc5b4\uc5d0 \ub300\ud55c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc9c0\uc6d0\uc744 \uac15\ud654\ud558\ub294 \ub370\ub3c4 \uc77c\ubd80 \uc0ac\uc6a9\ud560 \uacc4\ud68d\uc785\ub2c8\ub2e4. Java SDK\ub97c \uc81c\uc678\ud55c \ucd5c\uc6b0\uc120 \uc21c\uc704\ub294 \ub2e8\uc5f0 Scala\uc774\ubbc0\ub85c \uc870\ub9cc\uac04 \ubc1c\ud45c\ub420 \ub0b4\uc6a9\uc744 \uae30\ub300\ud574 \uc8fc\uc138\uc694!<\/p>\n<p>\uc5ec\ub7ec\ubd84\ub3c4 \uc800\ud76c\ub9cc\ud07c\uc774\ub098 \uae30\ub300\uac00 \ud06c\uc2dc\uae38 \ubc14\ub77c\uba70, \uc77c\ubc18\uc801\uc778 \ucc44\ub110\uc744 \ud1b5\ud574 \uc5ec\ub7ec\ubd84\uc758 \ud53c\ub4dc\ubc31\uacfc \uc9c8\ubb38\uc744 \uae30\ub2e4\ub9ac\uaca0\uc2b5\ub2c8\ub2e4!<\/p>","protected":false},"excerpt":{"rendered":"<p>This blog post explains our reasoning and motivation behind choosing RxJava as one of the integral components in our new Java SDK. Motivation There are many ways to design an API and every one has its own set of benefits [&hellip;]<\/p>\n","protected":false},"author":19,"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":[8987],"class_list":["post-1833","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why Couchbase chose RxJava for the new Java SDK - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/why-couchbase-chose-rxjava-new-java-sdk\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why Couchbase chose RxJava for the new Java SDK\" \/>\n<meta property=\"og:description\" content=\"This blog post explains our reasoning and motivation behind choosing RxJava as one of the integral components in our new Java SDK. Motivation There are many ways to design an API and every one has its own set of benefits [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/why-couchbase-chose-rxjava-new-java-sdk\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T17:38:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michael Nitschinger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@daschl\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Nitschinger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/\"},\"author\":{\"name\":\"Michael Nitschinger\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/e5d4d332756da6f361dd88c1576de61d\"},\"headline\":\"Why Couchbase chose RxJava for the new Java SDK\",\"datePublished\":\"2014-12-16T17:38:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/\"},\"wordCount\":1092,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#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\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/\",\"name\":\"Why Couchbase chose RxJava for the new Java SDK - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T17:38:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#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\\\/why-couchbase-chose-rxjava-new-java-sdk\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why Couchbase chose RxJava for the new Java SDK\"}]},{\"@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\\\/e5d4d332756da6f361dd88c1576de61d\",\"name\":\"Michael Nitschinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g95e178617974d46e3b02dd1754a3f60b\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g\",\"caption\":\"Michael Nitschinger\"},\"description\":\"Michael Nitschinger works as a Principal Software Engineer at Couchbase. He is the architect and maintainer of the Couchbase Java SDK, one of the first completely reactive database drivers on the JVM. He also authored and maintains the Couchbase Spark Connector. Michael is active in the open source community, a contributor to various other projects like RxJava and Netty.\",\"sameAs\":[\"https:\\\/\\\/nitschinger.at\",\"https:\\\/\\\/x.com\\\/daschl\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/author\\\/michael-nitschinger\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why Couchbase chose RxJava for the new Java SDK - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/why-couchbase-chose-rxjava-new-java-sdk\/","og_locale":"ko_KR","og_type":"article","og_title":"Why Couchbase chose RxJava for the new Java SDK","og_description":"This blog post explains our reasoning and motivation behind choosing RxJava as one of the integral components in our new Java SDK. Motivation There are many ways to design an API and every one has its own set of benefits [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/why-couchbase-chose-rxjava-new-java-sdk\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T17:38:21+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Michael Nitschinger","twitter_card":"summary_large_image","twitter_creator":"@daschl","twitter_misc":{"Written by":"Michael Nitschinger","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/"},"author":{"name":"Michael Nitschinger","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e5d4d332756da6f361dd88c1576de61d"},"headline":"Why Couchbase chose RxJava for the new Java SDK","datePublished":"2014-12-16T17:38:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/"},"wordCount":1092,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/#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\/why-couchbase-chose-rxjava-new-java-sdk\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/","url":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/","name":"Why Couchbase chose RxJava for the new Java SDK - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T17:38:21+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/why-couchbase-chose-rxjava-new-java-sdk\/#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\/why-couchbase-chose-rxjava-new-java-sdk\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Why Couchbase chose RxJava for the new Java SDK"}]},{"@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\/e5d4d332756da6f361dd88c1576de61d","name":"\ub9c8\uc774\ud074 \ub2c8\uce6d\uac70","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g95e178617974d46e3b02dd1754a3f60b","url":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","caption":"Michael Nitschinger"},"description":"\ub9c8\uc774\ud074 \ub2c8\uce6d\uc5b4\ub294 Couchbase\uc758 \uc218\uc11d \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub294 JVM\uc5d0\uc11c \ucd5c\ucd08\uc758 \uc644\uc804 \ubc18\uc751\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ub4dc\ub77c\uc774\ubc84 \uc911 \ud558\ub098\uc778 Couchbase Java SDK\uc758 \uc124\uacc4\uc790\uc774\uc790 \uc720\uc9c0 \uad00\ub9ac\uc790\uc785\ub2c8\ub2e4. \ub610\ud55c Couchbase Spark Connector\ub97c \uc791\uc131\ud558\uace0 \uc720\uc9c0 \uad00\ub9ac\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. Michael\uc740 \uc624\ud508 \uc18c\uc2a4 \ucee4\ubba4\ub2c8\ud2f0\uc5d0\uc11c \ud65c\ubc1c\ud788 \ud65c\ub3d9 \uc911\uc774\uba70, RxJava \ubc0f Netty\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub85c\uc81d\ud2b8\uc5d0 \uae30\uc5ec\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/nitschinger.at","https:\/\/x.com\/daschl"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/michael-nitschinger\/"}]}},"acf":[],"authors":[{"term_id":8987,"user_id":19,"is_guest":0,"slug":"michael-nitschinger","display_name":"Michael Nitschinger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/dad99b5e02a74ca4bec14352e9da710160647a97290814b669babb3aac0ea675?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1833","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\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=1833"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/1833\/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=1833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=1833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=1833"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=1833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}