{"id":9083,"date":"2020-08-12T08:39:57","date_gmt":"2020-08-12T15:39:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=9083"},"modified":"2025-06-13T22:39:26","modified_gmt":"2025-06-14T05:39:26","slug":"eventing-improvements-timers-handlers-and-statistics","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-improvements-timers-handlers-and-statistics\/","title":{"rendered":"\uc774\ubca4\ud2b8 \uac1c\uc120 \uc0ac\ud56d: \ud0c0\uc774\uba38, \ud578\ub4e4\ub7ec \ubc0f \ud1b5\uacc4"},"content":{"rendered":"<p><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 6.6\uc758 \ucd9c\uc2dc\uc640 \ud568\uaed8 \uc774\ubca4\ud2b8 \uc11c\ube44\uc2a4\uc758 \uae30\ub2a5\uc774 \ud06c\uac8c \uac1c\uc120\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p>\ucde8\uc18c \ud0c0\uc774\uba38() \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uac70\ub098 \uae30\uc874 \ud0c0\uc774\uba38\uc640 \ub3d9\uc77c\ud55c \ucc38\uc870 \uc2dd\ubcc4\uc790\ub97c \uac00\uc9c4 \uc0c8 \ud0c0\uc774\uba38\ub97c \uc0dd\uc131\ud558\uc5ec \ucde8\uc18c\ud560 \uc218 \uc788\ub294 \uc0c8\ub85c\uc6b4 \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38\uac00 \ub3c4\uc785\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubc18\ubcf5 \ud0c0\uc774\uba38\ub3c4 \uc644\ubcbd\ud558\uac8c \uc9c0\uc6d0\ub418\uba70, \ud0c0\uc774\uba38 \ucf5c\ubc31\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0c8\ub85c\uc6b4 \ud0c0\uc774\uba38\ub97c \uc0dd\uc131\ud568\uc73c\ub85c\uc368 \ubc18\ubcf5 \ub85c\uc9c1\uc744 \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud0c0\uc774\uba38 \uc2a4\ucf00\uc904\ub9c1\uc744 \uc0ac\uc6a9\ud558\uba74 \uc131\ub2a5\uc5d0 \ubd80\uc815\uc801\uc778 \uc601\ud5a5\uc744 \ubbf8\uce58\uc9c0 \uc54a\uace0 \uba70\uce60, \uba87 \uc8fc \ub610\ub294 \uba87 \ub144 \ud6c4\uc758 \ud0c0\uc774\uba38\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. OnDelete \ud578\ub4e4\ub7ec\ub294 \uc774\uc81c \uc0c8\ub85c\uc6b4 \"options\" \ub9e4\uac1c\ubcc0\uc218\ub97c \uc0ac\uc6a9\ud574 \ubb38\uc11c\uac00 \uc0ad\uc81c\ub418\uc5c8\ub294\uc9c0 \ub9cc\ub8cc\ub418\uc5c8\ub294\uc9c0\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc774\uc81c UI\uc758 \uc8fc\uc694 \uc774\ubca4\ud2b8 \ud1b5\uacc4\uac00 \uac01 \ud568\uc218 \uc218\uba85 \uc8fc\uae30 \uc81c\uc5b4\uc640 \ud568\uaed8 \ubc30\uce58\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub7ec\ud55c \uac1c\uc120 \uc0ac\ud56d\uc744 \ud1b5\ud574 \uac15\ub825\ud55c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \ub9cc\ub4dc\ub294 \ub370 \ud544\uc694\ud55c \ub178\ub825\uacfc \ucf54\ub4dc\ub97c \uac04\uc18c\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\uc804\uc81c \uc870\uac74<\/h3>\n<p>\uc774 \ubb38\uc11c\uc5d0\uc11c\ub294 \uc8fc\uc694 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/eventing\/\">\uc774\ubca4\ud2b8<\/a> \ucd5c\uc2e0 GA \ub9b4\ub9ac\uc2a4, \uc989 Couchbase \ubc84\uc804 6.6.0\uc5d0 \ucd94\uac00\ub41c \uac1c\uc120 \uc0ac\ud56d\uacfc \uac01 \ud56d\ubaa9\uc5d0 \ub300\ud574 \uc791\ub3d9\ud558\ub294 \uae30\ubcf8 \uc608\uc81c\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.\u00a0 <em>\uadf8\ub7ec\ub098 \uc774 \ubb38\uc11c\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uc774\ubca4\ud2b8 \ud568\uc218 \uc911 \uc5b4\ub290 \uac83\ub3c4 \uc774\uc804 \ubc84\uc804\uc758 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\uc5d0\uc11c \ud070 \ubcc0\uacbd\uc774\ub098 \ubcf5\uc7a1\ud55c \uc791\uc5c5 \uc5c6\uc774 \"\uc788\ub294 \uadf8\ub300\ub85c\" \uc791\ub3d9\ud558\uc9c0\ub294 \uc54a\ub294\ub2e4\ub294 \uc810\uc744 \uc774\ud574\ud574 \uc8fc\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/em>.<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub610\ub294 \uc774\ubca4\ud2b8 \uc11c\ube44\uc2a4\uc5d0 \uc775\uc219\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uc2dc\uc791\ud558\uae30\uc640 \uc774\ubca4\ud2b8 \uc608\uc2dc \uc911 \ud558\ub098\ub97c \uad6c\uccb4\uc801\uc73c\ub85c \ucc38\uc870\ud558\uc138\uc694:<\/p>\n<ul>\n<li>\uc758 \uc9c0\uce68\uc5d0 \ub530\ub77c \uc791\ub3d9\ud558\ub294 Couchbase 6.6.0 \uc11c\ubc84\ub97c \uc124\uc815\ud569\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/getting-started\/start-here.html\">\uc5ec\uae30\uc11c \uc2dc\uc791\ud558\uc138\uc694!<\/a><\/li>\n<li>\uae30\ubcf8 \uc774\ubca4\ud2b8 \uac1c\ub150\uacfc \uae30\ubcf8 \uc774\ubca4\ud2b8 \ud568\uc218\ub97c \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\uc744 \ubaa8\ub450 \uc774\ud574\ud569\ub2c8\ub2e4. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-examples-docarchive.html\">\ubb38\uc11c \ubcf4\uad00<\/a> \uc608\uc81c.<\/li>\n<\/ul>\n<h3>\uc774\uc81c \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38\ub97c \ucde8\uc18c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/h3>\n<p>\ucde8\uc18c \ud0c0\uc774\uba38() \ud568\uc218\ub97c \ucd94\uac00\ud558\uac70\ub098 \uae30\uc874 \ud0c0\uc774\uba38\uc640 \ub3d9\uc77c\ud55c \ucc38\uc870 \uc2dd\ubcc4\uc790\ub97c \uac00\uc9c4 \uc0c8 \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38\ub97c \uc0dd\uc131\ud558\uba74 \uc544\uc9c1 \uc2e4\ud589\ub418\uc9c0 \uc54a\uc740 \ud65c\uc131 \ud0c0\uc774\uba38\ub97c \ucde8\uc18c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uc774 \uae30\ub2a5 \uac1c\uc120\uc73c\ub85c \uac15\ub825\ud55c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \ub9cc\ub4dc\ub294 \ub370 \ud544\uc694\ud55c \ucf54\ub4dc\uac00 \uac04\uc18c\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac1c\ubc1c\uc790\ub294 \ub354 \uc774\uc0c1 \ud544\ub4dc\uc640 \ub85c\uc9c1\uc744 \ucd94\uac00\ud558\uace0, \uc2e4\ud589 \uc911\uc778 \ud0c0\uc774\uba38\uac00 '\uc624\ub798\ub418\uc5b4' \uc0c8\ub85c\uc6b4 \ud0c0\uc774\uba38\ub85c \ub300\uccb4\ub418\uc9c0 \uc54a\ub3c4\ub85d \ucd94\uac00 \ud655\uc778 \uc791\uc5c5\uc744 \uc218\ud589\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub429\ub2c8\ub2e4.<\/p>\n<h4>\uc608\uc2dc:<\/h4>\n<ul>\n<li>\uc774\ubca4\ud2b8\uc6a9 '\uc18c\uc2a4' \ubc84\ud0b7\uacfc '\uba54\ud0c0\ub370\uc774\ud130' \ubc84\ud0b7\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>\uc774 \ud568\uc218\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4(\uc544\ub798 \ucf54\ub4dc).<\/li>\n<li>\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc18c\uc2a4 \ubc84\ud0b7\uc5d0 \ubb38\uc11c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4:\n<pre class=\"font:monospace font-size:18 line-height:24 toolbar-overlay:false striped:false marking:false ranges:false nums:false nums-toggle:false lang:default decode:true\">KEY user_scoreboard::1 and DATA {\"type\": \"user_scoreboard\", \"id\": 1}<\/pre>\n<\/li>\n<li>\uc7a0\uc2dc \ud6c4 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\"user_scoreboard::1\" \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc11c\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc7a0\uc2dc \ud6c4 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc774 \uae30\ub2a5\uc744 \ubc30\ud3ec \ud574\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"toolbar-overlay:false lang:js decode:true\">function UserInactivityCallback(context) {\r\n    log('user was inactive for 10 minutes', context.docId);\r\n    \/*\r\n    * take some actions ...\r\n    *\/\r\n}\r\n\r\nfunction OnUpdate(doc, meta) {\r\n    if (doc.type != 'user_scoreboard') return;\r\n    \/\/ Create a timestamp 600 seconds from now\r\n    var tenMinutesFromNow = new Date(); \/\/ Get current time &amp; add 600 sec. to it.\r\n    tenMinutesFromNow.setSeconds(tenMinutesFromNow.getSeconds() + 600);\r\n\r\n    \/\/ Every mutation to the user's scoreboard will result in a new Timer but\r\n    \/\/ the old timers will be canceled as they have the same identifier, meta.id.\r\n    createTimer(UserInactivityCallback, tenMinutesFromNow, meta.id, {\r\n        \"docId\": meta.id\r\n    });\r\n}\r\n\r\nfunction OnDelete(meta, options) {\r\n    if (!(meta.id.startsWith(\"user_scoreboard:\"))) return;\r\n    log('user scoreboard was deleted for', meta.id);\r\n    \/\/ remove the timer as there is no related document anymore.\r\n    cancelTimer(UserInactivityCallback,meta.id);\r\n    \/*\r\n    * take some actions ...\r\n    *\/\r\n}<\/pre>\n<h3>\uc774\uc81c \ubc18\ubcf5 \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38\uac00 \uc644\uc804\ud788 \uc9c0\uc6d0\ub429\ub2c8\ub2e4.<\/h3>\n<p>\ubc18\ubcf5 \ud0c0\uc774\uba38\uac00 \uc644\uc804\ud788 \uc9c0\uc6d0\ub429\ub2c8\ub2e4. \uc989, \ud0c0\uc774\uba38 \ucf5c\ubc31\uc5d0 \uc758\ud574 \ud638\ucd9c\ub418\ub294 \ud568\uc218\ub294 \uc0c8\ub85c\uc6b4 \ud0c0\uc774\uba38\ub97c \uc548\uc815\uc801\uc73c\ub85c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uc774 \uc5c5\ub370\uc774\ud2b8\ub97c \ud1b5\ud574 \ub2e8\uc77c \uc774\ubca4\ud2b8 \ud568\uc218\uac00 \ub2e4\ub978 \ud0c0\uc774\uba38\uc758 \ucf5c\ubc31 \ub0b4\uc5d0\uc11c \uc0c8 \ud0c0\uc774\uba38\ub97c \uc0dd\uc131\ud558\ub294 \ubcf5\uc7a1\ud55c \ubc18\ubcf5 \uc774\ubca4\ud2b8\ub97c \uc548\uc815\uc801\uc73c\ub85c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc804\uc5d0\ub294 \ubc18\ubcf5\ub418\ub294 \uc77c\ub828\uc758 \ud0c0\uc774\uba38(\uc67c\ucabd \uc774\ubbf8\uc9c0)\ub97c \uc548\uc815\uc801\uc73c\ub85c \uc0dd\uc131\ud558\uae30 \uc704\ud574 \uacf5\ub3d9 \ud568\uc218\uac00 \ud544\uc694\ud588\uc9c0\ub9cc, 6.6 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 \ubc18\ubcf5(\ub610\ub294 \uc608\uc57d) \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \uad6c\ud604\ud558\ub294 \ub370 \ud544\uc694\ud55c \ucf54\ub4dc\uac00 \uac04\uc18c\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4(\uc624\ub978\ucabd \uc774\ubbf8\uc9c0).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8730\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/ev_cr_1u_design_choices-1.png\" alt=\"Eventing cron update\" width=\"1479\" height=\"649\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/ev_cr_1u_design_choices-1.png 1479w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/ev_cr_1u_design_choices-1-300x132.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/ev_cr_1u_design_choices-1-1024x449.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/ev_cr_1u_design_choices-1-768x337.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/ev_cr_1u_design_choices-1-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/ev_cr_1u_design_choices-1-1320x579.png 1320w\" sizes=\"auto, (max-width: 1479px) 100vw, 1479px\" \/><\/p>\n<h4>\uc608\uc2dc:<\/h4>\n<ul>\n<li>\uc774\ubca4\ud2b8\uc6a9 '\uc18c\uc2a4' \ubc84\ud0b7\uacfc '\uba54\ud0c0\ub370\uc774\ud130' \ubc84\ud0b7\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>\ud568\uc218 \uc124\uc815\uc5d0\uc11c \uc77d\uae30+\uc4f0\uae30 \ubaa8\ub4dc\uc758 \uc18c\uc2a4 \ubc84\ud0b7\uc5d0 \ub300\ud55c \ubc84\ud0b7 \ubcc4\uce6d\uc744 \"src_bkt\"\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc774 \ud568\uc218\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4(\uc544\ub798 \ucf54\ub4dc).<\/li>\n<li>\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc18c\uc2a4 \ubc84\ud0b7\uc5d0 \ubb38\uc11c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4:\n<pre class=\"font:monospace font-size:18 line-height:24 toolbar-overlay:false striped:false marking:false ranges:false nums:false nums-toggle:false lang:default decode:true\">KEY recurring_timer::1 and DATA {\"type\": \"recurring_timer\", \"id\": 1, \"active\": true}<\/pre>\n<\/li>\n<li>\uc7a0\uc2dc \ud6c4 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\uba87 \ubd84 \ud6c4\uc5d0 \ub85c\uadf8\ub97c \uac80\uc0ac\ud569\ub2c8\ub2e4.<\/li>\n<li>\"recurring_timer::1\" \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc11c\ub97c \ubcc0\uacbd\ud558\uace0 \ub2e4\uc74c\uacfc \uac19\uc774 \"active\" \ud544\ub4dc\ub97c false\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4:<\/li>\n<li>\n<pre class=\"font:monospace font-size:18 line-height:24 toolbar-overlay:false toolbar-hide:false toolbar-delay:false striped:false marking:false ranges:false nums:false nums-toggle:false lang:default decode:true\">KEY recurring_timer::1 and DATA {\"type\": \"recurring_timer\", \"id\": 1, \"active\": false}<\/pre>\n<\/li>\n<li>\uc7a0\uc2dc \ud6c4 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc774 \uae30\ub2a5\uc744 \ubc30\ud3ec \ud574\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"toolbar-overlay:false lang:js decode:true\">function CreateRecurringTimer(context) {\r\n    log('From CreateRecurringTimer: creating timer', context.mode, context.id);\r\n    \/\/ Create a timestamp 30 seconds from now\r\n    var thirtySecFromNow = new Date(); \/\/ Get current time &amp; add 30 sec. to it.\r\n    thirtySecFromNow.setSeconds(thirtySecFromNow.getSeconds() + 30);\r\n    \/\/ Create a document to use as out for our context\r\n    createTimer(RecurringTimerCallback, thirtySecFromNow, context.id, context);\r\n}\r\n\r\nfunction RecurringTimerCallback(context) {\r\n    log('From RecurringTimerCallback: timer fired', context);\r\n\r\n    \/*\r\n    * do any sort of recurring work here, just update a date_stamp in a document\r\n    * written back to the source bucket (but with the ID prefixed whit \"cur_\")\r\n    *\/\r\n    src_bkt[\"cur_\" + context.id] = { \"last_update\": new Date() };\r\n\r\n    \/\/ rearm the timer\r\n    CreateRecurringTimer({ \"id\": context.id, \"mode\": \"via_callback\" })\r\n}\r\n\r\nfunction OnUpdate(doc, meta) {\r\n    \/\/ You would typically filter to mutations of interest\r\n    if (doc.type !== 'recurring_timer') return;\r\n    if (doc.active === false) {\r\n        if (cancelTimer(RecurringTimerCallback, meta.id)) {\r\n            log('From OnUpdate: canceled active Timer, doc.active', doc.active, meta.id);\r\n        } else {\r\n            log('From OnUpdate: no active Timer to cancel, doc.active', doc.active, meta.id);\r\n        }\r\n    } else {\r\n        log('From OnUpdate: create\/overwrite doc.active', doc.active, meta.id);\r\n        CreateRecurringTimer({  \"id\": meta.id, \"mode\": \"via_onupdate\" });\r\n    }\r\n}<\/pre>\n<h3>\ud0c0\uc774\uba38\ub294 \uc77c\/\uc8fc\/\ub144 \ub2e8\uc704\ub85c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/h3>\n<p><span style=\"font-weight: 400\">\uc720\ud734 \uc0c1\ud0dc\uc778 \uc774\ubca4\ud2b8 \uc2dc\uc2a4\ud15c\uc5d0 \uc131\ub2a5\uc5d0 \ubd80\uc815\uc801\uc778 \uc601\ud5a5\uc744 \ubbf8\uce58\uc9c0 \uc54a\uc73c\uba74\uc11c \ud0c0\uc774\uba38\ub97c \ud558\ub098 \ub610\ub294 \ubc31\ub9cc \uac1c\uae4c\uc9c0 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc740 \uc7a5\uae30\uc801\uc778 \uc54c\ub9bc \ubc0f \uace0\uac1d \uc7ac\ucc38\uc5ec \ud504\ub85c\uadf8\ub7a8\uc744 \uc704\ud55c \uc0ac\uc6a9 \uc0ac\ub840\ub97c \uc5f4\uc5b4\uc90d\ub2c8\ub2e4.<\/span><\/p>\n<p><a id=\"#footnote_1_src\"><\/a>6.5.X \ub9b4\ub9ac\uc2a4\uc5d0\uc11c\ub294 \uc720\ud734 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc218\ucc9c \uac1c\uc758 \ud0c0\uc774\uba38\ub97c \uc0dd\uc131\ud558\uba74(\uc608: 1\uc2dc\uac04 \uc774\uc0c1) \uba54\ud0c0\ub370\uc774\ud130 \ubc84\ud0b7 \uc791\uc5c5 \uc218\uac00 \uc99d\uac00\ud558\uc5ec \uc131\ub2a5\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce58\uace0 \uacb0\uad6d \uc8fc\uc5b4\uc9c4 \uc774\ubca4\ud2b8 \ud568\uc218\uc5d0 \ub300\ud55c \ub3cc\uc5f0\ubcc0\uc774\ub97c \ucc28\ub2e8\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<a href=\"#footnote_1\"><sup>[1]<\/sup><\/a><\/p>\n<p><a id=\"#footnote_2_src\"><\/a>\ucde8\uc18c \ud0c0\uc774\uba38() \uc791\uc5c5\uc744 \ud558\uac70\ub098 \uae30\uc874 \ud0c0\uc774\uba38\ub97c \ucc38\uc870\ub85c \ub36e\uc5b4\uc4f0\uba74 Eventing \"\uba54\ud0c0\ub370\uc774\ud130\" \ubc84\ud0b7\uc5d0 \uc784\uc2dc \ubb38\uc11c\uac00 \uc0dd\uc131\ub418\uba70, \uacb0\uad6d \uc774\ub7ec\ud55c \ubb38\uc11c\ub294 \uc0ad\uc81c\ub429\ub2c8\ub2e4.<a href=\"#footnote_2\"><sup>[2]<\/sup><\/a><\/p>\n<h4>\uc608\uc2dc:<\/h4>\n<p>\ub9ce\uc740 \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38(\uc774 \uacbd\uc6b0 50,000\uac1c)\ub97c \uc0dd\uc131\ud558\uace0 \ubbf8\ub798(96\uc2dc\uac04\uae4c\uc9c0)\ub85c \uc608\uc57d\ud55c \ub2e4\uc74c \uc804\uccb4 \uc138\ud2b8\ub97c \ucde8\uc18c(\ub610\ub294 \ubaa8\ub450 \ucf5c\ubc31 \ub8e8\ud2f4\uc744 \uc2e4\ud589\ud558\ub3c4\ub85d \ud5c8\uc6a9)\ud558\ub294 \ub370\ubaa8\ub97c \uc2dc\uc5f0\ud569\ub2c8\ub2e4. <em>\ud0c0\uc774\uba38 \ucf5c\ubc31<\/em>).<\/p>\n<ul>\n<li>\uc774\ubca4\ud2b8\uc6a9 '\uc18c\uc2a4' \ubc84\ud0b7\uacfc '\uba54\ud0c0\ub370\uc774\ud130' \ubc84\ud0b7\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>\uc774 \ud568\uc218\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4(\uc544\ub798 \ucf54\ub4dc).<\/li>\n<li>\uc18c\uc2a4 \ubc84\ud0b7\uc5d0 \uc6b0\ub9ac\uac00 \uc0b4\ud3b4\ubcfc \ub370\uc774\ud130\ub9cc \uc788\ub294 \ubb38\uc11c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.\n<pre class=\"font:monospace font-size:18 line-height:24 toolbar-overlay:false toolbar-hide:false toolbar-delay:false striped:false marking:false ranges:false nums:false nums-toggle:false lang:default decode:true\">KEY spawn_50k_timers::1<\/pre>\n<\/li>\n<li>1~2\ubd84 \ud6c4\uc5d0 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\"spawn_50k_timers::1\" \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc11c\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<li>1~2\ubd84 \ud6c4\uc5d0 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc774 \uae30\ub2a5\uc744 \ubc30\ud3ec \ud574\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>50\ub9cc \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38\uac00 \uc0dd\uc131\ub418\uace0 (\ucde8\uc18c\ub418\uc9c0 \uc54a\uace0) \uc2e4\ud589\ub418\ub294 \uac83\uc744 \ud655\uc778\ud569\ub2c8\ub2e4:<\/p>\n<ul>\n<li>\uae30\ub2a5 \ubcc0\uacbd \uc9c0\uc5f0 \ubd84\uc744 1\ub85c \ud3b8\uc9d1\ud569\ub2c8\ub2e4(4\uc77c\uc744 \uae30\ub2e4\ub9ac\uc9c0 \uc54a\uc73c\ub824\ub294 \uacbd\uc6b0).<\/li>\n<li>\uc218\uc815\ub41c \ud568\uc218\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4(\uc544\ub798 \ucf54\ub4dc).<\/li>\n<li>\uc18c\uc2a4 \ubc84\ud0b7\uc5d0\uc11c KEY\ub9cc \ubcfc \uc218 \uc788\uc73c\ubbc0\ub85c \uc544\ubb34 \ub370\uc774\ud130\ub85c\ub098 \ubb38\uc11c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.\n<pre class=\"font:monospace font-size:18 line-height:24 toolbar-overlay:false striped:false marking:false ranges:false nums:false nums-toggle:false lang:default decode:true\">KEY spawn_50k_timers::1<\/pre>\n<\/li>\n<li>2\ubd84 \ud6c4\uc5d0 \ub85c\uadf8\ub97c \uac80\uc0ac\ud569\ub2c8\ub2e4.<\/li>\n<li>\"spawn_50k_timers::1\" \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc11c\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<li>1~2\ubd84 \ud6c4\uc5d0 \ub85c\uadf8\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc774 \uae30\ub2a5\uc744 \ubc30\ud3ec \ud574\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"toolbar-overlay:false lang:js decode:true\">function TimerCallback(context) {\r\n    if (context.timer_num == 1 || context.timer_num == 50000)\r\n        log('TimerCallback: fired timer #', context.timer_num);\r\n    \/*\r\n    * take some actions ...\r\n    *\/\r\n}\r\n\r\nfunction OnUpdate(doc, meta) {\r\n    if (meta.id != 'spawn_50k_timers::1') return;\r\n    \r\n    \/\/ Create a timestamp 96 hours from now (4 days)\r\n    var delayMinutes = 60*96;\r\n    var futureTime = new Date(); \r\n    futureTime.setMinutes(futureTime.getMinutes() + delayMinutes);\r\n\r\n    \/\/ make 50K timers \r\n    for (var i=1; i&lt;= 50000; i++) {\r\n        var timer_id = \"tmr_\" + i;\r\n        if (i == 1 || i == 50000)\r\n            log('OnUpdate: create timer # ', i, timer_id);\r\n        try {\r\n            createTimer(TimerCallback, futureTime, timer_id, \r\n                { \"docId\": meta.id, \"timer_num\": i});\r\n        } catch (e) {\r\n            log('OnUpdate:  create #', i, \" error \", e);\r\n        }            \r\n    }\r\n}\r\n\r\nfunction OnDelete(meta, options) {\r\n    if (meta.id != 'spawn_50k_timers::1') return;\r\n    \/*\r\n    * Remove the 50K timer as there is no related control document anymore.\r\n    *\r\n    * Note on a cancel or overwrite there will be documents which will be \r\n    * cleaned up at a) initial firing schedule of the Timers, b) undeployment \r\n    * of the function, or c) a lazy cleaning process by the Eventing Service.\r\n    *\/\r\n    for (var i=1; i&lt;= 50000; i++) {\r\n        var timer_id = \"tmr_\" + i;\r\n        if (i == 1 || i == 50000)\r\n            log('OnDelete: clear timer # ', i, timer_id);\r\n        try {\r\n            cancelTimer(TimerCallback, timer_id);\r\n        } catch (e) {\r\n            log('OnDelete: clear timer #', i, \" error \", e);\r\n        }\r\n    }\r\n}<\/pre>\n<h3>\uc774\uc81c \uc774\ubca4\ud2b8 \ud1b5\uacc4\uac00 \uc218\uba85 \uc8fc\uae30 \uc81c\uc5b4\uc640 \ud568\uaed8 \ubc30\uce58\ub429\ub2c8\ub2e4.<\/h3>\n<p>\uc774\uc81c UI\uc5d0\uc11c 4\uac1c\uc758 \uc8fc\uc694 \uc774\ubca4\ud2b8 \ud1b5\uacc4\uac00 \uac01 \ud568\uc218 \uc218\uba85 \uc8fc\uae30 \ucee8\ud2b8\ub864\uacfc \ud568\uaed8 \ubc30\uce58\ub429\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uac1c\uc120 \uc0ac\ud56d\uc73c\ub85c \ucf54\ub529 \uc791\uc5c5\uacfc \uc774\ubca4\ud2b8 \ud568\uc218\ub97c \uc9c4\ub2e8\ud558\ub294 \uc791\uc5c5\uc774 \uac04\uc18c\ud654\ub418\uc5b4 \uac15\ub825\ud55c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \ube60\ub974\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac1c\ubc1c\uc790\ub098 \uad00\ub9ac\uc790\ub294 \ud568\uc218\uc758 \uc218\uba85 \uc8fc\uae30 \ucee8\ud2b8\ub864\uc5d0\uc11c \ubc97\uc5b4\ub098\uc9c0 \uc54a\uace0\ub3c4 \ud568\uc218\uac00 \uc798\ubabb \uc791\ub3d9\ud558\ub294 \uac83\uc744 \uc989\uc2dc \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>\uc608\uc2dc:<\/h4>\n<ul>\n<li>\uc774\ubca4\ud2b8\uc6a9 '\uc18c\uc2a4' \ubc84\ud0b7\uacfc '\uba54\ud0c0\ub370\uc774\ud130' \ubc84\ud0b7\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>\uc18c\uc2a4 \ubc84\ud0b7\uc5d0 KEY\uc640 DATA\ub97c \uba87 \uac1c \ubb38\uc11c\ud654\ud558\uc138\uc694.<\/li>\n<li>\uc218\uc815\ub41c \ud568\uc218(\uc544\ub798 \ucf54\ub4dc)\ub97c \ubc30\ud3ec\ud558\uba74 \ubcc0\uc218 \uc55e\uc5d0 var\ub97c \ub123\ub294 \uac83\uc744 \uc78a\uc5b4\ubc84\ub9ac\ub294 \uad6c\ubb38 \uc624\ub958\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"toolbar-overlay:false lang:js decode:true\">function OnUpdate(doc, meta) {\r\n    log('docId', meta.id);\r\n    \/\/ this is an error missing 'var'\r\n    a = 2;\r\n}<\/pre>\n<ul>\n<li>\uc774\ubca4\ud2b8 \uae30\ub2a5\uc774 \ubc30\ud3ec\ub418\uba74 \uac1c\ubc1c\uc790\uc5d0\uac8c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\ub2e4\ub294 \uc989\uac01\uc801\uc778 \ud53c\ub4dc\ubc31\uc774 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9086\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/08\/evt_66_stats_bad_function1.png\" alt=\"\" width=\"889\" height=\"153\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function1.png 889w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function1-300x52.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function1-768x132.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function1-20x3.png 20w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><\/p>\n<ul>\n<li>\uc0ac\uc6a9\uc790\ub294 \ud53c\ub4dc\ubc31(\uc608: '\ube68\uac04\uc0c9' \uc2e4\ud328)\uc5d0 \uc751\ub2f5\ud558\uace0 \uc624\ub958\uc758 \uc6d0\uc778\uc744 \ucc3e\uae30 \uc704\ud574 \ud568\uc218\ub97c \uac80\uc0ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9087\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/08\/evt_66_stats_bad_function2.png\" alt=\"\" width=\"893\" height=\"214\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function2.png 918w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function2-300x72.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function2-768x184.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function2-20x5.png 20w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/p>\n<ul>\n<li>\uc774 \uc774\ubca4\ud2b8 \ud568\uc218\ub97c \ubc30\ud3ec \ud574\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc774 \uacbd\uc6b0 \uc624\ub958\ub97c \uc218\uc815\ud558\uc5ec 4\uc904\uc744 \ub9cc\ub4ed\ub2c8\ub2e4: \"var a=2;\".<\/li>\n<li>\uc774 \uc774\ubca4\ud2b8 \ud568\uc218\ub97c \ub2e4\uc2dc \ubc30\ud3ec\ud569\ub2c8\ub2e4.<\/li>\n<li>\ucf54\ub4dc\uac00 \uc218\uc815\ub418\uba74 \uac1c\ubc1c\uc790\ub294 \uc774\uc81c \uc131\uacf5 \uce74\uc6b4\ud130\uac00 \uc99d\uac00\ud568\uc5d0 \ub530\ub77c \uc62c\ubc14\ub978 \ub3d9\uc791\uacfc \uc9c4\ud589 \uc0c1\ud669\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9088\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/08\/evt_66_stats_bad_function3.png\" alt=\"\" width=\"890\" height=\"149\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function3.png 890w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function3-300x50.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function3-768x129.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/evt_66_stats_bad_function3-20x3.png 20w\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" \/><\/p>\n<h3>\uc774\uc81c \uc628\uc0ad\uc81c \ud578\ub4e4\ub7ec\uac00 \uc0ad\uc81c \ub610\ub294 \ub9cc\ub8cc\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/h3>\n<p>OnDelete \ud578\ub4e4\ub7ec\ub294 \uc774\uc81c \uc0c8\ub85c\uc6b4 \ub9e4\uac1c\ubcc0\uc218 \"\uc635\uc158\"\uc744 \ud1b5\ud574 \ubb38\uc11c\uac00 \uc0ad\uc81c\ub418\uc5c8\ub294\uc9c0 \ub9cc\ub8cc\ub418\uc5c8\ub294\uc9c0\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.  \uc790\uc8fc \uc694\uccad\ub418\ub294 \uc774 \uae30\ub2a5\uc744 \ud1b5\ud574 \uc0ad\uc81c \uc720\ud615\uc5d0 \ub530\ub77c \ub2e4\ub978 \ub85c\uc9c1\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>\uc608\uc2dc:<\/h4>\n<ul>\n<li>\uc774\ubca4\ud2b8\uc6a9 '\uc18c\uc2a4' \ubc84\ud0b7\uacfc '\uba54\ud0c0\ub370\uc774\ud130' \ubc84\ud0b7\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>\uc774 \ud568\uc218\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4(\uc544\ub798 \ucf54\ub4dc).<\/li>\n<li>KEY\ub9cc \ubcf4\ubbc0\ub85c \uc18c\uc2a4 \ubc84\ud0b7\uc5d0 DATA\uac00 \uc788\ub294 \ubb38\uc11c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.\n<pre class=\"font:monospace font-size:18 line-height:24 toolbar-overlay:false striped:false marking:false ranges:false nums:false nums-toggle:false lang:default decode:true\">KEY doc_to_delete::1<\/pre>\n<\/li>\n<li>\uba87 \ucd08 \ud6c4 \ub85c\uadf8 \uac80\uc0ac<\/li>\n<li>\"doc_to_delete::1\" \ud0a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc11c\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/li>\n<li>1\ubd84 \ud6c4 \ub85c\uadf8 \uac80\uc0ac<\/li>\n<li>\uc774 \uae30\ub2a5 \ubc30\ud3ec \ucde8\uc18c<\/li>\n<\/ul>\n<pre class=\"toolbar-overlay:false lang:js decode:true\">function OnDelete(meta, options) {\r\n    if (options.expired) {\r\n        log(\"doc expired:\",meta.id);\r\n        \/*\r\n        * take some action ...\r\n        *\/\r\n    } else {\r\n        log(\"doc deleted:\",meta.id);\r\n        \/*\r\n        * take some other action ...\r\n        *\/\r\n    }\r\n}<\/pre>\n<h3>Couchbase Server 6.6 \ub9ac\uc18c\uc2a4 \uc0b4\ud3b4\ubcf4\uae30<\/h3>\n<table>\n<tbody>\n<tr>\n<td><b>\ube14\ub85c\uadf8<\/b><\/td>\n<td><b>\ubb38\uc11c \ubc0f \ud29c\ud1a0\ub9ac\uc5bc<\/b><\/td>\n<td><b>\uc6f9\ud398\uc774\uc9c0 \ubc0f \uc6f9 \uc138\ubbf8\ub098<\/b><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/whats-new-and-improved-in-couchbase-server-6-6\/\"><span style=\"font-weight: 400\">Couchbase Server 6.6\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5<\/span><\/a><\/td>\n<td><a href=\"https:\/\/docs.couchbase.com\/server\/current\/introduction\/whats-new.html\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 6.6\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc740 \ubb34\uc5c7\uc778\uac00\uc694?<\/span><\/a><\/td>\n<td><a href=\"https:\/\/event.on24.com\/eventRegistration\/EventLobbyServlet?target=reg20.jsp&amp;partnerref=website&amp;eventid=2566405&amp;sessionid=1&amp;key=9DB74CF2A4251458E10D64B86B68C0EF&amp;regTag=&amp;sourcepage=register\"><span style=\"font-weight: 400\">Couchbase Server 6.6\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5: \ubd84\uc11d, \ubc31\uc5c5, \ucffc\ub9ac \ub4f1<\/span><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/eventing-improvements-timers-handlers-and-statistics\/\"><span style=\"font-weight: 400\">\uc774\ubca4\ud2b8 \uac1c\uc120 \uc0ac\ud56d(\ud0c0\uc774\uba38, \ud578\ub4e4\ub7ec, \ud1b5\uacc4)<\/span><\/a><\/td>\n<td><a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/release-notes\/relnotes.html\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 6.6 \ub9b4\ub9ac\uc2a4 \ub178\ud2b8<\/span><\/a><\/td>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/analytics\/\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4 \uc11c\ube44\uc2a4<\/span><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/remote-links-analyze-your-enterprise-with-couchbase-analytics\/\"><span style=\"font-weight: 400\">\uc6d0\uaca9 \ub9c1\ud06c - \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4\ub85c \uae30\uc5c5 \ubd84\uc11d\ud558\uae30<\/span><\/a><\/td>\n<td><a href=\"https:\/\/index-advisor.couchbase.com\/indexadvisor\/#1\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800 \uc11c\ube44\uc2a4 \uccb4\ud5d8\ud558\uae30<\/span><\/a><\/td>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/server\/whats-new\/\"><span style=\"font-weight: 400\">Couchbase Server\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5(\uc81c\ud488 \ud398\uc774\uc9c0)<\/span><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/external-datasets-extend-your-reach-with-couchbase-analytics\/\"><span style=\"font-weight: 400\">\uc678\ubd80 \ub370\uc774\ud130 \uc138\ud2b8 - Couchbase \ubd84\uc11d\uc73c\ub85c \ub3c4\ub2ec \ubc94\uc704 \ud655\uc7a5\ud558\uae30<\/span><\/a><\/td>\n<td><a href=\"https:\/\/docs.couchbase.com\/server\/current\/analytics\/rest-links.html\"><span style=\"font-weight: 400\">REST API\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc560\ub110\ub9ac\ud2f1\uc2a4 \uc6d0\uaca9 \ubc0f S3 \ub9c1\ud06c \uc124\uc815\ud558\uae30<\/span><\/a><\/td>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/editions\/\"><span style=\"font-weight: 400\">\uc5d0\ub514\uc158 \ube44\uad50<\/span><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-flex-index-with-couchbase\/\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc640 \ud568\uaed8 \ud50c\ub809\uc2a4 \uc778\ub371\uc2a4 \ubc1c\ud45c<\/span><\/a><\/td>\n<td><a href=\"https:\/\/docs.couchbase.com\/server\/current\/analytics\/5_ddl.html\"><span style=\"font-weight: 400\">\ub370\uc774\ud130 \uc815\uc758 \uc5b8\uc5b4(DDL)\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc678\ubd80 \ub370\uc774\ud130 \uc9d1\ud569 \ub9cc\ub4e4\uae30<\/span><\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/introducing-backing-up-to-object-store-s3\/\"><span style=\"font-weight: 400\">\uac1c\uccb4 \uc800\uc7a5\uc18c\uc5d0 \ubc31\uc5c5(S3) \uc18c\uac1c<\/span><\/a><\/td>\n<td><a href=\"https:\/\/docs.couchbase.com\/server\/current\/cli\/cbcli\/couchbase-cli-analytics-link-setup.html\"><span style=\"font-weight: 400\">CLI\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc560\ub110\ub9ac\ud2f1\uc2a4 \uc6d0\uaca9 \ubc0f S3 \ub9c1\ud06c \uc124\uc815\ud558\uae30<\/span><\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/import-documents-with-admin-ui\/\"><span style=\"font-weight: 400\">\uc6f9 \uad00\ub9ac \ucf58\uc194\ub85c \ubb38\uc11c \uac00\uc838\uc624\uae30<\/span><\/a><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\ucc38\uc870<\/h3>\n<ul>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc774\ubca4\ud2b8 \ubb38\uc11c:<br \/>\n<a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-overview.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-overview.html<\/a><\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc774\ubca4\ud2b8 \uc608\uc2dc:<br \/>\n<a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-examples.html\">https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-examples.html<\/a><\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 6.6\uc758 \uc0c8\ub85c\uc6b4 \uae30\ub2a5:<br \/>\n<a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/introduction\/whats-new.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/docs.couchbase.com\/server\/6.6\/introduction\/whats-new.html<\/a><\/li>\n<li>\uc774\ubca4\ud2b8\uc5d0 \ub300\ud55c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8:<br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/tag\/eventing\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.couchbase.com\/blog\/tag\/eventing\/<\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">6.6\uc758 \uae30\ub2a5\uc774 \ub9c8\uc74c\uc5d0 \ub4dc\uc168\ub294\uc9c0, \uc55e\uc73c\ub85c \ube44\uc988\ub2c8\uc2a4\uc5d0 \uc5b4\ub5a4 \ub3c4\uc6c0\uc774 \ub420\uc9c0 \uc5ec\ub7ec\ubd84\uc758 \uc758\uacac\uc744 \ub4e3\uace0 \uc2f6\uc2b5\ub2c8\ub2e4. \ub313\uae00\uc744 \ud1b5\ud574 \uc758\uacac\uc744 \uacf5\uc720\ud574 \uc8fc\uc138\uc694. <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/\"><span style=\"font-weight: 400\">\ud3ec\ub7fc<\/span><\/a><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<h3>\uac01\uc8fc<\/h3>\n<div style=\"font-size: 75%\">\n<p><a id=\"#footnote_1\"><\/a><a href=\"#footnote_1_src\"><sup>[1]<\/sup><\/a> \uc2ec\uac01\ub3c4\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc694\uc18c\uc5d0 \ub530\ub77c \uacb0\uc815\ub429\ub2c8\ub2e4. a) \ud65c\uc131 \ud0c0\uc774\uba38\ub97c \ubcf4\uc720\ud558\uace0 \uc788\ub294 vBucket\uc758 \uc218\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud5a5\ud6c4 \ud0c0\uc774\uba38\uac00 \uba87 \uac1c\ub9cc \uc788\ub294 \uacbd\uc6b0 \ubb38\uc81c\uac00 \ub208\uc5d0 \ub744\uc9c0 \uc54a\uac70\ub098 \uad6c\uccb4\ud654\ub418\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 b) \uc774\ubca4\ud2b8 \ud0c0\uc774\uba38\uac00 \ucd5c\uadfc\uc5d0 vBucket\uc5d0\uc11c \uc2e4\ud589\ub418\uc5c8\ub294\uc9c0 \uc5ec\ubd80(\uae30\ub2a5\ubcc4\ub85c \uc9c0\uc815\ub41c vBucket\uc5d0 \ub300\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud569\ub2c8\ub2e4). \ub530\ub77c\uc11c \ub2e8\uae30 \ud0c0\uc774\uba38 \ud65c\ub3d9\uc774 \ub9ce\uc740 6.5 \uc2dc\uc2a4\ud15c\uc5d0\uc11c\ub294 \ud0c0\uc774\uba38\uac00 \uba3c \ubbf8\ub798\ub85c \uc608\uc57d\ub418\uc5b4 \uc788\uc5b4\ub3c4 \uc774 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.  6.6\uc5d0\uc11c\ub294 \uc774 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a id=\"#footnote_2\"><\/a><a href=\"#footnote_2_src\"><sup>[2]<\/sup><\/a> \ucde8\uc18c \ud0c0\uc774\uba38() \uc5f0\uc0b0\uc774\ub098 \ucc38\uc870\ub85c \uae30\uc874 \ud0c0\uc774\uba38\ub97c \ub36e\uc5b4\uc4f0\ub294 \uacbd\uc6b0, Eventing \"\uba54\ud0c0\ub370\uc774\ud130\" \ubc84\ud0b7\uc5d0 \uc784\uc2dc \ubb38\uc11c\uac00 \uc0dd\uc131\ub418\uba70, \uc774\ub294 a) \ucde8\uc18c\ub41c(\ub610\ub294 \ub36e\uc5b4\uc4f4) \ud0c0\uc774\uba38\uc758 \ucd08\uae30 \ubc1c\ub3d9 \uc77c\uc815 \ub610\ub294 b) \ud568\uc218 \ubc30\ud3ec \ud574\uc81c \uc2dc\uc810\uc5d0 \uc815\ub9ac\ub429\ub2c8\ub2e4. \uc774 \ub3d9\uc791\uc740 \uc608\uc57d\ub41c \uc2dc\uac04\uc5d0 \uc2e4\ud589\ub418\ub294 \ud0c0\uc774\uba38\uc640\ub294 \ub2ec\ub9ac \ud0c0\uc774\uba38\uac00 \uc2e4\ud589\ub418\ub294 \uc989\uc2dc \uad00\ub828\ub41c \ubaa8\ub4e0 Eventing \uba54\ud0c0\ub370\uc774\ud130\uac00 Eventing \"\uba54\ud0c0\ub370\uc774\ud130\" \ubc84\ud0b7\uc5d0\uc11c \uc815\ub9ac\ub429\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>With the release of Couchbase 6.6 the Eventing Service has major improvements in functionality. We\u2019ve introduced new Eventing Timers that can be cancelled using the cancelTimer() function, or by creating a new timer with the same reference identifier as an [&hellip;]<\/p>","protected":false},"author":42711,"featured_media":11847,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2273,9417],"tags":[],"ppma_author":[9113],"class_list":["post-9083","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-eventing","category-performance"],"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>Eventing Improvements: Timers, Handlers and Statistics - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"New 6.6 Eventing features: Timers can be cancelled or overwritten or used for recurring schedules, ability to differntiate delete v. expiry, and statistics in the UI are co-located with each Functions controls.\" \/>\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\/eventing-improvements-timers-handlers-and-statistics\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eventing Improvements: Timers, Handlers and Statistics\" \/>\n<meta property=\"og:description\" content=\"New 6.6 Eventing features: Timers can be cancelled or overwritten or used for recurring schedules, ability to differntiate delete v. expiry, and statistics in the UI are co-located with each Functions controls.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/eventing-improvements-timers-handlers-and-statistics\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-12T15:39:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:39:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1570\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jon Strabala, Principal Product Manager, 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=\"Jon Strabala, Principal Product Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/\"},\"author\":{\"name\":\"Jon Strabala, Principal Product Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c991579f88217edee79ffedb6fc914cc\"},\"headline\":\"Eventing Improvements: Timers, Handlers and Statistics\",\"datePublished\":\"2020-08-12T15:39:57+00:00\",\"dateModified\":\"2025-06-14T05:39:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/\"},\"wordCount\":1486,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg\",\"articleSection\":[\"Couchbase Server\",\"Eventing\",\"High Performance\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/\",\"name\":\"Eventing Improvements: Timers, Handlers and Statistics - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg\",\"datePublished\":\"2020-08-12T15:39:57+00:00\",\"dateModified\":\"2025-06-14T05:39:26+00:00\",\"description\":\"New 6.6 Eventing features: Timers can be cancelled or overwritten or used for recurring schedules, ability to differntiate delete v. expiry, and statistics in the UI are co-located with each Functions controls.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg\",\"width\":1570,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eventing Improvements: Timers, Handlers and Statistics\"}]},{\"@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\/c991579f88217edee79ffedb6fc914cc\",\"name\":\"Jon Strabala, Principal Product Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9c6045b0c2f7b07b0ee10f94ad748a25\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/db52a9f6d84faba430dd38106cdbc16ff02c2066b103b5f6b4cfcde40e83c683?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/db52a9f6d84faba430dd38106cdbc16ff02c2066b103b5f6b4cfcde40e83c683?s=96&d=mm&r=g\",\"caption\":\"Jon Strabala, Principal Product Manager, Couchbase\"},\"description\":\"Jon Strabala is a Principal Product Manager, responsible for the Couchbase Eventing Service. Before joining Couchbase, he spent more than 20 years building software products across various domains, starting with EDA in aerospace then transitioning to building enterprise software focused on what today is coined \u201cIoT\u201d and \u201cat-scale data.\u201d Jon worked for several small software consultancies until eventually starting and managing his own firm. He has extensive experience in NoSQL\/NewSQL, both in contributing and commercializing new technologies such as compressed bitmaps and column stores. Jon holds a bachelor\u2019s degree in electrical engineering and a master's in computer engineering, both from the University of Southern California, and an MBA from the University of California at Irvine.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/jon-strabala\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Eventing Improvements: Timers, Handlers and Statistics - The Couchbase Blog","description":"New 6.6 Eventing features: Timers can be cancelled or overwritten or used for recurring schedules, ability to differntiate delete v. expiry, and statistics in the UI are co-located with each Functions controls.","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\/eventing-improvements-timers-handlers-and-statistics\/","og_locale":"ko_KR","og_type":"article","og_title":"Eventing Improvements: Timers, Handlers and Statistics","og_description":"New 6.6 Eventing features: Timers can be cancelled or overwritten or used for recurring schedules, ability to differntiate delete v. expiry, and statistics in the UI are co-located with each Functions controls.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/eventing-improvements-timers-handlers-and-statistics\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-08-12T15:39:57+00:00","article_modified_time":"2025-06-14T05:39:26+00:00","og_image":[{"width":1570,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg","type":"image\/jpeg"}],"author":"Jon Strabala, Principal Product Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jon Strabala, Principal Product Manager, Couchbase","Est. reading time":"10\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/"},"author":{"name":"Jon Strabala, Principal Product Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c991579f88217edee79ffedb6fc914cc"},"headline":"Eventing Improvements: Timers, Handlers and Statistics","datePublished":"2020-08-12T15:39:57+00:00","dateModified":"2025-06-14T05:39:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/"},"wordCount":1486,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg","articleSection":["Couchbase Server","Eventing","High Performance"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/","url":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/","name":"Eventing Improvements: Timers, Handlers and Statistics - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg","datePublished":"2020-08-12T15:39:57+00:00","dateModified":"2025-06-14T05:39:26+00:00","description":"New 6.6 Eventing features: Timers can be cancelled or overwritten or used for recurring schedules, ability to differntiate delete v. expiry, and statistics in the UI are co-located with each Functions controls.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/08\/couchbase-eventing-performance.jpeg","width":1570,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/eventing-improvements-timers-handlers-and-statistics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Eventing Improvements: Timers, Handlers and Statistics"}]},{"@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\/c991579f88217edee79ffedb6fc914cc","name":"Jon Strabala, \uc218\uc11d \uc81c\ud488 \uad00\ub9ac\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9c6045b0c2f7b07b0ee10f94ad748a25","url":"https:\/\/secure.gravatar.com\/avatar\/db52a9f6d84faba430dd38106cdbc16ff02c2066b103b5f6b4cfcde40e83c683?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/db52a9f6d84faba430dd38106cdbc16ff02c2066b103b5f6b4cfcde40e83c683?s=96&d=mm&r=g","caption":"Jon Strabala, Principal Product Manager, Couchbase"},"description":"\uc874 \uc2a4\ud2b8\ub77c\ubc1c\ub77c\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc774\ubca4\ud2b8 \uc11c\ube44\uc2a4\ub97c \ub2f4\ub2f9\ud558\ub294 \uc218\uc11d \uc81c\ud488 \uad00\ub9ac\uc790\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 \ud56d\uacf5\uc6b0\uc8fc \ubd84\uc57c\uc758 EDA\ub97c \uc2dc\uc791\uc73c\ub85c \uc624\ub298\ub0a0 \"IoT\"\uc640 \"\ub300\uaddc\ubaa8 \ub370\uc774\ud130\"\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd98 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uad6c\ucd95\uc73c\ub85c \uc804\ud658\ud558\ub294 \ub4f1 20\ub144 \uc774\uc0c1 \ub2e4\uc591\ud55c \uc601\uc5ed\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc81c\ud488\uc744 \uad6c\ucd95\ud588\uc2b5\ub2c8\ub2e4. Jon\uc740 \uc5ec\ub7ec \uc18c\uaddc\ubaa8 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \ucee8\uc124\ud305 \ud68c\uc0ac\uc5d0\uc11c \uadfc\ubb34\ud558\ub2e4\uac00 \uacb0\uad6d \uc790\uc2e0\uc758 \ud68c\uc0ac\ub97c \uc124\ub9bd\ud558\uace0 \uacbd\uc601\ud558\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \uc555\ucd95 \ube44\ud2b8\ub9f5\uacfc \uceec\ub7fc \uc2a4\ud1a0\uc5b4\uc640 \uac19\uc740 \uc0c8\ub85c\uc6b4 \uae30\uc220\uc5d0 \uae30\uc5ec\ud558\uace0 \uc0c1\uc6a9\ud654\ud558\ub294 \ub370 \uc788\uc5b4 NoSQL\/NewSQL\uc5d0 \ub300\ud55c \ud3ed\ub113\uc740 \uacbd\ud5d8\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. Jon\uc740 \uc11c\ub358 \uce98\ub9ac\ud3ec\ub2c8\uc544 \ub300\ud559\uad50\uc5d0\uc11c \uc804\uae30\uacf5\ud559 \ud559\uc0ac \ubc0f \ucef4\ud4e8\ud130\uacf5\ud559 \uc11d\uc0ac \ud559\uc704\ub97c, \uce98\ub9ac\ud3ec\ub2c8\uc544 \ub300\ud559\uad50 \uc5b4\ubc14\uc778 \ucea0\ud37c\uc2a4\uc5d0\uc11c MBA\ub97c \ucde8\ub4dd\ud588\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/jon-strabala\/"}]}},"authors":[{"term_id":9113,"user_id":42711,"is_guest":0,"slug":"jon-strabala","display_name":"Jon Strabala, Principal Product Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/db52a9f6d84faba430dd38106cdbc16ff02c2066b103b5f6b4cfcde40e83c683?s=96&d=mm&r=g","author_category":"","last_name":"Strabala, Principal Product Manager, Couchbase","first_name":"Jon","job_title":"","user_url":"","description":"\uc874 \uc2a4\ud2b8\ub77c\ubc1c\ub77c\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc774\ubca4\ud2b8 \uc11c\ube44\uc2a4\ub97c \ub2f4\ub2f9\ud558\ub294 \uc218\uc11d \uc81c\ud488 \uad00\ub9ac\uc790\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 \ud56d\uacf5\uc6b0\uc8fc \ubd84\uc57c\uc758 EDA\ub97c \uc2dc\uc791\uc73c\ub85c \uc624\ub298\ub0a0 \"IoT\"\uc640 \"\ub300\uaddc\ubaa8 \ub370\uc774\ud130\"\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd98 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uad6c\ucd95\uc73c\ub85c \uc804\ud658\ud558\ub294 \ub4f1 20\ub144 \uc774\uc0c1 \ub2e4\uc591\ud55c \uc601\uc5ed\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc81c\ud488\uc744 \uad6c\ucd95\ud588\uc2b5\ub2c8\ub2e4. Jon\uc740 \uc5ec\ub7ec \uc18c\uaddc\ubaa8 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \ucee8\uc124\ud305 \ud68c\uc0ac\uc5d0\uc11c \uadfc\ubb34\ud558\ub2e4\uac00 \uacb0\uad6d \uc790\uc2e0\uc758 \ud68c\uc0ac\ub97c \uc124\ub9bd\ud558\uace0 \uacbd\uc601\ud558\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \uc555\ucd95 \ube44\ud2b8\ub9f5\uacfc \uceec\ub7fc \uc2a4\ud1a0\uc5b4\uc640 \uac19\uc740 \uc0c8\ub85c\uc6b4 \uae30\uc220\uc5d0 \uae30\uc5ec\ud558\uace0 \uc0c1\uc6a9\ud654\ud558\ub294 \ub370 \uc788\uc5b4 NoSQL\/NewSQL\uc5d0 \ub300\ud55c \ud3ed\ub113\uc740 \uacbd\ud5d8\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. Jon\uc740 \uc11c\ub358 \uce98\ub9ac\ud3ec\ub2c8\uc544 \ub300\ud559\uad50\uc5d0\uc11c \uc804\uae30\uacf5\ud559 \ud559\uc0ac \ubc0f \ucef4\ud4e8\ud130\uacf5\ud559 \uc11d\uc0ac \ud559\uc704\ub97c, \uce98\ub9ac\ud3ec\ub2c8\uc544 \ub300\ud559\uad50 \uc5b4\ubc14\uc778 \ucea0\ud37c\uc2a4\uc5d0\uc11c MBA\ub97c \ucde8\ub4dd\ud588\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/9083","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\/42711"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=9083"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/9083\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/11847"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=9083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=9083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=9083"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=9083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}