{"id":2220,"date":"2016-04-19T15:00:00","date_gmt":"2016-04-19T15:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2220"},"modified":"2023-06-23T05:10:08","modified_gmt":"2023-06-23T12:10:08","slug":"use-couchbase-and-rxjava-to-make-java-read-csv-files","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","title":{"rendered":"Couchbase\uc640 RxJava\ub97c \uc0ac\uc6a9\ud558\uc5ec Java\uac00 CSV \ud30c\uc77c\uc744 \uc77d\ub3c4\ub85d \ub9cc\ub4e4\uae30"},"content":{"rendered":"<p>RxJava\ub294 \ubc18\uc751\ud615 \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \uc704\ud55c \uba4b\uc9c4 \ub3c4\uad6c\ub85c, Java CSV \ub9ac\ub354\ub85c\ub3c4 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>RxJava\ub97c \ucc98\uc74c \uc0ac\uc6a9\ud558\uac70\ub098 \ub4e4\uc5b4\ubcf8 \uc801\uc774 \uc5c6\ub2e4\uba74, \ube44\ub3d9\uae30 \ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc\uc73c\ub85c \ud504\ub85c\uadf8\ub798\ubc0d\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ub610\ud55c \uc2a4\ud2b8\ub9bc \ub370\uc774\ud130\ub97c \uad00\ucc30\ud558\uac70\ub098 \uc218\uc2e0\ud558\uace0 \ud574\ub2f9 \uc2a4\ud2b8\ub9bc\uc774 \ubc1c\uacac\ub418\uba74 \ubb34\uc5b8\uac00\ub97c \uc218\ud589\ud560 \uc218 \uc788\ub294 \uc774\ubca4\ud2b8 \uae30\ubc18 \ud504\ub85c\uadf8\ub798\ubc0d\uc785\ub2c8\ub2e4. \ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc\uc740 \ubcc0\uc218\ubd80\ud130 \ub370\uc774\ud130 \uad6c\uc870\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \ubb34\uc5c7\uc774\ub4e0 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \ud55c \uc904\uc758 CSV \ub370\uc774\ud130\ub97c \ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc\uc774\ub77c\uace0 \uac00\uc815\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ub9ce\uc740 \uac1c\ubc1c\uc790\uac00 \uc608\uc0c1\ubcf4\ub2e4 \ub354 \uc790\uc8fc CSV \ub370\uc774\ud130\ub97c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub85c\ub4dc\ud574\uc57c \ud558\ub294 \uc0c1\ud669\uc5d0 \uc9c1\uba74\ud558\uac8c \ub429\ub2c8\ub2e4. \ub300\ubd80\ubd84\uc758 \uc2dc\ub098\ub9ac\uc624\uc5d0\uc11c\ub294 CSV \ud30c\uc77c\uc5d0\uc11c \ud55c \uc904\uc744 \uc77d\uc5b4 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub193\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774 \uc608\uc81c\uc5d0\uc11c\ub294 RxJava\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc\uc744 \uad6c\ub3c5\ud558\uace0 \uc774\ub97c Java\ub85c \ubcc0\ud658\ud558\uc5ec Couchbase\uc5d0 \uc800\uc7a5\ub420 CSV \ud30c\uc77c\uc744 \uc77d\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc694\uad6c \uc0ac\ud56d<\/h2>\n<p>\uc774 \ud504\ub85c\uc81d\ud2b8\ub97c \uc2dc\uc791\ud558\uace0 \uc2e4\ud589\ud558\ub294 \ub370 \ud544\uc694\ud55c \uc694\uad6c \uc0ac\ud56d\uc740 \uadf8\ub9ac \ub9ce\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ucd5c\uc18c\ud55c \ub2e4\uc74c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4:<\/p>\n<ul>\n<li>JDK 1.8+<\/li>\n<li>Apache Maven 3.3+<\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/nosql-databases\/couchbase-server\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84<\/a> 4.1+<\/li>\n<\/ul>\n<p>\ubaa8\ub4e0 \uac1c\ubc1c \ubc0f \uc791\uc5c5\uc740 JDK 1.8 \ubc0f Maven\uc744 \ud1b5\ud574 \uc774\ub8e8\uc5b4\uc9c0\uba70, \uc5ec\uae30\uc5d0\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc2e4\ud589\uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<h2>\ub370\uc774\ud130 \uc9d1\ud569 \ubc0f \ub370\uc774\ud130 \ubaa8\ub378 \uc774\ud574<\/h2>\n<p>RxJava\uc5d0 \uc775\uc219\ud574\uc9c0\ub294 \uac00\uc7a5 \uc88b\uc740 \ubc29\ubc95\uc740 \uc0d8\ud50c \ub370\uc774\ud130 \uc138\ud2b8\ub97c \uac00\uc838\uc640\uc11c \uc0ac\uc6a9\ud574 \ubcf4\ub294 \uac83\uc785\ub2c8\ub2e4. \uac04\ub2e8\ud558\uac8c \ud558\uae30 \uc704\ud574 \uc27c\ud45c\ub85c \uad6c\ubd84\ub41c \uac12(CSV) \ud30c\uc77c\uc744 \uc9c1\uc811 \ub9cc\ub4e4\uaca0\uc9c0\ub9cc, \uc880 \ub354 \ud654\ub824\ud55c \uac83\uc744 \uc6d0\ud55c\ub2e4\uba74 \ub370\uc774\ud130 \uacfc\ud559 \uc6f9\uc0ac\uc774\ud2b8\ub97c \ubc29\ubb38\ud558\uc138\uc694, <a href=\"https:\/\/www.kaggle.com\/\">Kaggle<\/a>.<\/p>\n<p>\uac04\ub2e8\ud55c CSV \ub370\uc774\ud130 \uc9d1\ud569\uc5d0 \ud589\ub2f9 \ub2e4\uc74c\uacfc \uac19\uc740 \uc5f4\uc774 \uc788\ub2e4\uace0 \uac00\uc815\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<ol>\n<li>id<\/li>\n<li>first_name<\/li>\n<li>last_name<\/li>\n<li>\ud2b8\uc704\ud130<\/li>\n<\/ol>\n<p>\ucffc\ub9ac \ubc0f \ubd84\uc11d \uad00\uc810\uc5d0\uc11c \ubcfc \ub54c, CSV \ud615\uc2dd\uc758 \ub370\uc774\ud130\ub85c \uc791\uc5c5\ud558\ub294 \uac83\uc740 \uac70\uc758 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. \ub300\uc2e0, \uc774 \ub370\uc774\ud130\ub294 \ub098\uc911\uc5d0 \ucc98\ub9ac\ud560 \uc218 \uc788\ub3c4\ub85d NoSQL \ub370\uc774\ud130\ub85c \uc800\uc7a5\ub429\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 \ub118\ubc84 \ud06c\ub7f0\uce6d\uacfc \ucffc\ub9ac\uc5d0 \ub300\ud574\uc11c\ub294 \ub2e4\ub8e8\uc9c0 \uc54a\uaca0\uc9c0\ub9cc, \ucd94\ud6c4 \ub2e4\ub978 \uae00\uc5d0\uc11c \ub2e4\ub8f0 \uc608\uc815\uc785\ub2c8\ub2e4. \uc9c0\uae08\uc740 \uadf8\ub0e5 NoSQL \ud615\uc2dd\uc73c\ub85c \uac00\uc838\uc624\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Couchbase\uc5d0 \ub85c\ub4dc\ub41c CSV\uc758 \uac01 \ud589\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<pre><code>\r\n{\r\n    \"id\": 1,\r\n    \"first_name\": \"Nic\",\r\n    \"last_name\": \"Raboy\",\r\n    \"twitter\": \"nraboy\"\r\n}\r\n<\/code><\/pre>\n<p>\uc608, \uc704\uc758 \ub370\uc774\ud130 \uccad\ud06c\ub294 JSON \ubb38\uc11c\uc774\uba70, \uc774\ub294 Couchbase\uac00 \uc9c0\uc6d0\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\uc81c \ub370\uc774\ud130 \ubaa9\ud45c\ub97c \uc54c\uc558\uc73c\ub2c8 RxJava\ub97c \uc0ac\uc6a9\ud558\uc5ec CSV \ub370\uc774\ud130\ub97c Couchbase\uc5d0 \ub85c\ub4dc\ud558\uae30 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc6d0\uc2dc \ub370\uc774\ud130 \ubcc0\ud658 \ubc0f \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \uc4f0\uae30<\/h2>\n<p>RxJava\ub97c \uc0ac\uc6a9\ud558\uc5ec Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ud1b5\ud574 CSV \ub370\uc774\ud130\ub97c \ub85c\ub4dc\ud558\ub824\uba74 \uba87 \uac00\uc9c0 \uc885\uc18d\uc131\uc744 \ud3ec\ud568\ud574\uc57c \ud569\ub2c8\ub2e4. RxJava, OpenCSV, Couchbase Java SDK\ub97c \ud3ec\ud568\ud574\uc57c \ud569\ub2c8\ub2e4. Maven\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc73c\ubbc0\ub85c \ubaa8\ub450 Maven\uc744 \ud1b5\ud574 \ud3ec\ud568\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <strong>pom.xml<\/strong> \ud30c\uc77c\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4. RxJava\ub97c \ud3ec\ud568\ud558\ub824\uba74 Maven \ud30c\uc77c\uc5d0 \ub2e4\uc74c \uc885\uc18d\uc131\uc744 \ud3ec\ud568\ud558\uc138\uc694:<\/p>\n<pre><code>\r\n\r\n    io.reactivex\r\n    rxjava\r\n    1.1.2\r\n\r\n<\/code><\/pre>\n<p>\uc6d0\uc2dc \ub370\uc774\ud130\ub294 CSV \ud615\uc2dd\uc774\ubbc0\ub85c OpenCSV\ub77c\ub294 Java\uc6a9 \uc624\ud508 \uc18c\uc2a4 CSV \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. OpenCSV\uc5d0 \ub300\ud55c Maven \uc885\uc18d\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code>\r\n\r\n    com.opencsv\r\n    opencsv\r\n    3.7\r\n\r\n<\/code><\/pre>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c Java\ub294 \ub2e4\uc74c\uc5d0 \uc5f0\uacb0\ud574\uc57c \ud569\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/server\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84<\/a>. \uc774 \uc791\uc5c5\uc740 <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/sdks\/intro.html\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\ubc14 SDK<\/a>. \uc774 \uc885\uc18d\uc131\uc744 Maven \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00\ud558\ub824\uba74 \ub2e4\uc74c \ub0b4\uc6a9\uc744 <strong>pom.xml<\/strong> file:<\/p>\n<pre><code>\r\n\r\n    com.couchbase.client\r\n    java-client\r\n    2.2.0\r\n\r\n<\/code><\/pre>\n<p>\ubaa8\ub4e0 \ud504\ub85c\uc81d\ud2b8 \uc885\uc18d\uc131\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<p>CSV \ud30c\uc77c\uc744 \uc77d\uc9c0 \uc54a\uace0 \ub85c\ub4dc\ud558\ub824\uba74 \uc0c8\ub85c\uc6b4 <code>CSVReader<\/code> \uac1d\uccb4\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc124\uc815\ud569\ub2c8\ub2e4:<\/p>\n<pre><code>\r\nCSVReader reader = new CSVReader(new FileReader(\"PATH_TO_CSV_FILE\"));\r\n<\/code><\/pre>\n<p>\uc774 \ub370\uc774\ud130\ub294 \uacb0\uad6d Couchbase\ub85c \ucc98\ub9ac\ub418\ubbc0\ub85c \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud558\uc5ec \ubc84\ud0b7\uc744 \uc5f4\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code>\r\nBucket bucket = CouchbaseCluster.create(\"https:\/\/localhost:8091\").openBucket(\"default\", \"\");\r\n<\/code><\/pre>\n<p>\uc704\uc758 \ub0b4\uc6a9\uc740 Couchbase\uac00 \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589 \uc911\uc774\uba70 \ub370\uc774\ud130\uac00 \ube44\ubc00\ubc88\ud638 \uc5c6\uc774 \uae30\ubcf8 \ubc84\ud0b7\uc5d0 \uc800\uc7a5\ub41c\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>CSV \ub370\uc774\ud130 \uc9d1\ud569\uc744 \ucc98\ub9ac\ud558\uae30 \uc704\ud574 RxJava Observable\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code>\r\nObservable\r\n    .from(reader)\r\n    .map(\r\n        csvRow -&gt; {\r\n            JsonObject object = JsonObject.create();\r\n            object\r\n                .put(\"first_name\", csvRow[1])\r\n                .put(\"last_name\", csvRow[2])\r\n                .put(\"twitter\", csvRow[3]);\r\n            return JsonDocument.create(csvRow[0], object);\r\n        }\r\n    )\r\n    .subscribe(document -&gt; bucket.upsert(document), error -&gt; System.out.println(error));\r\n<\/code><\/pre>\n<p>Observable\uc5d0\uc11c \uc77c\uc5b4\ub098\ub294 \uc77c\uc744 \ubd84\uc11d\ud558\ub824\uba74 \ub2e4\uc74c \ub2e8\uacc4\ub97c \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub9ac\uace0 <code>CSVReader<\/code> \ub294 <code>Iterable<\/code>. \uc635\uc800\ubc84\ube14\uc740 <code>Iterable<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc18c\uc2a4\ub85c <code>.from<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc77d\uc740 \ub370\uc774\ud130\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc9c1\uc811 \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ubb38\uc790\uc5f4 \ubc30\uc5f4\uc774 \ub429\ub2c8\ub2e4. \uc774 \uacbd\uc6b0 <code>.map<\/code> \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uba74 \ubb38\uc790\uc5f4 \ubc30\uc5f4\uc744 \uc6d0\ud558\ub294 \ub300\ub85c \ubcc0\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uacbd\uc6b0 \ubaa9\ud45c\ub294 CSV\uc758 \uac01 \uc904\uc744 Couchbase \ubb38\uc11c\uc5d0 \ub9e4\ud551\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774 \ub9e4\ud551 \uacfc\uc815\uc5d0\uc11c \ucd94\uac00 \ub370\uc774\ud130 \uc815\ub9ac\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>csvRow[*].trim()<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uac01 CSV \uc5f4\uc758 \uc55e\ub4a4 \uacf5\ubc31\uc744 \uc81c\uac70\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uac01 \uc77d\uae30 \ud589\uc774 \ucc98\ub9ac\ub420 \ub54c\ub9c8\ub2e4 Couchbase\uc5d0 \uc800\uc7a5\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 <code>.subscribe<\/code> \uba54\uc11c\ub4dc\ub294 \uc635\uc800\ubc84\ube14\uc774 \ub0b4\ubcf4\ub0b4\ub294 \uc54c\ub9bc(\uc774 \uacbd\uc6b0 \uc870\uc791\ub41c \ub370\uc774\ud130)\uc744 \uad6c\ub3c5\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uacb0\ub860<\/h2>\n<p>\ubc29\uae08 RxJava\uc640 Couchbase Java SDK\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub354\ud2f0 CSV \ub370\uc774\ud130\ub97c Couchbase\uc5d0 \ub85c\ub4dc\ud558\ub294 \uac83\uc744 \ub9db\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ubc18\uc751\ud615 \ud504\ub85c\uadf8\ub798\ubc0d\uc744 \uc218\ud589\ud558\uba74 \uad00\ucc30 \uc911\uc778 \ubaa8\ub4e0 \ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc\uc5d0 \ub300\ud574 \uc870\uce58\ub97c \ucde8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc2dc\ub098\ub9ac\uc624\uc5d0\uc11c\ub294 CSV \ud30c\uc77c\uc744 Couchbase\uc5d0 \ub85c\ub4dc\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<p>\ubc29\ub300\ud55c \ub370\uc774\ud130 \uc138\ud2b8\uac00 \uc788\ub294 \uacbd\uc6b0 Apache Spark\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \ud55c \ub2e8\uacc4 \ub354 \ubc1c\uc804\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc800\ub294 \ub9e4\uc6b0 \uc720\uc0ac\ud55c CSV \ub85c\ub354\ub97c \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/load-csv-data-into-couchbase-using-apache-spark\/\">\uc5ec\uae30<\/a> Spark\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>RxJava is an awesome tool for reactive programming that&#8217;s also useful as a Java CSV reader. In case you&#8217;ve never used or even heard of RxJava, it is a a way of programming with asynchronous data streams. It is also [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1818],"tags":[1614],"ppma_author":[9032],"class_list":["post-2220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-java","tag-csv"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Use Couchbase and RxJava to Make Java Read CSV files<\/title>\n<meta name=\"description\" content=\"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that&#039;s also useful as a Java CSV reader when paired with Couchbase.\" \/>\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\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Use Couchbase and RxJava to Make Java Read CSV files\" \/>\n<meta property=\"og:description\" content=\"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that&#039;s also useful as a Java CSV reader when paired with Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-19T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-23T12:10:08+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Use Couchbase and RxJava to Make Java Read CSV files\",\"datePublished\":\"2016-04-19T15:00:00+00:00\",\"dateModified\":\"2023-06-23T12:10:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\"},\"wordCount\":821,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"csv\"],\"articleSection\":[\"Couchbase Server\",\"Java\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\",\"name\":\"Use Couchbase and RxJava to Make Java Read CSV files\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-04-19T15:00:00+00:00\",\"dateModified\":\"2023-06-23T12:10:08+00:00\",\"description\":\"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#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\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Use Couchbase and RxJava to Make Java Read CSV files\"}]},{\"@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\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase\uc640 RxJava\ub97c \uc0ac\uc6a9\ud558\uc5ec Java\uac00 CSV \ud30c\uc77c\uc744 \uc77d\ub3c4\ub85d \ub9cc\ub4e4\uae30","description":"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.","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\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","og_locale":"ko_KR","og_type":"article","og_title":"Use Couchbase and RxJava to Make Java Read CSV files","og_description":"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2016-04-19T15:00:00+00:00","article_modified_time":"2023-06-23T12:10:08+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Use Couchbase and RxJava to Make Java Read CSV files","datePublished":"2016-04-19T15:00:00+00:00","dateModified":"2023-06-23T12:10:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/"},"wordCount":821,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["csv"],"articleSection":["Couchbase Server","Java"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","url":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/","name":"Couchbase\uc640 RxJava\ub97c \uc0ac\uc6a9\ud558\uc5ec Java\uac00 CSV \ud30c\uc77c\uc744 \uc77d\ub3c4\ub85d \ub9cc\ub4e4\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-04-19T15:00:00+00:00","dateModified":"2023-06-23T12:10:08+00:00","description":"This blog shows you how to use RxJava, which is an awesome tool for reactive programming that's also useful as a Java CSV reader when paired with Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#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\/use-couchbase-and-rxjava-to-make-java-read-csv-files\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Use Couchbase and RxJava to Make Java Read CSV files"}]},{"@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\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, \uac1c\ubc1c\uc790 \uc639\ud638\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"\ub2c9 \ub77c\ubcf4\uc774\ub294 \ucd5c\uc2e0 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c \uae30\uc220\uc744 \uc639\ud638\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. \uadf8\ub294 Java, JavaScript, Golang \ubc0f Angular, NativeScript, Apache Cordova\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. Nic\uc740 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \ubcf4\ub2e4 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uac1c\ubc1c \uacbd\ud5d8\uc5d0 \ub300\ud574 \uae00\uc744 \uc4f0\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"\ub2c9 \ub77c\ubcf4\uc774\ub294 \ucd5c\uc2e0 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c \uae30\uc220\uc744 \uc639\ud638\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. \uadf8\ub294 Java, JavaScript, Golang \ubc0f Angular, NativeScript, Apache Cordova\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. Nic\uc740 \uc6f9 \ubc0f \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc744 \ubcf4\ub2e4 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uac1c\ubc1c \uacbd\ud5d8\uc5d0 \ub300\ud574 \uae00\uc744 \uc4f0\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2220","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\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2220"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2220\/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=2220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2220"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}