{"id":14976,"date":"2023-10-18T12:18:34","date_gmt":"2023-10-18T19:18:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=14976"},"modified":"2025-06-13T20:28:38","modified_gmt":"2025-06-14T03:28:38","slug":"manage-data-sprawl-developers","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/manage-data-sprawl-developers\/","title":{"rendered":"\uac1c\ubc1c\uc790\ub97c \uc704\ud55c \ub370\uc774\ud130 \uc2a4\ud504\ub864 \uad00\ub9ac"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">\uac1c\ubc1c\uc790\uac00 \ub370\uc774\ud130 \uc2a4\ud504\ub808\ub4dc\ub77c\ub294 \uc6a9\uc5b4\ub97c \ub4e4\uc73c\uba74 TCO, ROI \ub4f1\uacfc \uac19\uc740 \ube44\uc988\ub2c8\uc2a4 \uc6a9\uc5b4\ucc98\ub7fc \ub4e4\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubaa8\ub4e0 \uc6a9\uc5b4\ub294 \ubd84\uc11d\uac00\ub098 \uad00\ub9ac\uc790\uc758 \uc601\uc5ed\uc744 \ubc97\uc5b4\ub09c \uac1c\ubc1c\uc790\uc5d0\uac8c\ub294 \ud604\uc2e4\uc801\uc778 \uc6a9\uc5b4\uc785\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc624\ub298\uc740 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \ub370\uc774\ud130 \uc2a4\ud504\ub864\uc758 \ud604\uc2e4\uc5d0 \ub300\ud574 \ub9d0\uc500\ub4dc\ub9ac\uace0\uc790 \ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uadf8\uac83\uc774 \uc6b0\ub9ac \uc5c5\ubb34\uc5d0 \uc5b4\ub5a4 \uc601\ud5a5\uc744 \ubbf8\uce58\ub294\uc9c0.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ub370\uc774\ud130 \uc2a4\ud504\ub864\uc740 \uc5c4\uccad\ub09c \uc591\uc758 \ub370\uc774\ud130\uac00 \ub2e4\uc591\ud55c \ub370\uc774\ud130 \uc800\uc7a5\uc18c\uc5d0 \uc800\uc7a5\ub418\uc5b4 \uc788\ub2e4\ub294 \uac83\uc73c\ub85c \uc694\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac8c\ub2e4\uac00 \uac1c\ubc1c\uc790\ub294 \uc774\ub7ec\ud55c \ub370\uc774\ud130 \uc800\uc7a5\uc18c\uac00 \uc11c\ub85c \uc0c1\ud638 \uc791\uc6a9\ud558\ub3c4\ub85d \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. \ubb3c\ub860 \ub9ce\uc73c\uba74 \ub9ce\uc744\uc218\ub85d \uc88b\uaca0\uc8e0?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc77c\ubc18\uc801\uc73c\ub85c \ub354 \ub192\uc740 \uae08\uc735 \ube44\uc6a9\uacfc \uad00\ub828\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc778\ud504\ub77c<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub77c\uc774\uc120\uc2a4<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ud1b5\ud569<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uad50\uc721<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc6b4\uc601<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc9c0\uc6d0 \ube44\uc6a9<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\uc5ec\ub7ec \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc788\ub294 \ubcc4\ub3c4\uc758 \ud50c\ub7ab\ud3fc\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uc774\uc720\ub85c \uace8\uce6b\uac70\ub9ac\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub3c5\ub9bd\uc801\uc778 \ubc30\ud3ec \ubc0f \uad00\ub9ac<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub2e4\uc591\ud55c \ub370\uc774\ud130 \ubaa8\ub378 \ubc0f \ud504\ub85c\uadf8\ub798\ubc0d \uc778\ud130\ud398\uc774\uc2a4<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc5ec\ub7ec \uc81c\ud488 \uac04 \ud1b5\ud569<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub2e4\uc591\ud55c \uacf5\uae09\uc5c5\uccb4\uc758 \ud2f0\ucf13 \uc9c0\uc6d0<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\uc774\ub85c \uc778\ud574 \ub354 \ub9ce\uc740 \uc2dc\uac04\uacfc \ub178\ub825, \ube44\uc6a9\uc774 \ud544\uc694\ud569\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub77c\uc774\uc120\uc2a4 \ubc0f \uacc4\uc57d<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uac1c\ubc1c\uc790 \ubc0f \uc6b4\uc601\uc790\ub97c \uc704\ud55c \uad50\uc721<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc9c0\uc6d0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 API \ub610\ub294 \ucee4\ub125\ud130 \uad6c\ucd95<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc778\ud504\ub77c \uad6c\ub9e4<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\uc774\ub807\uac8c \ubcf4\uba74 \ub2e4\uc18c \uc554\uc6b8\ud574 \ubcf4\uc774\uc9c0\ub9cc \ub9ce\uc740 \uae30\uc5c5\uc774 \uc77c\uc0c1\uc801\uc73c\ub85c \uc9c1\uba74\ud558\ub294 \uacfc\uc81c\uc785\ub2c8\ub2e4. \ub2e4\uc591\ud55c \ub370\uc774\ud130 \uc6cc\ud06c\ub85c\ub4dc\ubfd0\ub9cc \uc544\ub2c8\ub77c \ud074\ub77c\uc6b0\ub4dc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\uc785\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uad6c\uccb4\uc801\uc778 \uc608\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubb38\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 CRUD, \uce90\uc2f1 \uc800\uc7a5\uc18c\uc758 \uce90\uc2dc, \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uc5d4\uc9c4\uc758 \uac80\uc0c9\uc744 \uc0ac\uc6a9\ud558\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. (<a href=\"https:\/\/github.com\/ldoguin\/datasprawl-couchbase-redis-elastic-mongo\">GitHub \uc18c\uc2a4<\/a>)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc774 \uc2a4\ud0a4\ub9c8\ub97c \uc0b4\ud3b4\ubcf4\uba74 \uae30\ubcf8\uc801\uc73c\ub85c \ubcf4\uc774\ub294 \ubaa8\ub4e0 \ud654\uc0b4\ud45c\ub294 \uac1c\ubc1c\uc790\uac00 \uc0dd\uac01\ud558\uace0 \ucf54\ub529\ud574\uc57c \ud558\ub294 \uc11c\ub85c \ub2e4\ub978 \uc2dc\uc2a4\ud15c \uac04\uc758 \uc0c1\ud638\uc791\uc6a9\uc73c\ub85c \uac04\uc8fc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/image2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14978\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/image2-1024x576.png\" alt=\"\" width=\"900\" height=\"506\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image2-1024x576.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image2-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image2-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image2.png 1280w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\uc5ec\uae30\uc11c\ub294 \uc774\ubca4\ud2b8 \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc0ac\uc6a9\ud558\uc5ec \uce90\uc2dc \ubc0f \uac80\uc0c9 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc790\ub3d9\uc73c\ub85c \ub3d9\uae30\ud654\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc989, 8\uac1c\uc758 \uc0c1\ud638\uc791\uc6a9\uacfc 4\uac1c\uc758 \ub370\uc774\ud130 \uc800\uc7a5\uc18c\ub97c \ud559\uc2b5\ud558\uace0 \uad00\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4. \ubaa8\ub4e0 \uc2a4\ud1a0\uc5b4\uac00 \uc2a4\ud2b8\ub9ac\ubc0d \uc11c\ube44\uc2a4\uc640 \uc5f0\uacb0\ub418\uc5b4 \uc788\uace0 \uc62c\ubc14\ub978 \uc5c5\ub370\uc774\ud2b8\ub97c \ubc1b\ub3c4\ub85d \ud574\uc57c \ud558\ubbc0\ub85c \uc2a4\ud2b8\ub9ac\ubc0d \uc11c\ube44\uc2a4, \uac80\uc0c9, \uce90\uc2dc \ubc0f \ub370\uc774\ud130 \uc2a4\ud1a0\uc5b4\ub97c \uad00\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4. \ub610\ud55c \uce90\uc2dc\ub97c CRUD \uc11c\ube44\uc2a4\uc640 \ud1b5\ud569\ud574\uc57c \ud569\ub2c8\ub2e4(\ub2e4\ub978 \uc11c\ube44\uc2a4\uc640 \ud1b5\ud569\ud558\ub294 \uac83\uc774 \uac00\uc7a5 \uc774\uc0c1\uc801\uc774\uc9c0\ub9cc \uc5ec\uae30\uc11c\ub294 \uac04\ub2e8\ud558\uac8c \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4). \uc694\ucee8\ub300, \ud574\uc57c \ud560 \uc77c\uc774 \ub9ce\uc2b5\ub2c8\ub2e4. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc2a4\ud2b8\ub9ac\ubc0d \uc11c\ube44\uc2a4\ub97c \uc5c6\uc560\uace0 \ub2e4\ub978 \uc11c\ube44\uc2a4\ub97c \uc218\ub3d9\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud558\uba74 \uc774\ub7ec\ud55c \uc0c1\ud638\uc791\uc6a9\uc744 \uc81c\ud55c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ub77c\uc774\uc120\uc2a4, \uc6b4\uc601\ud560 \uac83, \ud559\uc2b5\ud560 \uac83, \ud1b5\ud569\ud560 \uac83\uc774 \ud558\ub098 \uc904\uc5b4\ub4ed\ub2c8\ub2e4. \uc5ec\uc804\ud788 \uc774\uc0c1\uc801\uc774\uc9c0\ub294 \uc54a\uc9c0\ub9cc \ub2e4\uc74c\uacfc \uac19\uc774 \ubcf4\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/image1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14979\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/image1-1024x576.png\" alt=\"\" width=\"900\" height=\"506\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image1-1024x576.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image1-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image1-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image1.png 1280w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">8\uac1c\uc640 4\uac1c\uac00 \uc544\ub2cc 6\uac1c\uc640 3\uac1c\uc758 \ub370\uc774\ud130 \uc800\uc7a5\uc18c\ub85c \uc870\uae08 \ub354 \uac04\ub2e8\ud574\uc84c\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc5ec\uc804\ud788 \uc0c1\ud638\uc791\uc6a9\uc774 \ub9ce\uace0 \uc2a4\ud2b8\ub9ac\ubc0d \ud1b5\ud569\uc758 \uc77c\ubd80\ub294 \uc218\ub3d9\uc73c\ub85c \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4. \ubc18\uba74 \uc774\uc804\uc5d0\ub294 \uae30\uc874 \uc11c\ube44\uc2a4 \uac04\uc758 \uae30\uc874 \ucee4\ub125\ud130\ub97c \ud559\uc2b5\ud558\uace0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 \uc791\uc131\ub41c Java\/Spring Boot \uc0d8\ud50c \ucf54\ub4dc\ub97c \uac04\ub2e8\ud788 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uac1c\ubc1c\uc790\uac00 \ub370\uc774\ud130 \uc800\uc7a5\uc18c\ub85c \uc218\ud589\ud560 \uc218 \uc788\ub294 \uc791\uc5c5\uc744 \ub098\ud0c0\ub0b4\ub294 4\uac00\uc9c0 \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc788\uc2b5\ub2c8\ub2e4. CRUD, \uce90\uc2dc, \ucffc\ub9ac \ubc0f \uac80\uc0c9\uc785\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"nums:false lang:java decode:true\">public interface CRUD {\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0StoredFileDocument read(String id);\r\n\u00a0\u00a0\u00a0\u00a0void create(String id, StoredFileDocument doc);\r\n\u00a0\u00a0\u00a0\u00a0void update(String id, StoredFileDocument doc);\r\n\u00a0\u00a0\u00a0\u00a0void upsert(String id, StoredFileDocument doc);\r\n\u00a0\u00a0\u00a0\u00a0void delete(String id);\r\n}\r\n\r\npublic interface Cache {\u00a0\r\n\u00a0\u00a0\u00a0\u00a0void writeInCache(StoredFileDocument doc);\r\n\u00a0\u00a0\u00a0\u00a0StoredFileDocument readFromCache(String id);\r\n\u00a0\u00a0\u00a0\u00a0void touch(String id);\r\n\u00a0\u00a0\u00a0\u00a0void evict(String id);\r\n}\r\n\r\npublic interface Query {\r\n\u00a0\u00a0\u00a0\u00a0List&lt;Map&lt;String, Object&gt;&gt; query(String whereClause);\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0List&lt;Map&lt;String, Object&gt;&gt; findAll();\r\n}\r\n\r\npublic interface Search {\r\n\u00a0\u00a0\u00a0\u00a0List&lt;Map&lt;String, Object&gt;&gt; search(String term);\r\n\u00a0\u00a0\u00a0\u00a0void index(StoredFileDocument doc);\r\n\u00a0\u00a0\u00a0\u00a0void delete(String id);\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">\uc774 \uae00\uc5d0\uc11c \ubaa8\ub4e0 \ucf54\ub4dc\ub97c \ubcf4\uc5ec\ub4dc\ub9ac\uc9c0\ub294 \uc54a\uace0 \ud765\ubbf8\ub85c\uc6b4 \ubd80\ubd84 \uba87 \uac00\uc9c0\ub9cc \ubcf4\uc5ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">CRUD \uc11c\ube44\uc2a4\uc5d0 \uac80\uc0c9 \ubc0f \uce90\uc2dc \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \ub9c1\ud06c\uac00 \uc788\ub294 \uad6c\uc131\uc785\ub2c8\ub2e4. \ub2e8\uc21c\ud654\ub41c \ubc84\uc804\uc5d0\uc11c\ub294 \uc5b4\ub5a4 \ubaa8\uc2b5\uc778\uc9c0 \uc0b4\ud3b4\ubd05\uc2dc\ub2e4. \uce90\uc2dc \ubc0f \uac80\uc0c9 \uc11c\ube44\uc2a4\ub97c \ud544\uc694\ud55c \ub300\ub85c \uac00\uc838\uc640\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \ubaa8\ub4e0 \uba54\uc11c\ub4dc\uac00 \uc601\ud5a5\uc744 \ubc1b\uc2b5\ub2c8\ub2e4. Read\ub294 \uba3c\uc800 \uce90\uc2dc\ub97c \ucffc\ub9ac\ud558\uace0, \uce90\uc2dc\uc5d0\uc11c \uac1d\uccb4\uac00 \ub9c8\uc9c0\ub9c9\uc73c\ub85c \ubc1c\uacac\ub41c \uc2dc\uac04\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\uac70\ub098 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uac1d\uccb4\ub97c \uac00\uc838\uc640 \uce90\uc2dc\uc5d0 \uc0bd\uc785\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uc0c8\ub85c \uc0dd\uc131, \uc5c5\ub370\uc774\ud2b8 \ub610\ub294 \uc0ad\uc81c\ub41c \ub370\uc774\ud130\uac00 \uce90\uc2dc \ub610\ub294 \uac80\uc0c9 \ub370\uc774\ud130 \uc800\uc7a5\uc18c \uc778\ub371\uc2a4\ub85c \uc804\ud30c\ub418\uc5b4\uc57c \ud558\ubbc0\ub85c \uc0dd\uc131, \uc5c5\ub370\uc774\ud2b8 \ubc0f \uc0ad\uc81c \uba54\uc11c\ub4dc\ub294 \ubaa8\ub450 \uce90\uc2dc \ubc0f \uac80\uc0c9\uc5d0 \uc601\ud5a5\uc744 \uc90d\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"nums:false lang:java decode:true\">@Service\r\n\r\npublic class MongoCRUD implements CRUD {\r\n\u00a0\u00a0\u00a0\u00a0private MongoCollection&lt;StoredFileDocument&gt; collection;\r\n\u00a0\u00a0\u00a0\u00a0private Cache cache;\r\n\u00a0\u00a0\u00a0\u00a0private Search search;\r\n\r\n\u00a0\u00a0\u00a0\u00a0public MongoCRUD(MongoCollection&lt;StoredFileDocument&gt; collection, Cache cache, Search search) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.collection = collection;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.cache = cache;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.search = search;\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public StoredFileDocument read(String id) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0StoredFileDocument doc = cache.readFromCache(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (doc == null) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0doc = collection.find(eq(\"fileId\", id)).first();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cache.writeInCache(doc);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cache.touch(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return doc;\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void create(String id, StoredFileDocument doc) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0doc.setFileId(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0collection.insertOne(doc);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cache.writeInCache(doc);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0search.index(doc);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void update(String id, StoredFileDocument doc) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0collection.findOneAndReplace(eq(\"fileId\", id), doc);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cache.touch(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0search.index(doc);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void upsert(String id, StoredFileDocument doc) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FindOneAndReplaceOptions options = new FindOneAndReplaceOptions().upsert(true);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0collection.findOneAndReplace(eq(\"fileId\", id), doc, options);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cache.touch(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0search.index(doc);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void delete(String id) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0collection.deleteOne(eq(\"fileId\", id));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cache.evict(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0search.delete(id);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n}\r\n\r\n<\/pre>\n<p>Couchbase\ub97c \uc0ac\uc6a9\ud558\uba74 \uc774\uc640 \uac19\uc740 \uc0c1\ud669\uc5d0 \uac00\uae4c\uc6cc\uc9d1\ub2c8\ub2e4:<\/p>\n<pre class=\"nums:false lang:java decode:true\">@Service\r\n@Profile(\"couchbase\")\r\npublic class CouchbaseCRUD implements CRUD {\r\n\u00a0\u00a0\u00a0\u00a0private Collection collection;\r\n\u00a0\u00a0\u00a0\u00a0public CouchbaseCRUD(Collection collection) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.collection = collection;\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public StoredFileDocument read(String id) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0GetResult res = collection.get(id);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return res.contentAs(StoredFileDocument.class);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void create(String id, StoredFileDocument doc) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MutationResult res = collection.insert(id, doc);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void update(String id, StoredFileDocument doc) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MutationResult res = collection.replace(id, doc);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void upsert(String id, StoredFileDocument doc) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MutationResult res = collection.upsert(id, doc);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0@Override\r\n\u00a0\u00a0\u00a0\u00a0public void delete(String id) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MutationResult res = collection.remove(id);\r\n\u00a0\u00a0\u00a0\u00a0}\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">\uce90\uc2dc \ubc0f \uac80\uc0c9 \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \uc885\uc18d\uc131\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc740 \uc774\uc720\ub294 Couchbase\uc5d0 \uc774\ubbf8 \uce90\uc2dc\uc640 \uac80\uc0c9 \uc5d4\uc9c4\uc774 \ud1b5\ud569\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uce90\uc2dc \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud560 \ud544\uc694\ub3c4 \uc5c6\uace0, \uac80\uc0c9 \uc778\ud130\ud398\uc774\uc2a4\uc5d0\uc11c \uc0ad\uc81c \ubc0f \uc0c9\uc778 \ubc29\ubc95\uc744 \uad6c\ud604\ud560 \ud544\uc694\ub3c4 \uc5c6\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 \uac83\uc774 \uc790\ub3d9\ud654\ub418\uace0 \ud1b5\ud569\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ubcf4\ud1b5 \uc81c\uac00 \ub204\uad70\uac00\uc5d0\uac8c \uc774\ub97c \uc124\uba85\ud558\uba74, \ubaa8\ub4e0 \uac83\uc744 \ub2e4 \ud558\ub824\uba74 \uc808\ucda9\uc810\uc744 \ucc3e\uc544\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \uc5bc\ub9c8\ub098 \ub098\uc060\uc9c0\uc5d0 \ub300\ud55c \ub300\ud654\uac00 \uc774\uc5b4\uc9d1\ub2c8\ub2e4. \ubaa8\ub4e0 \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc, \ub2e4\uc911 \ubaa8\ub378, \ub2e4\uc911 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ub300\ud574 \uc774\uc57c\uae30\ud558\uace0 \uc2f6\uc5b4\ub3c4 \ubaa8\ub4e0 \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc774 \ub3d9\uc77c\ud558\uac8c \ub9cc\ub4e4\uc5b4\uc9c0\uac70\ub098 \uc801\uc5b4\ub3c4 \ub3d9\uc77c\ud55c \uc544\ud0a4\ud14d\ucc98\ub97c \uc5fc\ub450\uc5d0 \ub450\uace0 \ub9cc\ub4e4\uc5b4\uc9c0\uc9c0\ub294 \uc54a\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Couchbase\ub294 \uc11c\ub85c \ub2e4\ub978 \uc6cc\ud06c\ub85c\ub4dc\ub97c \ub2f4\ub2f9\ud558\ub294 \uc5ec\ub7ec \uac1c\uc758 \uc11c\ub85c \ub2e4\ub978 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \ubcfc \uc218 \uc788\uc73c\uba70, \ub0b4\ubd80 \uc2a4\ud2b8\ub9ac\ubc0d \uc11c\ube44\uc2a4\ub97c \ud1b5\ud574 \ubaa8\ub450 \ud1b5\ud569\ub429\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 Couchbase\uc758 \ubaa8\ub4e0 \ubd80\ubd84\uc774 \uc790\ub3d9\uc73c\ub85c \ucd5c\uc2e0 \uc0c1\ud0dc\ub85c \uc720\uc9c0\ub418\uace0 \ubaa8\ub4e0 \ubd80\ubd84\uc774 \uc790\uccb4 \ub370\uc774\ud130 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ud2b9\ud654\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uacb0\uad6d, 3\uac1c\uc758 \uc0c1\ud638\uc791\uc6a9\uacfc 1\uac1c\uc758 \ub370\uc774\ud130 \uc800\uc7a5\uc18c\ub97c \uac16\uac8c \ub429\ub2c8\ub2e4.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/image3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14980\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/10\/image3-1024x576.png\" alt=\"\" width=\"900\" height=\"506\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image3-1024x576.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image3-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image3-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/image3.png 1280w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">\uc774 \uc815\ub3c4\uba74 \uc774\ubbf8 \uc0c1\ub2f9\ud788 \uc88b\uc740 \uc77c\uc774\uc9c0\ub9cc, \ud55c \uac00\uc9c0 \ub354 \uc788\uc2b5\ub2c8\ub2e4. \uc800\ud76c \uc11c\ube44\uc2a4\ub294 \ucffc\ub9ac \uc5b8\uc5b4 SQL++\uc5d0 \ud1b5\ud569\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uac01 \ubb38\uc11c\uc5d0 \ub300\ud55c \ub2e4\uc591\ud55c \uad8c\ud55c\uc774 \uc788\ub294 \ubb38\uc11c \ud2b8\ub9ac\ub97c \ubcf4\uc720\ud55c CMS\uac00 \uc788\uace0, \ud2b9\uc815 \uad8c\ud55c \uc9d1\ud569\uc744 \uac00\uc9c4 \uc5f0\uacb0\ub41c \uc0ac\uc6a9\uc790\ub85c \uac80\uc0c9\uc744 \uc2e4\ud589\ud558\ub824\ub294 \ud558\uc704 \ubb38\uc11c\uc5d0\uc11c \uc774\ub7ec\ud55c \uad8c\ud55c\uc744 \uc0c1\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc678\ubd80 \uac80\uc0c9 \uc5d4\uc9c4\uc744 \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 \uc77c\ubc18\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \uc77c\uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uac80\uc0c9 \uc5d4\uc9c4\uc5d0 \uac80\uc0c9 \ucffc\ub9ac \uc2e4\ud589<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ubaa8\ub4e0 \ubb38\uc11c \ucf58\ud150\uce20\uac00 \uc0c9\uc778\ub418\ub294 \uac83\uc740 \uc544\ub2c8\ubbc0\ub85c \ubc18\ud658\ub41c \ubb38\uc11c\uc758 \uc2dd\ubcc4\uc790\ub97c \uc218\uc9d1\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\uc5ec \uc804\uccb4 \ubb38\uc11c\ub97c \uac00\uc838\uc624\uae30<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\ucffc\ub9ac \uc11c\ube44\uc2a4\uac00 JOIN\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0 \ub2e4\ub978 \ucffc\ub9ac\ub97c \uc2e4\ud589\ud558\uc5ec \uc0c1\uc18d\ub41c \uad8c\ud55c\uc744 \uac00\uc838\uc624\uace0 \ubb38\uc11c\ub97c \ud544\ud130\ub9c1\ud558\uc138\uc694.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\ub354 \ubcf5\uc7a1\ud558\uac8c \ub9cc\ub4e4\uace0 \uc2f6\ub2e4\uba74(\uadf8\ub9ac\uace0 \ub354 \ud604\uc2e4\uc801\uc73c\ub85c \ub9cc\ub4e4\uace0 \uc2f6\ub2e4\uba74) \uac01 \ub2e8\uacc4\uc5d0 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uce90\uc2f1 \ub85c\uc9c1\uc744 \ucd94\uac00\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774\ubbf8 \ucda9\ubd84\ud788 \ubcf5\uc7a1\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Couchbase\ub294 \ubaa8\ub4e0 \uc791\uc5c5\uc744 \ud55c \ubc88\uc5d0 \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\ub098\uc758 SQL++ \ucffc\ub9ac\ub85c \uac80\uc0c9\ud558\uace0, \uc6d0\ud558\ub294 \ud544\ub4dc\ub97c \uc120\ud0dd\ud558\uace0, \ub2e4\ub978 \ubb38\uc11c\uc5d0 \uc870\uc778\ud558\uc5ec \uc0ac\uc6a9 \uad8c\ud55c\uc744 \uc815\ub82c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\uc8fc \uac04\ub2e8\ud569\ub2c8\ub2e4. Couchbase\ub294 \uc798 \ud1b5\ud569\ub41c \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc774\uae30 \ub54c\ubb38\uc5d0 \ucffc\ub9ac \uc5b8\uc5b4\ub97c \ud1b5\ud574 \uadf8 \ubaa8\ub4e0 \uae30\ub2a5\uc744 \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uad00\uc2ec\uc774 \uc788\uc73c\uc2dc\ub2e4\uba74 \ub2e4\ub978 \ud3ec\uc2a4\ud305\uc5d0\uc11c \uc790\uc138\ud55c \ub0b4\uc6a9\uc744 \uc18c\uac1c\ud574 \ub4dc\ub9b4 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h2>\ub9c8\ubb34\ub9ac<\/h2>\n<p><span style=\"font-weight: 400;\">\uc624\ub298 \ubc30\uc6b4 \uac83\uc740 \ubb34\uc5c7\uc77c\uae4c\uc694? \uc798 \uc124\uacc4\ub41c \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc744 \uc0ac\uc6a9\ud558\uba74 \ub9ce\uc740 \uc2dc\uac04, \ube44\uc6a9, \ub178\ub825, \uace8\uce6b\uac70\ub9ac\ub97c \uc808\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uacb0\uad6d \uace0\ub824\ud574\uc57c \ud560 \uc0ac\ud56d\uc774 \uc904\uc5b4\ub4e4\uace0, \uc791\uc131\ud574\uc57c \ud560 \ucf54\ub4dc\uac00 \uc904\uc5b4\ub4e4\uc5b4 \uc720\uc9c0 \uad00\ub9ac\ud560 \ucf54\ub4dc\uac00 \uc904\uc5b4\ub4e4\uace0, \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc73c\ub85c \ub354 \ube68\ub9ac \ucd9c\uc2dc\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \ub610\ud55c \ub77c\uc774\uc120\uc2a4, \uad50\uc721, \uaddc\uc815 \uc900\uc218 \ub4f1 \uad00\ub9ac\uc790, \ubd84\uc11d\uac00, \uc0c1\uc0ac, \uc0c1\uc0ac\uc758 \uc0c1\uc0ac\uac00 \uc2e0\uacbd \uc4f0\ub294 \ubaa8\ub4e0 \uc0ac\ud56d\uc744 \uac04\uc18c\ud654\ud558\uace0 \ube44\uc6a9\uc744 \uc808\uac10\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4!<\/span><\/p>\n<ul>\n<li>\ub808\ub4dc\ubabd\ud06c\uc640\uc758 \ub300\ub2f4\uc744 \uc2dc\uccad\ud558\uc138\uc694: <a href=\"https:\/\/redmonk.com\/videos\/what-is-data-sprawl-how-to-leverage-a-platform-to-wrangle-it\/\">\ub370\uc774\ud130 \uc2a4\ud504\ub864\uc774\ub780 \ubb34\uc5c7\uc778\uac00\uc694? \ud50c\ub7ab\ud3fc\uc744 \ud65c\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc2a4\ud504\ub864\uc744 \ud574\uacb0\ud558\ub294 \ubc29\ubc95<\/a><\/li>\n<li>\ub0b4 \ucf54\ub4dc\ub97c \ud655\uc778\ud558\uc138\uc694. <a href=\"https:\/\/github.com\/ldoguin\/datasprawl-couchbase-redis-elastic-mongo\">\ub370\uc774\ud130 \uc2a4\ud504\ub864 \uc608\uc81c<\/a><\/li>\n<li>\ubc29\ubc95\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/services.html\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ube44\uc2a4<\/a> \ub294 \uc6d0\ud65c\ud558\uace0 \uac04\ud3b8\ud558\uac8c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uc0ac\uc6a9\ud574\ubcf4\uc2ed\uc2dc\uc624. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/capella\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uce74\ud3a0\ub77c DBaaS<\/a> \ud14c\uc2a4\ud2b8\ud558\uae30<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" title=\"\ub370\uc774\ud130 \uc2a4\ud504\ub864\uc774\ub780 \ubb34\uc5c7\uc778\uac00\uc694? \ud50c\ub7ab\ud3fc\uc744 \ud65c\uc6a9\ud558\uc5ec \ub370\uc774\ud130 \uc2a4\ud504\ub864\uc744 \ud574\uacb0\ud558\ub294 \ubc29\ubc95\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/BsNafKBPxJU?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>When we developers hear the term data sprawl, it may sound a little bit like a business term like TCO, ROI and the likes. All these terms have a reality for developers, outside of the analyst and manager realm. So [&hellip;]<\/p>\n","protected":false},"author":49,"featured_media":14977,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,2294,2225,1816,9936,1812,2201],"tags":[1580],"ppma_author":[9023],"class_list":["post-14976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-analytics","category-cloud","category-couchbase-server","category-search","category-n1ql-query","category-tools-sdks","tag-data-service"],"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>Managing Data Sprawl for Developers - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Using a well architected Data Platform can save you lots of time, money, effort and headache. Because, in the end, you have less code to write and maintain.\" \/>\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\/manage-data-sprawl-developers\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Managing Data Sprawl for Developers\" \/>\n<meta property=\"og:description\" content=\"Using a well architected Data Platform can save you lots of time, money, effort and headache. Because, in the end, you have less code to write and maintain.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/manage-data-sprawl-developers\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-18T19:18:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:28:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/data-service-sprawl-developer.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Managing Data Sprawl for Developers\",\"datePublished\":\"2023-10-18T19:18:34+00:00\",\"dateModified\":\"2025-06-14T03:28:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/\"},\"wordCount\":1162,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2023\\\/10\\\/data-service-sprawl-developer.png\",\"keywords\":[\"data service\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Couchbase Analytics\",\"Couchbase Capella\",\"Couchbase Server\",\"Search\",\"SQL++ \\\/ N1QL Query\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/\",\"name\":\"Managing Data Sprawl for Developers - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2023\\\/10\\\/data-service-sprawl-developer.png\",\"datePublished\":\"2023-10-18T19:18:34+00:00\",\"dateModified\":\"2025-06-14T03:28:38+00:00\",\"description\":\"Using a well architected Data Platform can save you lots of time, money, effort and headache. Because, in the end, you have less code to write and maintain.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2023\\\/10\\\/data-service-sprawl-developer.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2023\\\/10\\\/data-service-sprawl-developer.png\",\"width\":1200,\"height\":628,\"caption\":\"Reducing data sprawl for application developers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/manage-data-sprawl-developers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing Data Sprawl for Developers\"}]},{\"@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:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g12929ce99397769f362b7a90d6b85071\",\"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":"Managing Data Sprawl for Developers - The Couchbase Blog","description":"\uc798 \uc124\uacc4\ub41c \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc744 \uc0ac\uc6a9\ud558\uba74 \ub9ce\uc740 \uc2dc\uac04, \ube44\uc6a9, \ub178\ub825, \uace8\uce6b\uac70\ub9ac\ub97c \uc808\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uacb0\uad6d \uc791\uc131\ud558\uace0 \uc720\uc9c0 \uad00\ub9ac\ud574\uc57c \ud560 \ucf54\ub4dc\uac00 \uc904\uc5b4\ub4e4\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/manage-data-sprawl-developers\/","og_locale":"ko_KR","og_type":"article","og_title":"Managing Data Sprawl for Developers","og_description":"Using a well architected Data Platform can save you lots of time, money, effort and headache. Because, in the end, you have less code to write and maintain.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/manage-data-sprawl-developers\/","og_site_name":"The Couchbase Blog","article_published_time":"2023-10-18T19:18:34+00:00","article_modified_time":"2025-06-14T03:28:38+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/data-service-sprawl-developer.png","type":"image\/png"}],"author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Managing Data Sprawl for Developers","datePublished":"2023-10-18T19:18:34+00:00","dateModified":"2025-06-14T03:28:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/"},"wordCount":1162,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/data-service-sprawl-developer.png","keywords":["data service"],"articleSection":["Application Design","Best Practices and Tutorials","Couchbase Analytics","Couchbase Capella","Couchbase Server","Search","SQL++ \/ N1QL Query","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/","url":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/","name":"Managing Data Sprawl for Developers - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/data-service-sprawl-developer.png","datePublished":"2023-10-18T19:18:34+00:00","dateModified":"2025-06-14T03:28:38+00:00","description":"\uc798 \uc124\uacc4\ub41c \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc744 \uc0ac\uc6a9\ud558\uba74 \ub9ce\uc740 \uc2dc\uac04, \ube44\uc6a9, \ub178\ub825, \uace8\uce6b\uac70\ub9ac\ub97c \uc808\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uacb0\uad6d \uc791\uc131\ud558\uace0 \uc720\uc9c0 \uad00\ub9ac\ud574\uc57c \ud560 \ucf54\ub4dc\uac00 \uc904\uc5b4\ub4e4\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/data-service-sprawl-developer.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2023\/10\/data-service-sprawl-developer.png","width":1200,"height":628,"caption":"Reducing data sprawl for application developers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/manage-data-sprawl-developers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Managing Data Sprawl for Developers"}]},{"@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:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g12929ce99397769f362b7a90d6b85071","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\/"}]}},"acf":[],"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","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/14976","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=14976"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/14976\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/14977"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=14976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=14976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=14976"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=14976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}