{"id":13556,"date":"2022-07-13T10:09:45","date_gmt":"2022-07-13T17:09:45","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=13556"},"modified":"2025-06-13T17:20:45","modified_gmt":"2025-06-14T00:20:45","slug":"from-n1ql-to-javascript-and-back-part-1-introduction","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/from-n1ql-to-javascript-and-back-part-1-introduction\/","title":{"rendered":"N1QL\uc5d0\uc11c \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\uae4c\uc9c0 - 1\ubd80: \uc18c\uac1c"},"content":{"rendered":"<p><b>Couchbase Server 7.0\uc5d0 \ub3c4\uc785\ub41c \uc5ec\ub7ec \uac00\uc9c0 \ud6cc\ub96d\ud55c \uae30\ub2a5 \uc911\uc5d0\uc11c<\/b><span style=\"font-weight: 400;\">\uc774\ud6c4 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \ub354 \ud070 \uc601\ud5a5\uc744 \ubbf8\uce60 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4: N1QL \uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218\uc785\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">\uacfc\uac70\ub97c \ud55c\ub208\uc5d0 \uc0b4\ud3b4\ubcf4\uae30<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">N1QL\uc740 \uc120\uc5b8\uc801 \uc5b8\uc5b4\ub85c, \uc694\uccad\uc740 \ub2e8\uc21c\ud788 \ub2e4\uc74c\uc744 \ub098\ud0c0\ub0b4\ub294 \uac83\uc785\ub2c8\ub2e4. <\/span><i><span style=\"font-weight: 400;\">\ubb34\uc5c7<\/span><\/i><span style=\"font-weight: 400;\"> \ub97c \uc9c0\uc815\ud560 \ud544\uc694 \uc5c6\uc774 \uc0ac\uc6a9\uc790\uac00 \ud544\uc694\ub85c\ud558\ub294 <\/span><i><span style=\"font-weight: 400;\">\uc5b4\ub5bb\uac8c<\/span><\/i><span style=\"font-weight: 400;\"> \uc694\uccad\uc744 \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc774\ub294 \ub9de\ucda4\ud615 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc774 \ubd80\uc871\ud558\ub2e4\ub294 \ud55c\uacc4\uac00 \uc788\uae34 \ud558\uc9c0\ub9cc \ucffc\ub9ac \uc5b8\uc5b4\uc5d0 \ub9e4\uc6b0 \ud6a8\uacfc\uc801\uc774\uc5c8\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218\ub294 \uc774\ub7ec\ud55c \uaca9\ucc28\ub97c \ud574\uc18c\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 7.0\uc758 UDF\uc5d0 \ub300\ud55c \uc804\uccb4 \ubcf4\uae30\ub294 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/n1ql-user-defined-functions\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\uc774 \ube14\ub85c\uadf8<\/span><\/a><span style=\"font-weight: 400;\">\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc55e\ub4a4\ub85c \ub118\uc5b4\uac00\ub294 \uac83\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574 \uba87 \uac00\uc9c0 \uc911\uc694\ud55c \uc0ac\ud56d\uc744 \uac04\ub2e8\ud788 \uc54c\ub824\ub4dc\ub9ac\uaca0\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;\">UDF\ub294 \uc5ec\ub7ec \uc5b8\uc5b4\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \ud2b9\ud788 JavaScript\uc5d0 \uad00\uc2ec\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">UDF\ub294 \ub450 \uac00\uc9c0 \ub9db\uc73c\ub85c \uc81c\uacf5\ub418\uba70, \ud074\ub7ec\uc2a4\ud130 \uc640\uc774\ub4dc(\ub610\ub294 <\/span><i><span style=\"font-weight: 400;\">\uae00\ub85c\ubc8c<\/span><\/i><span style=\"font-weight: 400;\"> UDF), \uc544\uc9c1 \uceec\ub809\uc158\uc744 \uc218\uc6a9\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud558\uba70, \ubc94\uc704 \ubc14\uc6b4\ub4dc(\ub610\ub294 <\/span><i><span style=\"font-weight: 400;\">\ubc94\uc704<\/span><\/i><span style=\"font-weight: 400;\"> UDF)\ub97c \uc0ac\uc6a9\ud558\uba74 \uc2a4\ucf54\ud504\ub2f9 \ud558\ub098\uc529, \uc7a0\uc7ac\uc801\uc73c\ub85c \ub2e4\ub978 \ub85c\uc9c1\uc744 \uac00\uc9c4 \ub3d9\uc77c\ud55c UDF\uc758 \ubcf5\uc0ac\ubcf8\uc744 \uc5ec\ub7ec \uac1c \uac00\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">N1QL\uc740 UDF \uc624\ubc84\ub85c\ub529(\ub3d9\uc77c\ud55c \uc774\ub984\uacfc \ub2e4\ub978 \uc11c\uba85\uc744 \uac00\uc9c4 \uc5ec\ub7ec \uac1c\uc758 UDF\uac00 \uac01\uac01 \uc785\ub825\uc5d0 \ud2b9\uc815\ud55c \ub85c\uc9c1\uc744 \uc9c0\uc6d0\ud558\ub294 \uac83)\uc744 \uc81c\uacf5\ud558\uc9c0 \uc54a\uc9c0\ub9cc, \uac00\ubcc0 UDF\ub97c \uc0ac\uc6a9\ud558\uba74 \ub3d9\uc77c\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">N1QL UDF\ub294 N1QL \ucffc\ub9ac\uc758 \uc18c\uc2a4\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ub3d9\uc801 \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 UDF<\/span><\/h3>\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;\">\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub294 <\/span><i><span style=\"font-weight: 400;\">\uc678\ubd80<\/span><\/i><span style=\"font-weight: 400;\"> \uc5b8\uc5b4\ub97c \uc0ac\uc6a9\ud558\ubbc0\ub85c JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \uad00\ub9ac \ubc0f \uc2e4\ud589\uc774 N1QL \uc11c\ube44\uc2a4\uc640\ub294 \ub2e4\ub978 \uc5d4\ud2f0\ud2f0\uc5d0 \uc704\uc784\ub429\ub2c8\ub2e4. \uc774 \uc5d4\ud2f0\ud2f0\ub294<\/span><i><span style=\"font-weight: 400;\"> jsevaluator.<\/span><\/i><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ud568\uc218\ub97c \ub9cc\ub4dc\ub294 \uacfc\uc815\uc740 \ub450 \ub2e8\uacc4\ub85c \uc9c4\ud589\ub429\ub2c8\ub2e4. \uba3c\uc800 <\/span><i><span style=\"font-weight: 400;\">jsevaluator<\/span><\/i><span style=\"font-weight: 400;\"> \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0dd\uc131\ud55c \ub2e4\uc74c \uc774\ub97c \ucc38\uc870\ud558\uc5ec N1QL UDF\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc678\ubd80\uc5d0\uc11c \ucf54\ub4dc\ub97c \uc720\uc9c0 \uad00\ub9ac\ud560 \ub54c\uc758 \ubd80\uc218\uc801\uc778 \uc774\uc810 \uc911 \ud558\ub098\ub294 \uc5ec\ub7ec UDF\uac00 \ub3d9\uc77c\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ub3d9\uc77c\ud55c \ucf54\ub4dc\ub97c \uacf5\uc720\ud560 \uc218 \uc788\uace0 \ucf54\ub4dc\uac00 \ubcc0\uacbd\ub418\uba74 \ubaa8\ub450 \ub3d9\uc2dc\uc5d0 \uc5c5\ub370\uc774\ud2b8\ub41c\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4. \uacf5\uc720 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \ubc94\uc704 \uc2a4\ud0a4\ub9c8\uc640 \ub2ec\ub9ac \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ubcf4\uc870\ub97c \ub9de\ucd9c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">7.0 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 <\/span><i><span style=\"font-weight: 400;\">jsevaluator<\/span><\/i><span style=\"font-weight: 400;\"> \ub294 \uc77c\ubc18 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">\ub204\ub77d\ub41c \ubd80\ubd84<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uc55e\uc11c \uc0b4\ud3b4\ubcf8 \uac83\ucc98\ub7fc \ub3d9\uc77c\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucffc\ub9ac \uc11c\ube44\uc2a4 \uc804\uccb4\uc5d0\uc11c \uc5ec\ub7ec \uc694\uccad\uc774 \ub3d9\uc2dc\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uc804\uc5ed \ubcc0\uc218\uc5d0 \uac12\uc744 \uc800\uc7a5\ud558\uace0 \uac80\uc0c9\ud558\uba74 \uc608\uae30\uce58 \uc54a\uc740 \uacb0\uacfc\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc774\ub85c \uc778\ud55c \ubd80\uc791\uc6a9\uc740 \ud568\uc218 \ucc38\uc870\uac00 \uc804\uc5ed \ubcc0\uc218\uc5d0 \uc800\uc7a5\ub418\ubbc0\ub85c \uc804\uc5ed \ud654\uc0b4\ud45c \ud568\uc218\uac00 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ub85c\uceec \ud654\uc0b4\ud45c \ud568\uc218(\uc804\uc5ed \ud568\uc218 \ubcf8\ubb38 \uc548\uc5d0 \uc120\uc5b8\ub41c \ud568\uc218)\ub294 \uc608\uc0c1\ub300\ub85c \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">\uc2e4\uc81c \uc0ac\ub840<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uba3c\uc800 JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ud568\uc218\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"decode-attributes:false lang:default decode:true\">curl -v -X POST https:\/\/localhost:8093\/evaluator\/v1\/libraries\/math \\\r\n     -u Administrator:password \\\r\n     -d 'function add(a, b) { let data = a + b; return data; }'<\/pre>\n<p><span style=\"font-weight: 400;\">\uadf8\ub7f0 \ub2e4\uc74c N1QL UDF\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"decode-attributes:false lang:default decode:true\">cbq&gt; CREATE FUNCTION javascriptAdd(a, b) LANGUAGE javascript AS \"add\" AT \"math\";<\/pre>\n<p><span style=\"font-weight: 400;\">UDF\ub97c \uba3c\uc800 \uc0dd\uc131\ud558\uace0 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ub098\uc911\uc5d0 \uc0dd\uc131\ud558\ub294 \uac83\uc740 \uc644\ubcbd\ud558\uac8c \ud569\ubc95\uc801\uc774\uc9c0\ub9cc, \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0dd\uc131\ud558\uae30 \uc804\uae4c\uc9c0\ub294 UDF\ub97c \uc2e4\ud589\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4!<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">7.1\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5!<\/span><\/h2>\n<h3><span style=\"font-weight: 400;\">\uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\ub354 \uc774\uc0c1 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc870\uc791\ud558\uae30 \uc704\ud574 \uc774\uc0c1\ud55c REST \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uc640 curl \uba85\ub839\uc5d0 \uc2e0\uacbd \uc4f8 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. <em>\ucffc\ub9ac<\/em> \ud398\uc774\uc9c0\uc5d0 \uc0c8 \ud0ed\uc774 \uc0dd\uae41\ub2c8\ub2e4, <em>UDF<\/em>:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13557\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/new-couchbase-UDF-UI-console-1024x359.png\" alt=\"New UDF page in Couchbase UI\" width=\"900\" height=\"316\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-1024x359.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-300x105.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-768x269.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-1536x538.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-800x280.png 800w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console-1320x462.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/new-couchbase-UDF-UI-console.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\ud074\ub9ad\ud558\uba74 JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac \ubc0f N1QL UDF \uc815\uc758 \ubaa9\ub85d\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13558\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/image3-1-1024x340.png\" alt=\"Manage UDFs and JavaScript functions in UI\" width=\"900\" height=\"299\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1-1024x340.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1-300x99.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1-768x255.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1-1536x509.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1-1320x438.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image3-1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 N1QL \uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218\ub97c \ubaa8\ub450 \ucd94\uac00\ud558\uace0 \ud3b8\uc9d1\ud560 \uc218 \uc788\ub294 \ubc84\ud2bc\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc8fc\uc758\ud560 \uc810\uc740 \uac1c\ubcc4 \ud568\uc218\uac00 \uc544\ub2cc \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ud3b8\uc9d1\ud558\uac70\ub098 \ucd94\uac00\ud558\ub294 \uac83\uc774\ubbc0\ub85c JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \uc0c8 \ud568\uc218\ub97c \ucd94\uac00\ud558\ub824\uba74 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc804\uccb4\ub97c \ud3b8\uc9d1\ud55c \ud6c4 \uae30\uc874 \ud568\uc218\uc640 \uc0c8 \ud568\uc218\ub97c \ubaa8\ub450 \ud3ec\ud568\ud558\uc5ec \ub2e4\uc2dc \uc81c\ucd9c\ud574\uc57c \ud569\ub2c8\ub2e4(\uc0c8 \ud568\uc218\ub9cc \uc81c\ucd9c\ud558\uba74 \uae30\uc874 \ud568\uc218\uac00 \uc0ad\uc81c\ub418\ubbc0\ub85c \uc8fc\uc758\ud574\uc57c \ud569\ub2c8\ub2e4!).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">UDF \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac UI\ub97c \uc774\ubca4\ud2b8 UI\uc640 \uac19\uc740 \uc704\uce58(\uc608: \ub514\ubc84\uac70)\ub85c \uc62e\uae38 \uacc4\ud68d\uc774 \uc788\uc9c0\ub9cc, \uc544\uc9c1 \uadf8 \ub2e8\uacc4\uc5d0 \uc774\ub974\uc9c0 \ubabb\ud588\uc73c\uba70 \uacb0\uacfc\uc801\uc73c\ub85c UI\uc758 \ud615\ud0dc\uc640 \uc704\uce58\uac00 \ubcc0\uacbd\ub420 \uac00\ub2a5\uc131\uc774 \ub192\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13559\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/07\/image2-1-1024x950.png\" alt=\"Add JavaScript library using UI\" width=\"900\" height=\"835\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1-1024x950.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1-300x278.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1-768x712.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1-1536x1424.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1-20x20.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1-1320x1224.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/07\/image2-1.png 1734w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3><span style=\"font-weight: 400;\">\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\uc758 N1QL <\/span><\/h3>\n<p><span style=\"font-weight: 400;\">7.0.x\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\ub294 JavaScript \uc5d4\uc9c4\uc740 \ubc14\ub2d0\ub77c JavaScript\ub9cc \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\uba70 N1QL \uc694\uccad\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">7.1.x\uc5d0\uc11c JavaScript \uc5d4\uc9c4\uc740 \uc774\uc81c \uc5ec\ub7ec \uac1c\uc758 N1QL \ubb38\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\uba70 \ubc18\ubcf5\uc790\uc640 \ud2b8\ub79c\uc7ad\uc158\uc744 \ubaa8\ub450 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">\uacc4\uce35\uc801 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc800\uc7a5\uc18c<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">7.0\uc5d0\uc11c JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac \uc2a4\ud1a0\uc5b4\ub294 \ud50c\ub7ab \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub85c, \ubaa8\ub4e0 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ub3d9\uc77c\ud55c \ub808\ubca8\uc5d0 \uc704\uce58\ud558\uba70 \uc804\uc5ed \ubc0f \ubc94\uc704 N1QL UDF \ubaa8\ub450\uc5d0\uc11c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc774\ub7ec\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uacf5\uc720\ub429\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">7.1\uc5d0\uc11c\ub294 \uc2a4\ud1a0\ub9ac\uc9c0\uac00 \uacc4\uce35 \uad6c\uc870\ub85c \ud655\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ub8e8\ud2b8 \ub808\ubca8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uc5ec\uc804\ud788 \uae00\ub85c\ubc8c \ubc0f \uc2a4\ucf54\ud504 N1QL UDF \ubaa8\ub450\uc5d0\uc11c \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uace0 \uc774\uc804\ucc98\ub7fc \uacf5\uc720\ud560 \uc218 \uc788\uc73c\uba70, \ud2b9\uc815 \ubc84\ud0b7 \ubc0f \uc2a4\ucf54\ud504\uc5d0 \ud2b9\uc815 \ub8e8\ud2b8 \ub808\ubca8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ubcc4\ub3c4\ub85c \uad6c\ud604\ud558\uac70\ub098 \ud2b9\uc815 \uc2a4\ucf54\ud504\uc5d0\ub9cc \uc561\uc138\uc2a4\ud560 \uc218 \uc788\ub294 \uc0ac\uc6a9\uc790\ub97c \uc704\ud55c \ube44\uacf5\uac1c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc2a4\ud1a0\ub9ac\uc9c0\ub85c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc815\uc758\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">\uacb0\ub860<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 7.1\uc758 JavaScript \uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218 \uae30\ub2a5\uc744 \ubbf8\ub9ac \uc0b4\ud3b4\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ub2e4\uc74c \ube14\ub85c\uadf8\uc5d0\uc11c \uac01\uac01\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\ud604\uc7ac\ub85c\uc11c\ub294 \ub2e4\uc74c\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/n1ql-user-defined-functions\/\" target=\"_blank\" rel=\"noopener\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 N1QL UDF<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Among the many great features introduced in Couchbase Server 7.0, one has the potential for a greater impact in later releases: N1QL User Defined Functions. A quick glance at the past N1QL is a declarative language, meaning that requests merely [&hellip;]<\/p>","protected":false},"author":1782,"featured_media":11779,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,9327,1812],"tags":[2133,1543,8911],"ppma_author":[8924],"class_list":["post-13556","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-javascript","category-n1ql-query","tag-functions","tag-javascript","tag-udf"],"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>From N1QL to Javascript and Back - Part 1: Introduction<\/title>\n<meta name=\"description\" content=\"This blog gives you a taster of N1QL and the JavaScript User Defined Functions (UDF) features in Couchbase Server 7.1. Learn more with Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/from-n1ql-to-javascript-and-back-part-1-introduction\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"From N1QL to Javascript and Back - Part 1: Introduction\" \/>\n<meta property=\"og:description\" content=\"This blog gives you a taster of N1QL and the JavaScript User Defined Functions (UDF) features in Couchbase Server 7.1. Learn more with Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/from-n1ql-to-javascript-and-back-part-1-introduction\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-13T17:09:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:20:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"Marco Greco, Software Architect, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marco Greco, Software Architect, Couchbase\" \/>\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\/from-n1ql-to-javascript-and-back-part-1-introduction\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/\"},\"author\":{\"name\":\"Marco Greco, Software Architect, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2b5184a7cdb443ff2897aff0866cd6fd\"},\"headline\":\"From N1QL to Javascript and Back &#8211; Part 1: Introduction\",\"datePublished\":\"2022-07-13T17:09:45+00:00\",\"dateModified\":\"2025-06-14T00:20:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/\"},\"wordCount\":833,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg\",\"keywords\":[\"functions\",\"javascript\",\"User Defined Function (UDF)\"],\"articleSection\":[\"Couchbase Server\",\"JavaScript\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/\",\"name\":\"From N1QL to Javascript and Back - Part 1: Introduction\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg\",\"datePublished\":\"2022-07-13T17:09:45+00:00\",\"dateModified\":\"2025-06-14T00:20:45+00:00\",\"description\":\"This blog gives you a taster of N1QL and the JavaScript User Defined Functions (UDF) features in Couchbase Server 7.1. Learn more with Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Learn these tips and tricks for creating user-defined functions (UDFs) with the N1QL query language\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"From N1QL to Javascript and Back &#8211; Part 1: Introduction\"}]},{\"@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\/2b5184a7cdb443ff2897aff0866cd6fd\",\"name\":\"Marco Greco, Software Architect, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/707c967b795fd71b6330f6d3118cf308\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6be0ee56851d2f71a554731d5edd5c820069680f0a810b47f094091c58bc553?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6be0ee56851d2f71a554731d5edd5c820069680f0a810b47f094091c58bc553?s=96&d=mm&r=g\",\"caption\":\"Marco Greco, Software Architect, Couchbase\"},\"description\":\"In a previous life, Marco used to be CTO, radiation physicist, software architect, sysadmin, DBA, trainer and general handyman at Italy's largest radiation theraphy practice. Having switched career and country, he spent more than two decades in various support and development positions in Informix first and IBM later, before finally taking the plunge and joining Couchbase, to help them make gold out of N1QL. He holds several patents and has authored open source projects of his own.\",\"sameAs\":[\"https:\/\/github.com\/marcogrecopriolo\",\"https:\/\/www.linkedin.com\/in\/marco-greco-7665308\/\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/marcocouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"From N1QL to Javascript and Back - Part 1: Introduction","description":"\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 Couchbase Server 7.1\uc758 N1QL \ubc0f JavaScript \uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218(UDF) \uae30\ub2a5\uc744 \ubbf8\ub9ac \uc0b4\ud3b4\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. Couchbase\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.","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\/from-n1ql-to-javascript-and-back-part-1-introduction\/","og_locale":"ko_KR","og_type":"article","og_title":"From N1QL to Javascript and Back - Part 1: Introduction","og_description":"This blog gives you a taster of N1QL and the JavaScript User Defined Functions (UDF) features in Couchbase Server 7.1. Learn more with Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/from-n1ql-to-javascript-and-back-part-1-introduction\/","og_site_name":"The Couchbase Blog","article_published_time":"2022-07-13T17:09:45+00:00","article_modified_time":"2025-06-14T00:20:45+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg","type":"image\/jpeg"}],"author":"Marco Greco, Software Architect, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marco Greco, Software Architect, Couchbase","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/"},"author":{"name":"Marco Greco, Software Architect, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2b5184a7cdb443ff2897aff0866cd6fd"},"headline":"From N1QL to Javascript and Back &#8211; Part 1: Introduction","datePublished":"2022-07-13T17:09:45+00:00","dateModified":"2025-06-14T00:20:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/"},"wordCount":833,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg","keywords":["functions","javascript","User Defined Function (UDF)"],"articleSection":["Couchbase Server","JavaScript","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/","url":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/","name":"From N1QL to Javascript and Back - Part 1: Introduction","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg","datePublished":"2022-07-13T17:09:45+00:00","dateModified":"2025-06-14T00:20:45+00:00","description":"\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 Couchbase Server 7.1\uc758 N1QL \ubc0f JavaScript \uc0ac\uc6a9\uc790 \uc815\uc758 \ud568\uc218(UDF) \uae30\ub2a5\uc744 \ubbf8\ub9ac \uc0b4\ud3b4\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. Couchbase\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/12\/user-defined-functions-n1ql-query-language-couchbase-7-0.jpg","width":1200,"height":628,"caption":"Learn these tips and tricks for creating user-defined functions (UDFs) with the N1QL query language"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/from-n1ql-to-javascript-and-back-part-1-introduction\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"From N1QL to Javascript and Back &#8211; Part 1: Introduction"}]},{"@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\/2b5184a7cdb443ff2897aff0866cd6fd","name":"\ub9c8\ub974\ucf54 \uadf8\ub808\ucf54, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc544\ud0a4\ud14d\ud2b8, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/707c967b795fd71b6330f6d3118cf308","url":"https:\/\/secure.gravatar.com\/avatar\/e6be0ee56851d2f71a554731d5edd5c820069680f0a810b47f094091c58bc553?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6be0ee56851d2f71a554731d5edd5c820069680f0a810b47f094091c58bc553?s=96&d=mm&r=g","caption":"Marco Greco, Software Architect, Couchbase"},"description":"In a previous life, Marco used to be CTO, radiation physicist, software architect, sysadmin, DBA, trainer and general handyman at Italy's largest radiation theraphy practice. Having switched career and country, he spent more than two decades in various support and development positions in Informix first and IBM later, before finally taking the plunge and joining Couchbase, to help them make gold out of N1QL. He holds several patents and has authored open source projects of his own.","sameAs":["https:\/\/github.com\/marcogrecopriolo","https:\/\/www.linkedin.com\/in\/marco-greco-7665308\/"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/marcocouchbase-com\/"}]}},"authors":[{"term_id":8924,"user_id":1782,"is_guest":0,"slug":"marcocouchbase-com","display_name":"Marco Greco, Software Architect, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/e6be0ee56851d2f71a554731d5edd5c820069680f0a810b47f094091c58bc553?s=96&d=mm&r=g","author_category":"","last_name":"Greco","first_name":"Marco","job_title":"","user_url":"","description":"\uc804\uc0dd\uc5d0 \ub9c8\ub974\ucf54\ub294 \uc774\ud0c8\ub9ac\uc544 \ucd5c\ub300 \ubc29\uc0ac\uc120 \uce58\ub8cc \uae30\uad00\uc5d0\uc11c CTO, \ubc29\uc0ac\uc120 \ubb3c\ub9ac\ud559\uc790, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc124\uacc4\uc790, \uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790, DBA, \ud2b8\ub808\uc774\ub108, \uc77c\ubc18 \uad00\ub9ac\uc790\ub85c \uc77c\ud588\uc2b5\ub2c8\ub2e4.\r\n\r\n\uc9c1\uc5c5\uacfc \uad6d\uac00\ub97c \ubc14\uafbc \uadf8\ub294 \ucc98\uc74c\uc5d0\ub294 Informix\uc5d0\uc11c, \ub098\uc911\uc5d0\ub294 IBM\uc5d0\uc11c 20\ub144 \uc774\uc0c1 \ub2e4\uc591\ud55c \uc9c0\uc6d0 \ubc0f \uac1c\ubc1c \uc9c1\ucc45\uc744 \ub9e1\ub2e4\uac00 \ub9c8\uce68\ub0b4 \uacfc\uac10\ud788 Couchbase\uc5d0 \ud569\ub958\ud558\uc5ec N1QL\uc5d0\uc11c \uae08\uc744 \ub9cc\ub4dc\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc8fc\uc5c8\uc2b5\ub2c8\ub2e4.\r\n\r\n\uadf8\ub294 \uc5ec\ub7ec \uac1c\uc758 \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc73c\uba70 \uc9c1\uc811 \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub97c \uc800\uc220\ud558\uae30\ub3c4 \ud588\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/13556","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\/1782"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=13556"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/13556\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/11779"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=13556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=13556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=13556"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=13556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}