{"id":2310,"date":"2016-06-27T08:14:13","date_gmt":"2016-06-27T08:14:12","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2310"},"modified":"2023-09-22T09:42:00","modified_gmt":"2023-09-22T16:42:00","slug":"using-spring-data-couchbase-in-a-cdi-application","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/using-spring-data-couchbase-in-a-cdi-application\/","title":{"rendered":"CDI \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c Spring \ub370\uc774\ud130 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc0ac\uc6a9"},"content":{"rendered":"<p>JEE \uacf5\uac04\uc5d0 \uc788\uace0 \ucd5c\uc2e0 \ub370\uc774\ud130 \uad00\ub9ac \uacc4\uce35\uc744 \uc6d0\ud558\ub294 \uacbd\uc6b0 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/10-common-nosql-use-cases-for-modern-applications\/\">NoSql \uc560\ud50c\ub9ac\ucf00\uc774\uc158<\/a>\ub97c \uc0ac\uc6a9\ud558\uba74 \uae08\ubc29 \ud55c\uacc4\uc5d0 \ubd80\ub52a\ud790 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uacfc \uac19\uc740 \ud765\ubbf8\ub85c\uc6b4 \ud504\ub85c\uc81d\ud2b8\uac00 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/hibernate.org\/ogm\/\">\ucd5c\ub300 \uc808\uc804 \ubaa8\ub4dc OGM<\/a> \ub610\ub294 <a href=\"https:\/\/deltaspike.apache.org\/\">\ub378\ud0c0\uc2a4\ud30c\uc774\ud06c<\/a>\uc758 \ub370\uc774\ud130 \ubaa8\ub4c8\uc744 \uc0ac\uc6a9\ud558\uc9c0\ub9cc, \uadf8 \uc911 \uc5b4\ub290 \uac83\ub3c4 Couchbase\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc73c\uba70 Spring Data\ub9cc\ud07c \uace0\uae09\uc2a4\ub7fd\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud558\uc9c0\ub9cc Spring \ub370\uc774\ud130 \ud504\ub85c\uc81d\ud2b8\uc5d0\ub294 CDI \ud655\uc7a5\uc774 \uc788\uae30 \ub54c\ubb38\uc5d0 \ubaa8\ub4e0 \uac83\uc774 \uad1c\ucc2e\uc2b5\ub2c8\ub2e4. \uc989, JEE \ucee8\ud14c\uc774\ub108\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Spring\uacfc \uac19\uc740 \ub2e4\ub978 DI \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uac00\uc838\uc624\ub294 \uac83\uc740 CDI\uac00 \uc774\ubbf8 \uc5ec\uae30\uc5d0 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc57d\uac04\uc758 \uc624\ubc84\ud5e4\ub4dc\uac00 \ubc1c\uc0dd\ud558\uc9c0\ub9cc, Spring Data\uc758 \ubaa8\ub4e0 \uc7a5\uc810\uc744 \ud65c\uc6a9\ud558\uba74 \uc624\ubc84\ud5e4\ub4dc\ub97c \uac10\uc218\ud560 \ub9cc\ud55c \uac00\uce58\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c \uc5b4\ub5bb\uac8c \uc791\ub3d9\ud558\ub294\uc9c0 \uc0b4\ud3b4\ubd05\uc2dc\ub2e4. \uc57c\uc0dd\ud654 \ube60\ub978 \uc2dc\uc791 \uac00\uc774\ub4dc\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 hibernate5 \uc608\uc81c\ub97c \uc0ac\uc6a9\ud558\uace0 Hibernate Core\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ub300\uccb4\ud558\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/sdk-extensions\/spring-data-couchbase.html\">Spring \ub370\uc774\ud130 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/a>. \uc6d0\ubcf8 \ucf54\ub4dc\ub97c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/wildfly\/quickstart\/tree\/10.x\/hibernate5\/\">\uc5ec\uae30<\/a> \ubc0f \ucd5c\uc885 \ub9c8\uc774\uadf8\ub808\uc774\uc158\ub41c \ucf54\ub4dc <a href=\"https:\/\/github.com\/ldoguin\/wildfly-quickstart-spring-data\">\uc5ec\uae30<\/a>.<\/p>\n<h2>CDI\ub85c Couchbase\uc5d0 \uc5f0\uacb0<\/h2>\n<p>\uac00\uc7a5 \uba3c\uc800 \uc124\uc815\ud574\uc57c \ud560 \uac83\uc740 Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c \uc5f0\uacb0\uc785\ub2c8\ub2e4. CDI\ub97c \uc0ac\uc6a9 \uc911\uc774\ubbc0\ub85c @Producer\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. IP \uc8fc\uc18c, \ubc84\ud0b7 \uc774\ub984, \uad00\ub9ac\uc790 \ub85c\uadf8\uc778 \ubc0f \ube44\ubc00\ubc88\ud638\uc5d0 \ub300\ud55c \uc18d\uc131\uc744 \uc678\ubd80\ud654\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574\uc11c\ub294 \uc790\uc138\ud788 \uc124\uba85\ud558\uc9c0 \uc54a\uaca0\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uac12\uc744 \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc8fc\uc18c\ub098 \ubc84\ud0b7 \uc774\ub984\uc744 \uc81c\uacf5\ud558\uc9c0 \uc54a\uc73c\uba74 SDK\ub294 \uae30\ubcf8\uac12\uc774\ub77c\ub294 \ubc84\ud0b7\uc774 \uc788\ub294 \ub85c\uceec \ud638\uc2a4\ud2b8\uc5d0\uc11c Couchbase Server\uac00 \uc2e4\ud589\ub418\uace0 \uc788\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.<\/p>\n<pre><code>  @Produces\r\n  public CouchbaseOperations createCouchbaseTemplate() throws UnknownHostException, CouchbaseException {\r\n      CouchbaseCluster cluster = CouchbaseCluster.create();\r\n      Bucket bucket = cluster.openBucket();\r\n      ClusterInfo clusterInfo = cluster.clusterManager(\"default\",\"\").info();\r\n      return new CouchbaseTemplate(clusterInfo, bucket);\r\n  }\r\n<\/code><\/pre>\n<p>\uc774\ub807\uac8c \ud558\uba74 Couchbase \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc791\ub3d9\uc2dc\ud0a4\ub294 \ub370 \ud544\uc694\ud55c \ubaa8\ub4e0 \uac83\uc744 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucd5c\uc2e0 \ubc84\uc804\uc5d0\ub294 \ubc84\uadf8\uac00 \uc788\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. <a href=\"https:\/\/issues.jboss.org\/browse\/WELD-2185\">\uc6a9\uc811<\/a>. \ub530\ub77c\uc11c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ube60\ub978 \ud574\uacb0 \ubc29\ubc95\uc744 \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/ldoguin\/wildfly-quickstart-spring-data\/blob\/master\/src\/main\/java\/org\/springframework\/data\/couchbase\/repository\/cdi\/CouchbaseRepositoryExtension.java\">\uc5ec\uae30<\/a>. \uae30\ubcf8\uc801\uc73c\ub85c \ubb38\uc81c\ub294 Weld\uac00 \ud55c\uc815\uc790\ub97c \uc800\uc7a5\ud558\ub294 \ubc29\uc2dd\uc744 \ubcc0\uacbd\ud558\uc5ec \ub354 \uc774\uc0c1 Bean \uc870\ud68c \ubc29\ubc95(\ud55c\uc815\uc790 \uae30\ubc18)\uacfc \ud638\ud658\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uadf8\ub798\uc11c CDI \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc9c1\uc811 \uc5b4\ub178\ud14c\uc774\uc158\uc744 \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd\uc744 \ubcc0\uacbd\ud558\uc5ec \uc77c\uc2dc\uc801\uc73c\ub85c \ubb38\uc81c\ub97c \ud574\uacb0\ud588\uc2b5\ub2c8\ub2e4. \uc0d8\ud50c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code>   void processBean(@Observes ProcessBean processBean) {\r\n      Bean bean = processBean.getBean();\r\n      for (Type type : bean.getTypes()) {\r\n          if (type instanceof Class&lt;?&gt; &amp;&amp; CouchbaseOperations.class.isAssignableFrom((Class&lt;?&gt;) type)) {\r\n              Set qualifiers = bean.getQualifiers().stream()\r\n                      .sorted((e1, e2) -&gt; Integer.compare(e1.hashCode(),\r\n                              e2.hashCode())).collect(Collectors.toSet());\r\n              couchbaseOperationsMap.put(qualifiers, ((Bean) bean));\r\n          }\r\n      }\r\n  }\r\n<\/code><\/pre>\n<p>Wildfly 10 \ub610\ub294 Jboss EAP 7\uc744 \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 \uc774 \ubc84\uadf8\uac00 \ubc1c\uc0dd\ud560 \uac00\ub2a5\uc131\uc774 \uac00\uc7a5 \ub192\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>Spring \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud1b5\ud569<\/h2>\n<p>CouchbaseOperations \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \ud504\ub85c\ub4c0\uc11c\uac00 \uc788\uc73c\uba74 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc0dd\uc131\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ubb34\uac83\ub3c4 \uad6c\ud604\ud560 \ud544\uc694\uac00 \uc5c6\ub294\ub370, \uc774\uac83\uc774 \ubc14\ub85c Spring Data\uc758 \uc7a5\uc810 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4. \uc5ec\ub7ec\ubd84\uc740 \ub2e8\uc9c0 <em>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud398\uc774\uc9d5 \ubc0f \uc815\ub82c \uc800\uc7a5\uc18c<\/em> \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uad00\ub9ac\ud558\ub824\ub294 Entity \ud074\ub798\uc2a4\uc640 \ud0a4 \uc720\ud615\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc774 \uc608\uc81c\uc5d0\uc11c\ub294 . \uc989, \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \uba64\ubc84 \uc5d4\ud2f0\ud2f0\ub97c \uc800\uc7a5\ud560 \ub54c <em>Long<\/em> \ub97c \ud0a4\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>findAll\uc774\ub77c\ub294 \uba54\uc11c\ub4dc\ub97c \ucd94\uac00\ud558\uc5ec <em>\uc815\ub82c<\/em> \uac1d\uccb4\ub97c \ub9e4\uac1c\ubcc0\uc218\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4.<\/p>\n<pre><code>public interface MemberRepository extends CouchbasePagingAndSortingRepository {\r\n  Iterable findAll(Sort sort);\r\n}\r\n<\/code><\/pre>\n<p>\uc774\ub97c \uc704\ud574\uc11c\ub294 <em>MemberListProducer<\/em> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ud2b9\uc815 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. A <em>\uc815\ub82c<\/em> \uac1d\uccb4\ub97c \uc0ac\uc6a9\ud558\uba74 <em>\uc815\ub82c<\/em> \ubc29\ud5a5\uacfc \ud544\ub4dc\uc5d0 \uc0ac\uc6a9\ud560 \ud544\ub4dc\ubfd0\ub9cc \uc544\ub2c8\ub77c <em>\uc815\ub82c<\/em>.<\/p>\n<pre><code>@PostConstruct\r\npublic void retrieveAllMembersOrderedByName() {\r\n    members = memberRepository.findAll(new Sort(Sort.Direction.ASC, \"name\"));\r\n}\r\n<\/code><\/pre>\n<p>\uc774\uc81c \ud574\ub2f9 \ud504\ub85c\uc81d\ud2b8\ub97c JEE \ucee8\ud14c\uc774\ub108\uc5d0 \ubc30\ud3ec\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. Wildfly\uc640 \uc774 \ucf54\ub4dc\uc758 \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 <a href=\"https:\/\/github.com\/ldoguin\/wildfly-quickstart-spring-data\">\uae43\ud5c8\ube0c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac<\/a>\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>MVN WILDFLY:\ubc30\ud3ec<\/code> \ub97c \ud074\ub9ad\ud558\uace0 \ub2e4\uc74c URL\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4: https:\/\/localhost:8080\/wildfly-springdata.<\/p>\n<p>\ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uac70\ub098 \uc81c\uc548 \uc0ac\ud56d\uc774 \uc788\uc73c\uba74 \uc544\ub798 \ub313\uae00 \uc139\uc158\uc5d0 \uc54c\ub824\uc8fc\uc138\uc694!<\/p>","protected":false},"excerpt":{"rendered":"<p>If you are in the JEE space and want a modern data management layer for your NoSql applications, you might find yourself quickly limited. There are some interesting projects like Hibernate OGM or Deltaspike&#8216;s Data module but none of them [&hellip;]<\/p>","protected":false},"author":49,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1818],"tags":[],"ppma_author":[9023],"class_list":["post-2310","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using Spring Data Couchbase in a CDI Application - 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\/using-spring-data-couchbase-in-a-cdi-application\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Spring Data Couchbase in a CDI Application\" \/>\n<meta property=\"og:description\" content=\"If you are in the JEE space and want a modern data management layer for your NoSql applications, you might find yourself quickly limited. There are some interesting projects like Hibernate OGM or Deltaspike&#8216;s Data module but none of them [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/using-spring-data-couchbase-in-a-cdi-application\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-27T08:14:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-22T16:42:00+00:00\" \/>\n<meta name=\"author\" content=\"Laurent Doguin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ldoguin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"unstructured.io\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Using Spring Data Couchbase in a CDI Application\",\"datePublished\":\"2016-06-27T08:14:12+00:00\",\"dateModified\":\"2023-09-22T16:42:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/\"},\"wordCount\":505,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Java\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/\",\"name\":\"Using Spring Data Couchbase in a CDI Application - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-06-27T08:14:12+00:00\",\"dateModified\":\"2023-09-22T16:42:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#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\/using-spring-data-couchbase-in-a-cdi-application\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Spring Data Couchbase in a CDI Application\"}]},{\"@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\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\",\"name\":\"Laurent Doguin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"caption\":\"Laurent Doguin\"},\"description\":\"Laurent is a nerdy metal head who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/ldoguin\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1985-06-07\",\"gender\":\"male\",\"award\":[\"Devoxx Champion\",\"Couchbase Legend\"],\"knowsAbout\":[\"Java\"],\"knowsLanguage\":[\"English\",\"French\"],\"jobTitle\":\"Director Developer Relation & Strategy\",\"worksFor\":\"Couchbase\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/laurent-doguin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Using Spring Data Couchbase in a CDI Application - 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\/using-spring-data-couchbase-in-a-cdi-application\/","og_locale":"ko_KR","og_type":"article","og_title":"Using Spring Data Couchbase in a CDI Application","og_description":"If you are in the JEE space and want a modern data management layer for your NoSql applications, you might find yourself quickly limited. There are some interesting projects like Hibernate OGM or Deltaspike&#8216;s Data module but none of them [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/using-spring-data-couchbase-in-a-cdi-application\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-06-27T08:14:12+00:00","article_modified_time":"2023-09-22T16:42:00+00:00","author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Using Spring Data Couchbase in a CDI Application","datePublished":"2016-06-27T08:14:12+00:00","dateModified":"2023-09-22T16:42:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/"},"wordCount":505,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Java"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/","url":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/","name":"Using Spring Data Couchbase in a CDI Application - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-06-27T08:14:12+00:00","dateModified":"2023-09-22T16:42:00+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/using-spring-data-couchbase-in-a-cdi-application\/#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\/using-spring-data-couchbase-in-a-cdi-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Spring Data Couchbase in a CDI Application"}]},{"@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\/c0aa9b8f1ed51b7a9e2f7cb755994a5e","name":"\ub85c\ub791 \ub3c4\uadc4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071","url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","caption":"Laurent Doguin"},"description":"Laurent\ub294 \ud30c\ub9ac\uc5d0 \uc0ac\ub294 \uad34\uc9dc \uae08\uc18d\uacf5\ud559\ub3c4\uc785\ub2c8\ub2e4. \uc8fc\ub85c Java\ub85c \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 AsciiDoc\uc73c\ub85c \uad6c\uc870\ud654\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc791\uc131\ud558\uba70 \ub370\uc774\ud130, \ub9ac\uc561\ud2f0\ube0c \ud504\ub85c\uadf8\ub798\ubc0d \ubc0f \uae30\ud0c0 \uc720\ud589\uc5b4\uc5d0 \ub300\ud574 \uc790\uc8fc \uc774\uc57c\uae30\ud569\ub2c8\ub2e4. \ub610\ud55c Clever Cloud\uc640 Nuxeo\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\ub85c \ud65c\ub3d9\ud558\uba70 \ud574\ub2f9 \ucee4\ubba4\ub2c8\ud2f0\uac00 \ub354 \ud06c\uace0 \uac15\ub825\ud558\uac8c \uc131\uc7a5\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uc2dc\uac04\uacfc \uc804\ubb38\uc131\uc744 \ubc14\ucce4\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc5d0\uc11c \uac1c\ubc1c\uc790 \uad00\uacc4\ub97c \uc6b4\uc601\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/x.com\/ldoguin"],"honorificPrefix":"Mr","birthDate":"1985-06-07","gender":"male","award":["Devoxx Champion","Couchbase Legend"],"knowsAbout":["Java"],"knowsLanguage":["English","French"],"jobTitle":"Director Developer Relation & Strategy","worksFor":"Couchbase","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/laurent-doguin\/"}]}},"authors":[{"term_id":9023,"user_id":49,"is_guest":0,"slug":"laurent-doguin","display_name":"Laurent Doguin","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","author_category":"","last_name":"Doguin","first_name":"Laurent","job_title":"","user_url":"","description":"Laurent\ub294 \ud30c\ub9ac\uc5d0 \uc0ac\ub294 \uad34\uc9dc \uae08\uc18d\uacf5\ud559\ub3c4\uc785\ub2c8\ub2e4. \uc8fc\ub85c Java\ub85c \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 AsciiDoc\uc73c\ub85c \uad6c\uc870\ud654\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc791\uc131\ud558\uba70 \ub370\uc774\ud130, \ub9ac\uc561\ud2f0\ube0c \ud504\ub85c\uadf8\ub798\ubc0d \ubc0f \uae30\ud0c0 \uc720\ud589\uc5b4\uc5d0 \ub300\ud574 \uc790\uc8fc \uc774\uc57c\uae30\ud569\ub2c8\ub2e4. \ub610\ud55c Clever Cloud\uc640 Nuxeo\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\ub85c \ud65c\ub3d9\ud558\uba70 \ud574\ub2f9 \ucee4\ubba4\ub2c8\ud2f0\uac00 \ub354 \ud06c\uace0 \uac15\ub825\ud558\uac8c \uc131\uc7a5\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uc2dc\uac04\uacfc \uc804\ubb38\uc131\uc744 \ubc14\ucce4\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc5d0\uc11c \uac1c\ubc1c\uc790 \uad00\uacc4\ub97c \uc6b4\uc601\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2310","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\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2310"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2310\/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=2310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2310"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}