{"id":8407,"date":"2020-04-13T00:33:48","date_gmt":"2020-04-13T07:33:48","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8407"},"modified":"2025-06-13T17:21:46","modified_gmt":"2025-06-14T00:21:46","slug":"flexible-query-indexing-for-flexible-json-model","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/flexible-query-indexing-for-flexible-json-model\/","title":{"rendered":"\uc720\uc5f0\ud55c JSON \ubaa8\ub378\uc744 \uc704\ud55c \uc720\uc5f0\ud55c \ucffc\ub9ac \ubc0f \uc778\ub371\uc2f1."},"content":{"rendered":"<blockquote>\n<h4>JSON \ud53c\ud074\uc5d0 \uc788\uc744 \ub54c\ub294 N1QL\uc744 \uc0ac\uc6a9\ud558\uc138\uc694. - Confucius<\/h4>\n<\/blockquote>\n<p>JSON \ub370\uc774\ud130 \ubaa8\ub378\uc758 \uacbd\uc6b0, \ub300\ub7b5\uc801\uc73c\ub85c \uceec\ub809\uc158\uc744 \ud14c\uc774\ube14\ub85c, JSON \ubb38\uc11c\ub97c \ube44\uc815\uaddc\ud654\ub41c \ud589\uc73c\ub85c, \ud544\ub4dc \uc774\ub984\uc744 \uc5f4\ub85c \uc0dd\uac01\ud558\ub77c\ub294 \uc870\uc5b8\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubaa8\ub4e0 \uac83\uc740 \uad8c\uc7a5 \uc0ac\ud56d\uc744 \uc5c4\uaca9\ud558\uac8c \uc900\uc218\ud558\ub294 \uacbd\uc6b0 Couchbase \ubc0f MongoDB\uc640 \uac19\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc801\uc6a9\ub429\ub2c8\ub2e4. <span style=\"font-weight: 400\">\uc0ac\uc6a9\uc790\uac00 \ub2e8\uc21c\ud788 \ud0a4-\uac12 \uc30d \ubaa8\ub378\uc744 \ub530\ub974\uc9c0 \uc54a\ub294 \ub370\uc5d0\ub294 \uc5ec\ub7ec \uac00\uc9c0 \uc774\uc720\uac00 \uc788\uc2b5\ub2c8\ub2e4. <\/span><i><span style=\"font-weight: 400\">\ud56d\uc0c1 <\/span><\/i><span style=\"font-weight: 400\">\uc8fc\uc694 \uc774\uc720\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">JSON\uc740 <a href=\"https:\/\/dzone.com\/articles\/keep-calm-and-json\">\ub108\ubb34 \uc7a5\ud669\ud55c<\/a>.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ud0a4\uac00 \ub3d9\uc801\uc778 \ub9f5\/\ud574\uc2dc\ub9f5 \ub370\uc774\ud130 \uad6c\uc870\ub97c \ubcc0\ud658\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\ud544\ub4dc \uc774\ub984\uc774 \uc77c\ubc18\uc801\uc73c\ub85c \ud0c0\uc784\uc2a4\ud0ec\ud504\ub85c \uc778\ucf54\ub529\ub41c \uc2dc\uacc4\uc5f4 \ub370\uc774\ud130\uc785\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/dzone.com\/articles\/keep-calm-and-json\"><span style=\"font-weight: 400\">\uc0ac\uc804 \uae30\ubc18 \uc778\ucf54\ub529<\/span><\/a><\/li>\n<li>\uae30\uc874 \ubb38\uc11c \ud615\uc2dd \ubc0f \ud45c\uc900\uc740 \uc7ac\uc124\uacc4\ub97c \ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ucffc\ub9ac \uc5b8\uc5b4\uac00 \ud574\ub2f9 \uc0c1\ud669\uc744 \ucc98\ub9ac\ud558\uc9c0 \ubabb\ud558\uba74 \uc815\uad50\ud55c \uc7ac\uc124\uacc4\ub97c \uac70\uccd0\uc57c \ud569\ub2c8\ub2e4.  \ub2e8\uc21c\ud788 \uc815\ubcf4\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \uac83\ubfd0\ub9cc \uc544\ub2c8\ub77c <span style=\"font-weight: 400\">JSON\uc5d0 \ub300\ud55c \ucffc\ub9ac\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ub9cc\ub4e4\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud558\ub098\uc694? <\/span><span style=\"font-weight: 400\">\uc0c9\uc778\ud574\uc57c \ud560 \ud544\ub4dc\uc758 \uc774\ub984\uc870\ucc28 \ubaa8\ub974\uc2dc\ub098\uc694? <\/span><span style=\"font-weight: 400\"> \ub2e4\ud589\ud788\ub3c4 Couchbase N1QL\uc5d0\ub294 \uc720\uc5f0\ud55c \uba54\ud0c0\ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \ucffc\ub9ac \ubc0f \uc778\ub371\uc2a4 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4. <\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774\ub7ec\ud55c \uc0ac\uc6a9 \uc0ac\ub840\ub97c \uace0\ub824\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h4>\uc0ac\uc6a9 \uc0ac\ub840 1: \uac00\uce58 \ud601\uc2e0.<\/h4>\n<p>\ub2e4\uc74c\uc740 JSON \ubb38\uc11c \uc0d8\ud50c\uc785\ub2c8\ub2e4.<\/p>\n<pre title=\"JSON \ubb38\uc11c \uc0d8\ud50c\" class=\"theme:dark-terminal font-size:17 line-height:20 lang:js decode:true\">{\r\n    \"cname\": \"Jane Smith\",\r\n    \"dob\" : \"1990-01-30\",\r\n    \"phones\" : [\r\n    \"+1 510-523-3529\", \"+1 650-392-4923\"\r\n    ],\r\n    \"billing\": [\r\n      {\r\n        \"type\": \"visa\",\r\n        \"cardnum\": \"5827-2842-2847-3909\",\r\n        \"expiry\": \"2019-03\"\r\n      }, \r\n      {\r\n        \"type\": \"master\",\r\n        \"cardnum\": \"6274-2542-5847-3949\",\r\n        \"expiry\": \"2018-12\"\r\n      }\r\n    ]\r\n}\r\n<\/pre>\n<p><span style=\"font-weight: 400\">JSON \ub370\uc774\ud130 \ubaa8\ub378\uc740 \uac04\ub2e8\ud788 \ud0a4-\uac12 \uc30d\uc758 \uc9d1\ud569\uc73c\ub85c \uc124\uba85\ub429\ub2c8\ub2e4.  \uac01 \ud0a4\ub294 \ubb38\uc790\uc5f4\uc774\uba70, \ud574\ub2f9 \ud0a4\uc758 \uacc4\uce35 \uc218\uc900\uacfc \uac12\uc774 \uc2a4\uce7c\ub77c, \uac1d\uccb4 \ub610\ub294 \ubc30\uc5f4\uc77c \uc218 \uc788\ub2e4\ub294 \uc810\uc5d0\uc11c \uace0\uc720\ud569\ub2c8\ub2e4.  \uc5c4\uaca9\ud55c \uc815\uc758\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/tools.ietf.org\/id\/draft-handrews-json-schema-00.html\"><span style=\"font-weight: 400\">\uc5ec\uae30<\/span><\/a><span style=\"font-weight: 400\">. JSON\uc740 \ub610\ud55c \uc790\uccb4 \uc124\uba85\uc774 \uac00\ub2a5\ud558\uae30 \ub54c\ubb38\uc5d0 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/couchbase-for-oracle-developers-part-4-data-types\/\"><span style=\"font-weight: 400\">\ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubb38\uc11c \ubaa8\ub378<\/span><\/a><span style=\"font-weight: 400\">. \ubaa8\ub4e0 \uace0\uac1d\uc774 \uace0\uc815\ub41c \uc804\ud654\ubc88\ud638\ub098 \uc790\ub3d9\ucc28 \ub610\ub294 \uae30\ud0c0 \uc720\ud615\uc758 \uc18d\uc131\uc744 \ubcf4\uc720\ud560 \ud544\uc694\ub294 \uc5c6\uc2b5\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc704\uc758 \ub3d9\uc77c\ud55c \uc815\ubcf4\ub97c \uc815\ubcf4 \uc190\uc2e4 \uc5c6\uc774 \uc544\ub798 JSON\uc73c\ub85c \uc7ac\uad6c\uc131\ud560 \uc218 \uc788\uc9c0\ub9cc \uc77c\ubd80 \uc554\uc2dc\uc801 \uc2a4\ud0a4\ub9c8\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:2 lang:js decode:true\">{\r\n    \"Jane Smith\": \"1990-01-30\",\r\n    \"home\": \"+1 510-523-3529\",\r\n    \"office\": \"+1 650-392-4923\",\r\n    \"Billing\": [\r\n      {\r\n        \"visa\": \"5827-2842-2847-3909\",\r\n        \"expiry\": \"2019-03\"\r\n      }, \r\n      {\r\n        \"master\": \"6274-2542-5847-3949\",\r\n        \"expiry\": \"2018-12\"\r\n      }\r\n    ]\r\n}\r\n<\/pre>\n<p><span style=\"font-weight: 400\">\ub2e8\uc21c\ud788 \ubb38\uc11c\ub97c \ub123\uace0 \uc124\uc815\ud558\ub294 \uac83\uc774\ub77c\uba74 \uc774 \ubaa8\ub4e0 \uac83\uc774 \uad1c\ucc2e\uc2b5\ub2c8\ub2e4.  JSON\uc758 \uad6c\uc870\uac00 \ubb34\uc5c7\uc774\ub4e0 \uc0c1\uad00\uc5c6\uc2b5\ub2c8\ub2e4. \ub2e8\uc21c\ud788 \uc55e\ub4a4\ub85c \uc624\uac00\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc774\uc81c \uc774\uac83\uc774 \ucffc\ub9ac\uc5d0 \uc5b4\ub5a4 \uc601\ud5a5\uc744 \ubbf8\uce58\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true crayon-inline\">Q1: SELECT * FROM customers WHERE cxname = \u201cJane Smith\u201d; <\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc0c8 JSON \ubaa8\ub378\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud544\ub4dc \uc774\ub984\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. <strong>cxname<\/strong>\u00a0\uc5ec\uae30\ub97c \ud074\ub9ad\ud558\uc138\uc694.<\/span><\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\">Q2: SELECT p FROM people p \r\nWHERE ANY o IN object_names(p) SATISFIES o = \"Jane Smith\" END<\/pre>\n<p><span style=\"font-weight: 400\">\ub9c8\ubc95\uc758 \ud798 <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/objectfun.html#object_pairsexpression\"><span style=\"font-weight: 400\">object_pairs()<\/span><\/a><span style=\"font-weight: 400\"> \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc2dc\ub098\uc694?  \uc774 \ud568\uc218\ub294 JSON {\"key\":\"value\"} \uc30d\uc744 \uc774\ub984-\uac12 \uc30d\uc758 \ubc30\uc5f4\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4.  \ub2e4\uc74c\uc740 \uc608\uc81c\uc785\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 top-margin:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\">SELECT OBJECT_NAMES({\"Jane Smith\": \"1990-01-30\", \"home\": \"+1 510-523-3529\"})\r\n\r\n    \"$1\": [\r\n      \"Jane Smith\",\r\n      \"home\"\r\n    ]\r\n  }\r\n<\/pre>\n<p>OBJECT_NAMES() \ud568\uc218\ub294 \ud0a4(\uc5ec\uae30\uc11c\ub294 \"Jane Smith\")\ub97c \ucd94\ucd9c\ud558\uc5ec \uac12\uc73c\ub85c \ubc18\ud658\ud55c \ub2e4\uc74c \uc778\ub371\uc2f1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud568\uc218\ub294 \ud558\ub098\uc758 \uac12\uc774 \uc544\ub2c8\ub77c '\ud0a4 \uc774\ub984'\uc758 \ubc30\uc5f4\uc744 \uac12\uc73c\ub85c \ubc18\ud658\ud558\ubbc0\ub85c \ubc30\uc5f4 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4.\u00a0 <span style=\"font-weight: 400\">\ucffc\ub9ac Q1\uacfc Q2\ub294 \uac01\uac01\uc758 \ub370\uc774\ud130 \ubaa8\ub378\uc5d0 \ub300\ud574 \ub3d9\uc77c\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4.  \ud558\uc9c0\ub9cc \uac01 \ucffc\ub9ac\uac00 \ubc00\ub9ac\ucd08 \ub2e8\uc704\ub85c \uc2e4\ud589\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">1\ubd84\uae30\uc758 \uacbd\uc6b0, cxname\uc5d0 \uc778\ub371\uc2a4\ub97c \uc0dd\uc131\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/span><\/p>\n<p><span class=\"theme:dark-terminal font-size:17 line-height:20 lang:mysql decode:true crayon-inline\">CREATE INDEX ix_cxname ON customers(cxname)<\/span><\/p>\n<p><span style=\"font-weight: 400\">2\ubd84\uae30\uc758 \uacbd\uc6b0\u00a0\u00a0<\/span><\/p>\n<p><span class=\"theme:dark-terminal font-size:17 line-height:20 lang:mysql decode:true crayon-inline\">CREATE INDEX ix_people ON people(DISTINCT OBJECT_NAMES(self))<\/span><\/p>\n<p>\uc774 \uc9c0\uc218\ub97c \uc0ac\uc6a9\ud558\uba74 2\ubd84\uae30\uc5d0\ub294 \uc774 \uc9c0\uc218\ub97c \uc0ac\uc6a9\ud558\ub294 \uc694\uae08\uc81c\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:js decode:true\">        {\r\n            \"#operator\": \"DistinctScan\",\r\n            \"scan\": {\r\n                \"#operator\": \"IndexScan3\",\r\n                \"as\": \"p\",\r\n                \"cardinality\": 1,\r\n                \"cost\": 0.273,\r\n                \"index\": \"ix_people\",\r\n                \"index_id\": \"4a2df8dd85543aa4\",\r\n                \"index_projection\": {\r\n                    \"primary_key\": true\r\n                },\r\n                \"keyspace\": \"people\",\r\n                \"namespace\": \"default\",\r\n                \"spans\": [\r\n                    {\r\n                        \"exact\": true,\r\n                        \"range\": [\r\n                            {\r\n                                \"high\": \"\\\"Jane Smith\\\"\",\r\n                                \"inclusion\": 3,\r\n                                \"low\": \"\\\"Jane Smith\\\"\"\r\n                            }\r\n                        ]\r\n                    }\r\n                ],<\/pre>\n<p>&nbsp;<\/p>\n<h4>\uc0ac\uc6a9 \uc0ac\ub840 2: \ub3d9\uc801 \ud0a4 \uc774\ub984.<\/h4>\n<p>\uc774 \uc0ac\uc6a9 \uc0ac\ub840\ub294 <span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/t\/indexing-object-with-dynamic-keys-within-a-document\/24526\/2\/\"><span style=\"font-weight: 400\">\ud3ec\ub7fc \uac8c\uc2dc\ubb3c.<\/span><\/a><\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:2 lang:js decode:true\">{\r\n    \"id\": \"05a9b954-bdee-4d7f-9715-8e9e08f8cb75\",\r\n    \"type\": \"article\",\r\n    \"translations\": {\r\n        \"en\": \"Hello\",\r\n        \"de\": \"Hallo\", \r\n        \"fr\": \"Bonjour\",\r\n        \"es\": \"Hola\"\r\n    }\r\n}<\/pre>\n<p><span style=\"font-weight: 400\"><strong>\uc9c8\ubb38:<\/strong> <\/span><span style=\"font-weight: 400\">\ub0b4\uc5d0\uc11c \uac12\uc744 \uc778\ub371\uc2f1\ud558\ub294 \uac00\uc7a5 \uc88b\uc740 \ubc29\ubc95\uc740 \ubb34\uc5c7\uc77c\uae4c\uc694? <\/span><strong>\ubc88\uc5ed<\/strong><span style=\"font-weight: 400\"><strong> \ub3d9\uc801\uc73c\ub85c<\/strong>? \uc989, \ubaa8\ub4e0 \ud0a4\ub97c \uc778\ub371\uc2f1\ud558\ub294 \uc77c\ubc18 \uc778\ub371\uc2a4\uc785\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400\">\ubc88\uc5ed<\/span><span style=\"font-weight: 400\"> \uac1d\uccb4\uc785\ub2c8\ub2e4. <\/span><\/p>\n<p><span style=\"font-weight: 400\">\ub2e8\uc21c\ud788 \ud56d\uc0c1 \uc601\uc5b4 \ubb38\uc11c\ub97c \ucffc\ub9ac\ud574\uc57c \ud558\ub294 \uacbd\uc6b0, \ub2e4\uc74c\uacfc \uac19\uc774 \ud558\uc138\uc694. <\/span><span style=\"font-weight: 400\">\ub2e4\uc74c\uc774 \ud3ec\ud568\ub41c \ubaa8\ub4e0 \ubb38\uc11c\ub97c \ucffc\ub9ac\ud569\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400\">translations.en = \"\uc548\ub155\ud558\uc138\uc694\"<\/span><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\ud56d\uc0c1 \uc601\uc5b4\ub85c \ub41c \ubc88\uc5ed\uc744 \ucc3e\uace0 \uc788\ub2e4\uba74 transactions.en\uc5d0 \uc0c9\uc778\uc744 \uc0dd\uc131\ud558\uba74 \ub429\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\">CREATE INDEX ix_tren ON info(translations.en);\r\nSELECT * FROM info WHERE translation.en = \u201cHello\u201d;<\/pre>\n<p>\ud0a4\uac00 \ub3d9\uc801\uc77c \uacbd\uc6b0 \ub370\uc774\ud130\uc5d0 \uc5b4\ub5a4 \ud2b9\uc815 \uc5b8\uc5b4\uac00 \ud3ec\ud568\ub420\uc9c0, \uc5b4\ub5a4 \uc5b8\uc5b4\uac00 \ucffc\ub9ac\ub420 \uc218 \uc788\ub294\uc9c0 \uc54c \uc218 \uc5c6\uc73c\ubbc0\ub85c \ub458 \ub2e4 \ub3d9\uc801\uc73c\ub85c \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\">\/* Query *\/\r\nSELECT *\r\nFROM info\r\n    WHERE  ANY v IN OBJECT_PAIRS(translations) \r\n            SATISFIES [v.name,v.val] = [\"en\", \"Hello\"] \r\n        END\r\n\r\n\/* Index *\/\r\nCREATE INDEX ix_infoname ON info (\r\n    DISTINCT ARRAY [v.name, v.val ]\r\n    FOR v IN OBJECT_PAIRS(translations) END\r\n)<\/pre>\n<p>\ub2e4\uc74c\uc740 \uc778\ub371\uc2a4\uac00 \uc2e4\uc81c\ub85c \uc120\ud0dd\ub418\uace0 \uc220\uc5b4\uac00 \uc778\ub371\uc2a4 \uc2a4\uce94\uc73c\ub85c \ud478\uc2dc\ub418\ub294\uc9c0 \ud655\uc778\ud558\uae30 \uc704\ud55c \uc124\uba85\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 whitespace-before:2 whitespace-after:2 lang:js decode:true\">        {\r\n            \"#operator\": \"DistinctScan\",\r\n            \"scan\": {\r\n                \"#operator\": \"IndexScan3\",\r\n                \"cardinality\": 0.5,\r\n                \"cost\": 0.1665,\r\n                \"index\": \"ix_infoname\",\r\n                \"index_id\": \"bebbfd22a022fb75\",\r\n                \"index_projection\": {\r\n                    \"primary_key\": true\r\n                },\r\n                \"keyspace\": \"info\",\r\n                \"namespace\": \"default\",\r\n                \"spans\": [\r\n                    {\r\n                        \"exact\": true,\r\n                        \"range\": [\r\n                            {\r\n                                \"high\": \"[\\\"en\\\", \\\"Hello\\\"]\",\r\n                                \"inclusion\": 3,\r\n                                \"low\": \"[\\\"en\\\", \\\"Hello\\\"]\"\r\n                            }\r\n                        ]\r\n                    }\r\n                ],\r\n                \"using\": \"gsi\"\r\n            }\r\n        },<\/pre>\n<p>\uc778\ub371\uc2a4 \uc815\uc758\uac00 \ud3c9\uc18c\ubcf4\ub2e4 \uc870\uae08 \ub354 \ubcf5\uc7a1\ud574 \ubcf4\uc774\ub354\ub77c\ub3c4 \uac71\uc815\ud558\uc9c0 \ub9c8\uc138\uc694.  \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800\uac00 \ub3c4\uc640\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 wrap:true whitespace-before:2 whitespace-after:2 lang:mysql decode:true\">ADVISE SELECT * \r\n       FROM info \r\n       WHERE ANY v IN OBJECT_PAIRS(translations) \r\n                 SATISFIES [v.name,v.val] = [\"en\", \"Hello\"] \r\n       END\r\n\r\n\r\n{\r\n    \"index_statement\": \"CREATE INDEX adv_DISTINCT_object_pairs_translations_name_val ON `info`(DISTINCT ARRAY [`v`.`name`, `v`.`val`] FOR v in object_pairs((`translations`)) END)\",\r\n    \"keyspace_alias\": \"info\",\r\n    \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing.\"\r\n}<\/pre>\n<p>\ud3c9\uac00 \uc911\uc778 \uac01 \ud45c\ud604\uc2dd \uc704\uc5d0 \ud45c\ud604\uc2dd\uc744 \ucd94\uac00\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"theme:dark-terminal font-size:17 line-height:20 wrap:true whitespace-before:2 whitespace-after:2 lang:mysql decode:true\">ADVISE SELECT * \r\n       FROM info \r\n       WHERE ANY v IN OBJECT_PAIRS(translations) \r\n                 SATISFIES [LOWER(v.name),LOWER(v.val)] = [\"en\", \"Hello\"] \r\n       END\r\n\r\n\r\n{\r\n      \"index_statement\": \"CREATE INDEX adv_DISTINCT_object_pairs_translations_lower_name_lower_val ON `info`(DISTINCT ARRAY [lower((`v`.`name`)), lower((`v`.`val`))] FOR v in object_pairs((`translations`)) END)\",\r\n      \"keyspace_alias\": \"info\",\r\n      \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing.\"\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h4><strong>\ub354 \ub9ce\uc740 \uac1c\uccb4 \ud568\uc218<\/strong><\/h4>\n<p>N1QL\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ucd94\uac00 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/objectfun.html\">\uac1d\uccb4<\/a> \ubc0f \uc911\ucca9\ub41c \ub370\uc774\ud130 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubcf5\uc7a1\ud55c \ub370\uc774\ud130 \ubaa8\ub378\uc5d0 \ub3c4\uc6c0\uc744 \ubc1b\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uac1d\uccb4 \ud568\uc218\uc758 \uc804\uccb4 \uc9d1\ud569\uacfc <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/tokenfun.html\">\ud1a0\ud070 \ud568\uc218<\/a>.<\/p>\n<p><b>\ucc38\uc870:<\/b><\/p>\n<ol>\n<li>\uce74\uc6b0\uce58\ubc30 N1QL \uac1d\uccb4 \ud568\uc218 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/objectfun.html\">\ubb38\uc11c<\/a><\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/indexing-arrays.html\">\ubc30\uc5f4 \uc778\ub371\uc2f1\u00a0<\/a><\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/create-right-index-get-right-performance\/\">\uc0c9\uc778 \ube14\ub85c\uadf8<\/a><\/li>\n<\/ol>","protected":false},"excerpt":{"rendered":"<p>Use N1QL when you&#8217;re in a JSON pickle. &#8212; Confucius For the JSON data model, the advice is to think of collections as tables, JSON document as denormalized rows and field names as columns &#8211; roughly. All this holds in [&hellip;]<\/p>","protected":false},"author":55,"featured_media":8408,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,2453,1812],"tags":[1447,1505,1261],"ppma_author":[8929],"class_list":["post-8407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-global-secondary-index","category-n1ql-query","tag-data-modeling","tag-index","tag-json"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Flexible Query &amp; Indexing for Flexible JSON Model. - 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\/flexible-query-indexing-for-flexible-json-model\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flexible Query &amp; Indexing for Flexible JSON Model.\" \/>\n<meta property=\"og:description\" content=\"Use N1QL when you&#8217;re in a JSON pickle. &#8212; Confucius For the JSON data model, the advice is to think of collections as tables, JSON document as denormalized rows and field names as columns &#8211; roughly. All this holds in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/flexible-query-indexing-for-flexible-json-model\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-13T07:33:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:21:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1130\" \/>\n\t<meta property=\"og:image:height\" content=\"755\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Keshav Murthy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rkeshavmurthy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keshav Murthy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/\"},\"author\":{\"name\":\"Keshav Murthy\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\"},\"headline\":\"Flexible Query &amp; Indexing for Flexible JSON Model.\",\"datePublished\":\"2020-04-13T07:33:48+00:00\",\"dateModified\":\"2025-06-14T00:21:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/\"},\"wordCount\":714,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg\",\"keywords\":[\"Data Modeling\",\"Index\",\"JSON\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Global Secondary Index\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/\",\"name\":\"Flexible Query &amp; Indexing for Flexible JSON Model. - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg\",\"datePublished\":\"2020-04-13T07:33:48+00:00\",\"dateModified\":\"2025-06-14T00:21:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg\",\"width\":1130,\"height\":755},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flexible Query &amp; Indexing for Flexible JSON Model.\"}]},{\"@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\/c261644262bf98e146372fe647682636\",\"name\":\"Keshav Murthy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"caption\":\"Keshav Murthy\"},\"description\":\"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.\",\"sameAs\":[\"https:\/\/blog.planetnosql.com\/\",\"https:\/\/x.com\/rkeshavmurthy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/keshav-murthy\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Flexible Query &amp; Indexing for Flexible JSON Model. - 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\/flexible-query-indexing-for-flexible-json-model\/","og_locale":"ko_KR","og_type":"article","og_title":"Flexible Query &amp; Indexing for Flexible JSON Model.","og_description":"Use N1QL when you&#8217;re in a JSON pickle. &#8212; Confucius For the JSON data model, the advice is to think of collections as tables, JSON document as denormalized rows and field names as columns &#8211; roughly. All this holds in [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/flexible-query-indexing-for-flexible-json-model\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-04-13T07:33:48+00:00","article_modified_time":"2025-06-14T00:21:46+00:00","og_image":[{"width":1130,"height":755,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg","type":"image\/jpeg"}],"author":"Keshav Murthy","twitter_card":"summary_large_image","twitter_creator":"@rkeshavmurthy","twitter_misc":{"Written by":"Keshav Murthy","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/"},"author":{"name":"Keshav Murthy","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636"},"headline":"Flexible Query &amp; Indexing for Flexible JSON Model.","datePublished":"2020-04-13T07:33:48+00:00","dateModified":"2025-06-14T00:21:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/"},"wordCount":714,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg","keywords":["Data Modeling","Index","JSON"],"articleSection":["Application Design","Best Practices and Tutorials","Global Secondary Index","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/","url":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/","name":"Flexible Query &amp; Indexing for Flexible JSON Model. - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg","datePublished":"2020-04-13T07:33:48+00:00","dateModified":"2025-06-14T00:21:46+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/pencil.jpg","width":1130,"height":755},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/flexible-query-indexing-for-flexible-json-model\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Flexible Query &amp; Indexing for Flexible JSON Model."}]},{"@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\/c261644262bf98e146372fe647682636","name":"\ucf00\uc0e4\ube0c \uba38\uc2dc","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4","url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","caption":"Keshav Murthy"},"description":"\ucf00\uc0e4\ube0c \uba38\uc2dc\ub294 Couchbase R&amp;D\uc758 \ubd80\uc0ac\uc7a5\uc785\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 MapR, IBM, Informix, Sybase\uc5d0\uc11c \uadfc\ubb34\ud588\uc73c\uba70 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc124\uacc4 \ubc0f \uac1c\ubc1c \ubd84\uc57c\uc5d0\uc11c 20\ub144 \uc774\uc0c1\uc758 \uacbd\ub825\uc744 \uc313\uc558\uc2b5\ub2c8\ub2e4. IBM Informix\uc5d0\uc11c SQL \ubc0f NoSQL R&amp;D \ud300\uc744 \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. Couchbase\uc5d0\uc11c \ub450 \ucc28\ub840\uc758 President's Club \uc0c1\uc744, IBM\uc5d0\uc11c \ub450 \ucc28\ub840\uc758 Outstanding Technical Achievement Award\ub97c \uc218\uc0c1\ud588\uc2b5\ub2c8\ub2e4. \uc778\ub3c4 \ub9c8\uc774\uc18c\ub974 \ub300\ud559\uad50\uc5d0\uc11c \ucef4\ud4e8\ud130 \uacfc\ud559 \ubc0f \uacf5\ud559 \ud559\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc73c\uba70, 11\uac1c\uc758 \ubbf8\uad6d \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uace0 4\uac1c\uc758 \ubbf8\uad6d \ud2b9\ud5c8\ub97c \ucd9c\uc6d0 \uc911\uc785\ub2c8\ub2e4.","sameAs":["https:\/\/blog.planetnosql.com\/","https:\/\/x.com\/rkeshavmurthy"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/keshav-murthy\/"}]}},"authors":[{"term_id":8929,"user_id":55,"is_guest":0,"slug":"keshav-murthy","display_name":"Keshav Murthy","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","author_category":"","last_name":"Murthy","first_name":"Keshav","job_title":"","user_url":"https:\/\/blog.planetnosql.com\/","description":"\ucf00\uc0e4\ube0c \uba38\uc2dc\ub294 Couchbase R&amp;D\uc758 \ubd80\uc0ac\uc7a5\uc785\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 MapR, IBM, Informix, Sybase\uc5d0\uc11c \uadfc\ubb34\ud588\uc73c\uba70 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc124\uacc4 \ubc0f \uac1c\ubc1c \ubd84\uc57c\uc5d0\uc11c 20\ub144 \uc774\uc0c1\uc758 \uacbd\ub825\uc744 \uc313\uc558\uc2b5\ub2c8\ub2e4. IBM Informix\uc5d0\uc11c SQL \ubc0f NoSQL R&amp;D \ud300\uc744 \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. Couchbase\uc5d0\uc11c \ub450 \ubc88\uc758 President's Club \uc0c1\uc744, IBM\uc5d0\uc11c \ub450 \ubc88\uc758 \uc6b0\uc218 \uae30\uc220 \uc5c5\uc801\uc0c1\uc744 \uc218\uc0c1\ud588\uc2b5\ub2c8\ub2e4. \uc778\ub3c4 \ub9c8\uc774\uc18c\ub974 \ub300\ud559\uad50\uc5d0\uc11c \ucef4\ud4e8\ud130 \uacfc\ud559 \ubc0f \uacf5\ud559 \ud559\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc73c\uba70, 10\uac1c\uc758 \ubbf8\uad6d \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uace0 3\uac1c\uc758 \ubbf8\uad6d \ud2b9\ud5c8\ub97c \ucd9c\uc6d0 \uc911\uc785\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8407","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\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=8407"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8407\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/8408"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=8407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=8407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=8407"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=8407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}