{"id":733,"date":"2026-05-18T22:37:27","date_gmt":"2026-05-18T14:37:27","guid":{"rendered":"https:\/\/junai.ai\/blog\/n8n-error-workflow-17\/"},"modified":"2026-05-18T22:40:35","modified_gmt":"2026-05-18T14:40:35","slug":"n8n-error-workflow-17","status":"publish","type":"post","link":"https:\/\/junai.ai\/blog\/n8n-error-workflow-17\/","title":{"rendered":"n8n Error Workflow (Ch.17)"},"content":{"rendered":"\n<!-- WordPress REST API \ubc1c\ud589\uc6a9 HTML (\uc790\ub3d9 \uc0dd\uc131) -->\n<!-- WP-FEATURED-MEDIA-ID: 725 -->\n<div style=\"max-width:800px;margin:0 auto;\">\n<style>\n:root {\n  --color-primary: #4f46e5; --color-accent: #6366f1;\n  --color-bg: #fafbfc; --color-bg-card: #ffffff;\n  --color-text: #1a202c; --color-text-muted: #64748b;\n  --hero-start: #1e1b4b; --hero-end: #4338ca;\n}\n* { box-sizing: border-box; }\n.container { max-width: 760px; margin: 0 auto; padding: 0 24px 80px; }\n.hero { background: linear-gradient(135deg, var(--hero-start) 0%, var(--hero-end) 100%); color: #fff; padding: 80px 24px 60px; text-align: center; }\n.hero .eyebrow { display: inline-block; font-size: 14px; color: #a5b4fc; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 14px; }\n.hero h1 { font-size: 36px; margin: 0 0 16px; line-height: 1.3; font-weight: 800; }\n.hero p { color: #cbd5e1; font-size: 18px; max-width: 640px; margin: 0 auto; line-height: 1.6; }\n.hero img { width: 100%; max-width: 640px; height: auto; margin: 32px auto 0; border-radius: 10px; display: block; }\narticle { padding-top: 48px; }\narticle h2 { font-size: 26px; margin: 56px 0 20px; padding-left: 14px; border-left: 5px solid var(--color-accent); line-height: 1.4; }\narticle h3 { font-size: 19px; margin: 32px 0 12px; color: var(--color-primary); }\narticle p { margin: 16px 0; }\narticle strong { color: var(--color-primary); font-weight: 700; }\narticle code { background: #f1f5f9; padding: 2px 8px; border-radius: 4px; font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 14px; color: #4338ca; }\n.databox { background: #eef2ff; border-left: 4px solid var(--color-accent); padding: 16px 20px; margin: 24px 0; border-radius: 0 8px 8px 0; font-size: 15.5px; }\n.databox strong { color: var(--color-primary); }\n.warnbox { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); padding: 16px 20px; margin: 24px 0; border-radius: 8px; font-size: 15.5px; }\n.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 22px 0; }\ntable { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--color-bg-card); }\nth, td { padding: 11px 12px; text-align: left; border-bottom: 1px solid #e2e8f0; vertical-align: top; }\nth { background: #f1f5f9; font-weight: 700; color: #0f172a; }\ntd:first-child, th:first-child { font-weight: 700; }\n@media (max-width: 560px) {\n  .tablewrap table, .tablewrap thead, .tablewrap tbody, .tablewrap tr, .tablewrap th, .tablewrap td { display: block; width: auto; }\n  .tablewrap thead { display: none; }\n  .tablewrap tr { margin: 0 0 14px; border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; }\n  .tablewrap td { border: none; border-bottom: 1px solid #f1f5f9; padding: 9px 14px; }\n  .tablewrap td:first-child { background: #f1f5f9; font-weight: 800; font-size: 15.5px; }\n  .tablewrap td:last-child { border-bottom: none; }\n  .tablewrap td[data-label]::before { content: attr(data-label) \" \u2014 \"; font-weight: 700; color: var(--color-primary); }\n}\n.cta { background: linear-gradient(135deg, #4338ca 0%, #6366f1 100%); color: #fff; padding: 28px 24px; border-radius: 12px; margin: 48px 0 0; text-align: center; }\n.cta h3 { color: #fff; margin: 0 0 8px; font-size: 20px; }\n.cta p { color: #c7d2fe; margin: 0; font-size: 15.5px; }\n.footer-nav { margin-top: 32px; padding-top: 20px; border-top: 1px solid #e2e8f0; font-size: 14px; color: var(--color-text-muted); }\n.footer-nav a { color: var(--color-primary); text-decoration: none; }\n.footer-nav a:hover { text-decoration: underline; }\n@media (max-width: 480px) { .hero h1 { font-size: 26px; } .hero p { font-size: 16px; } article h2 { font-size: 21px; } article h3 { font-size: 17px; } body { font-size: 16px; } }\n<\/style>\n<section class=\"hero\">\n  <span class=\"eyebrow\">n8n \uad50\uc7ac \u00b7 \uace0\uae09 17\ud3b8<\/span>\n  <h1>n8n Error Workflow + \uc7ac\uc2dc\ub3c4 \uc804\ub7b5<\/h1>\n  <p>\uc6b4\uc601 \uc6cc\ud06c\ud50c\ub85c\uac00 \uba48\ucd94\uc9c0 \uc54a\uac8c \ud558\ub294 3\uacc4\uce35 \ubcf5\uad6c \uad6c\uc870. \ub178\ub4dc retry \u00b7 Error Trigger \u00b7 \uc911\uc559 \uc54c\ub9bc.<\/p>\n  <img decoding=\"async\" src=\"https:\/\/junai.ai\/blog\/wp-content\/uploads\/2026\/05\/hero-5-16.jpg\" alt=\"\uc548\uc804\ub9dd\uc5d0 \uc7a1\ud788\ub294 \ube68\uac04 \uacbd\uace0 \uc544\uc774\ucf58\uacfc \uc7ac\uc2dc\ub3c4 \ud654\uc0b4\ud45c \uc77c\ub7ec\uc2a4\ud2b8 \u2014 Error Workflow \ubcf5\uad6c \ucee8\uc149\">\n<\/section>\n\n<div class=\"container\">\n<article>\n\n<p>&#8220;\ub0b4\uc77c \uc0c8\ubcbd 3\uc2dc\uc5d0 \uc6cc\ud06c\ud50c\ub85c\uac00 \uc8fd\uc5c8\ub2e4\ub294 \uc54c\ub9bc\uc774 \uc624\uba74 \uc5b4\uca4c\uc9c0?&#8221; \uc6b4\uc601 \ub2e8\uacc4\ub85c \ub4e4\uc5b4\uac00\uba74 \ubaa8\ub4e0 \uc790\ub3d9\ud654 \uc5d4\uc9c0\ub2c8\uc5b4\uac00 \ub9c8\uc8fc\ud558\ub294 \uc9c8\ubb38\uc774\ub2e4. n8n \uc758 \ub2f5\uc740 \uba85\ud655\ud558\ub2e4 \u2014 <strong>3\uacc4\uce35 \uc5d0\ub7ec \ud578\ub4e4\ub9c1<\/strong>. \ub178\ub4dc \ub2e8\uc704 retry, Error Trigger \uc6cc\ud06c\ud50c\ub85c, \uc911\uc559 \ub85c\uae45\u00b7\uc54c\ub9bc.<\/p>\n\n<p>\uc774\ubc88 17\ud3b8\uc740 \uc774\ub860\ubcf4\ub2e4 \uc2e4\uc804 \uc704\uc8fc. <strong>\uc5b4\ub5a4 \uc5d0\ub7ec\ub97c \uc7ac\uc2dc\ub3c4\ud574\uc57c \ud558\uace0 \uc5b4\ub5a4 \uac74 \uc989\uc2dc \uc54c\ub9bc\ud574\uc57c \ud558\ub294\uc9c0<\/strong>, <strong>\uc9c0\uc218 \ubc31\uc624\ud504\ub97c \uc5b4\ub5bb\uac8c \uac70\ub294\uc9c0<\/strong>, <strong>quarantine\u00b7escalate \ud328\ud134<\/strong>\uae4c\uc9c0 \ud55c \ubc88\uc5d0 \uc815\ub9ac\ud55c\ub2e4. \uc6b4\uc601 \ubc30\ud3ec \uc9c1\uc804 \uccb4\ud06c\ub9ac\uc2a4\ud2b8\ub85c \uc4f0\uba74 \uc801\ud569.<\/p>\n\n<h2>1. 3\uacc4\uce35 \ubcf5\uad6c \uad6c\uc870 \u2014 \ud55c \uc7a5\uc73c\ub85c \ub05d<\/h2>\n\n<p>\ub300\ubd80\ubd84\uc758 \uc6b4\uc601 \uc0ac\uace0\ub294 \ud55c \uac00\uc9c0 \ud328\ud134 \u2014 <strong>\ud55c \ub178\ub4dc\uac00 \uc2e4\ud328 \u2192 \uc6cc\ud06c\ud50c\ub85c \uc804\uccb4 \uc885\ub8cc \u2192 \uc54c\ub9bc \ubbf8\ubc1c\uc1a1 \u2192 \ub2e4\uc74c \ub0a0 \ubc1c\uacac<\/strong>. \uc774\uac78 \ub9c9\ub294 \uac8c 3 \ub808\uc774\uc5b4\ub2e4. \ud55c \ub808\uc774\uc5b4\ub85c\ub294 \ubd80\uc871\ud558\uace0, \uc138 \uac1c\uac00 \ubcf4\uc644\ud558\ub294 \uac8c \ud575\uc2ec.<\/p>\n\n<div class=\"tablewrap\">\n<table>\n<thead><tr><th>\ub808\uc774\uc5b4<\/th><th>\uc7a1\ub294 \uc5d0\ub7ec<\/th><th>\uad6c\ud604<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>\u2460 \ub178\ub4dc retry<\/td><td data-label=\"\uc7a1\ub294 \uc5d0\ub7ec\">\uc77c\uc2dc\uc801 (rate limit \u00b7 timeout \u00b7 \ub124\ud2b8\uc6cc\ud06c \ub04a\uae40)<\/td><td data-label=\"\uad6c\ud604\">\ud574\ub2f9 \ub178\ub4dc\uc758 Settings \u2192 &#8220;Retry on Fail&#8221; + Max Tries 3-5 + Wait 5s<\/td><\/tr>\n<tr><td>\u2461 Error Trigger<\/td><td data-label=\"\uc7a1\ub294 \uc5d0\ub7ec\">\ub808\uc774\uc5b4 \u2460\uc744 \ub118\uae34 \ubaa8\ub4e0 \uc601\uad6c \uc2e4\ud328<\/td><td data-label=\"\uad6c\ud604\">\ubcc4\ub3c4 \uc6cc\ud06c\ud50c\ub85c\uc5d0 Error Trigger \ub178\ub4dc + Slack\u00b7Email \ucd9c\ub825<\/td><\/tr>\n<tr><td>\u2462 \uc911\uc559 \ub85c\uae45<\/td><td data-label=\"\uc7a1\ub294 \uc5d0\ub7ec\">\ud328\ud134 \ubd84\uc11d\u00b7SLA \ucd94\uc801\uc6a9 \ub204\uc801 \uae30\ub85d<\/td><td data-label=\"\uad6c\ud604\">Error Trigger \uc548\uc5d0 Postgres\/Sheets append \ucd94\uac00<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n<p>\uc8fc\uc758 \u2014 Error Trigger \ub294 <strong>\uc6cc\ud06c\ud50c\ub85c\ub9c8\ub2e4 \ub530\ub85c \ub9cc\ub4e4\uc9c0 \ub9d0\uace0 \ud558\ub098\ub9cc \ub9cc\ub4e4\uc5b4\uc11c \ubaa8\ub4e0 \uc6cc\ud06c\ud50c\ub85c\uc5d0 \uc5f0\uacb0<\/strong>\ud55c\ub2e4. \uc6cc\ud06c\ud50c\ub85c Settings \u2192 &#8220;Error Workflow&#8221; \ub4dc\ub86d\ub2e4\uc6b4\uc5d0\uc11c \uac19\uc740 \uac70 \uc120\ud0dd. DRY \uc6d0\uce59 + \uc54c\ub9bc \uc77c\uad00\uc131.<\/p>\n\n<h2>2. \uc7ac\uc2dc\ub3c4 \uac00\ub2a5 vs \ubd88\uac00\ub2a5 \uc5d0\ub7ec \ubd84\ub958<\/h2>\n\n<p>\ubaa8\ub4e0 \uc5d0\ub7ec\ub97c \uc7ac\uc2dc\ub3c4\ud558\uba74 \uc548 \ub41c\ub2e4. <strong>401 (\uc778\uc99d \uc2e4\ud328) \ub97c 5\ubc88 \uc7ac\uc2dc\ub3c4\ud558\uba74 \uacc4\uc815\uc774 \uc77c\uc2dc \ucc28\ub2e8<\/strong>\ub418\uace0, <strong>404 (\ub9ac\uc18c\uc2a4 \uc5c6\uc74c) \uc744 \ubc31\uc624\ud504\ub85c \ubbf8\ub8e8\uba74 \uc54c\ub9bc\ub9cc \ub2a6\uc5b4\uc9c4\ub2e4<\/strong>. \ubd84\ub958\uac00 \uccab \ub2e8\uacc4.<\/p>\n\n<div class=\"tablewrap\">\n<table>\n<thead><tr><th>\uc0c1\ud0dc\/\uc720\ud615<\/th><th>\ubd84\ub958<\/th><th>n8n \ucc98\ub9ac<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>429 Too Many Requests<\/td><td data-label=\"\ubd84\ub958\">\uc7ac\uc2dc\ub3c4 \uac00\ub2a5 (\uc9c0\uc218 \ubc31\uc624\ud504 \ud544\uc218)<\/td><td data-label=\"n8n \ucc98\ub9ac\">Retry on Fail + Wait 5s\u00b710s\u00b720s \uc99d\uac00<\/td><\/tr>\n<tr><td>500\/502\/503\/504<\/td><td data-label=\"\ubd84\ub958\">\uc7ac\uc2dc\ub3c4 \uac00\ub2a5 (\uc11c\ubc84 \uc77c\uc2dc \uc7a5\uc560)<\/td><td data-label=\"n8n \ucc98\ub9ac\">Retry on Fail + Wait 5s \u00b7 Max 3<\/td><\/tr>\n<tr><td>\ub124\ud2b8\uc6cc\ud06c timeout<\/td><td data-label=\"\ubd84\ub958\">\uc7ac\uc2dc\ub3c4 \uac00\ub2a5<\/td><td data-label=\"n8n \ucc98\ub9ac\">Retry on Fail + Wait 3s \u00b7 Max 5<\/td><\/tr>\n<tr><td>400 Bad Request<\/td><td data-label=\"\ubd84\ub958\">\uc7ac\uc2dc\ub3c4 \ubd88\uac00 (\uc785\ub825 \uc624\ub958)<\/td><td data-label=\"n8n \ucc98\ub9ac\">Error Trigger \u2192 \uc0ac\uc6a9\uc790 \uc54c\ub9bc<\/td><\/tr>\n<tr><td>401\/403<\/td><td data-label=\"\ubd84\ub958\">\uc7ac\uc2dc\ub3c4 \ubd88\uac00 (\uc778\uc99d\/\uad8c\ud55c)<\/td><td data-label=\"n8n \ucc98\ub9ac\">Error Trigger \u2192 \ud1a0\ud070 \ud68c\uc804 \uc54c\ub9bc \uc6b0\uc120\uc21c\uc704 \u2605<\/td><\/tr>\n<tr><td>404 Not Found<\/td><td data-label=\"\ubd84\ub958\">\uc7ac\uc2dc\ub3c4 \ubd88\uac00 (\ub9ac\uc18c\uc2a4 \ubd80\uc7ac)<\/td><td data-label=\"n8n \ucc98\ub9ac\">IF \ub178\ub4dc\ub85c \ubd84\uae30 \ucc98\ub9ac, \ubcf8\ubb38 \uc6cc\ud06c\ud50c\ub85c \uc548\uc5d0\uc11c \ud761\uc218<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n<div class=\"databox\">\n<strong>89% \uac1c\uc120 \ub370\uc774\ud130<\/strong> \u2014 \ud55c \uc678\ubd80 \uc0ac\ub840\uc5d0 \ub530\ub974\uba74 \uace0\uc815 \uac04\uaca9 \uc7ac\uc2dc\ub3c4 \ub300\uc2e0 \uc9c0\uc218 \ubc31\uc624\ud504 (5s \u2192 10s \u2192 20s \u2192 40s) \ub85c \ubc14\uafe8\ub354\ub2c8 API \uc2e4\ud328\uc728\uc774 89% \uac10\uc18c. 429\u00b75xx \uac00 \ub300\ubd80\ubd84 &#8220;\uc7a0\uc2dc \ud6c4 \uc790\uc5f0 \ubcf5\uad6c&#8221; \ub77c \ubc31\uc624\ud504\uc640 \uad81\ud569\uc774 \uc88b\ub2e4.\n<\/div>\n\n<h2>3. \uc9c0\uc218 \ubc31\uc624\ud504 \u2014 n8n \uc5d0\uc11c \ub450 \uac00\uc9c0 \ubc29\ubc95<\/h2>\n\n<p>n8n \uae30\ubcf8 Retry on Fail \uc740 <strong>\uace0\uc815 \uac04\uaca9<\/strong>\uc774\ub77c \uc9c4\uc9dc \ubc31\uc624\ud504\ub294 \ub530\ub85c \uad6c\uc131. \ub450 \ud328\ud134 \uc911 \ud558\ub098.<\/p>\n\n<h3>\ubc29\ubc95 A \u2014 Code \ub178\ub4dc\ub85c \uc9c1\uc811<\/h3>\n\n<p>\ubcf8\ubb38 \uc6cc\ud06c\ud50c\ub85c\uc758 try \uc704\uce58\uc5d0 Code \ub178\ub4dc 1\uac1c \ucd94\uac00, \uc548\uc5d0\uc11c <code>setTimeout<\/code> \uc73c\ub85c \ubc31\uc624\ud504:<\/p>\n\n<p><code>const attempt = $input.item.json.retry_count || 0;<br>const wait = Math.min(5000 * Math.pow(2, attempt), 60000);<br>await new Promise(r =&gt; setTimeout(r, wait));<br>return [{json: {retry_count: attempt + 1}}];<\/code><\/p>\n\n<p>\uc7a5\uc810 \u2014 \uc815\uad50\ud55c \uc9c0\ud130(\u00b120% \ub79c\ub364) \ucd94\uac00 \uac00\ub2a5. \ub2e8\uc810 \u2014 \ucf54\ub4dc \uc720\uc9c0\ubcf4\uc218 \ud544\uc694.<\/p>\n\n<h3>\ubc29\ubc95 B \u2014 IF + Wait \ub178\ub4dc \uc870\ud569 (No-Code)<\/h3>\n\n<p>Wait \ub178\ub4dc\uc758 \uc2dc\uac04\uc744 \ub3d9\uc801 \ud45c\ud604\uc2dd <code>={{ Math.min(5 * Math.pow(2, $json.retry_count || 0), 60) }}<\/code> \ub85c \uc124\uc815. retry_count \ub97c Set \ub178\ub4dc\ub85c \uc99d\uac00\uc2dc\ud0a4\uba70 IF \ub85c &#8220;Max 5\ud68c \ucd08\uacfc? \u2192 Error Trigger&#8221; \ubd84\uae30.<\/p>\n\n<p>\uc7a5\uc810 \u2014 \uce94\ubc84\uc2a4\uc5d0\uc11c \ud750\ub984 \uc2dc\uac01\ud654. \ub2e8\uc810 \u2014 \ub178\ub4dc 5-6\uac1c \ub354 \ud544\uc694\ud574 \uce94\ubc84\uc2a4\uac00 \ubcf5\uc7a1. \ud300\uc774 \ucf54\ub4dc\ub97c \uc548 \ub9cc\uc9c0\ub294 \ud658\uacbd\uc774\uba74 \uc774 \ubc29\ubc95.<\/p>\n\n<h2>4. Quarantine \u2192 Escalate \ud328\ud134<\/h2>\n\n<p>\ubaa8\ub4e0 \uc601\uad6c \uc2e4\ud328\uac00 \uac19\uc740 \ub300\uc751\uc744 \uc694\uad6c\ud558\uc9c4 \uc54a\ub294\ub2e4. <strong>\ub85c\uadf8\ub9cc \ub0a8\uae30\uba74 \ub418\ub294 \uc2e4\ud328<\/strong>(\ub204\ub77d\ub41c 1\uac74)\uc640 <strong>\uc989\uc2dc \uc778\uac04 \ud638\ucd9c \ud544\uc694\ud55c \uc2e4\ud328<\/strong>(\uacb0\uc81c \ucc98\ub9ac \uc2e4\ud328)\ub294 \ub2e4\ub974\ub2e4. n8n \uc6b4\uc601\uc790\ub4e4\uc774 \uc4f0\ub294 4\ub2e8\uacc4 \uc2dc\ud000\uc2a4 \u2014 <strong>Retry \u2192 Quarantine \u2192 Escalate \u2192 Rollback<\/strong>.<\/p>\n\n<ol>\n<li><strong>Retry<\/strong> \u2014 \uc704 \ub808\uc774\uc5b4 \u2460. 5\ubd84 \ub0b4 \uc790\ub3d9 \ubcf5\uad6c \uc2dc\ub3c4.<\/li>\n<li><strong>Quarantine<\/strong> \u2014 \uc2e4\ud328 \ub370\uc774\ud130\ub97c \ubcc4\ub3c4 &#8220;\ubcf4\ub958 \ud050&#8221; (Postgres \ud14c\uc774\ube14 \ub610\ub294 Sheets) \uc5d0 \uaca9\ub9ac. \uba54\uc778 \uc6cc\ud06c\ud50c\ub85c\ub294 \uacc4\uc18d \uc9c4\ud589. \ub2e4\uc74c \uc0ac\uc774\ud074\uc774\ub098 \uc218\ub3d9 \uac80\ud1a0 \uc2dc \uc7ac\ucc98\ub9ac.<\/li>\n<li><strong>Escalate<\/strong> \u2014 quarantine \ud050\uac00 N \uac74 \uc774\uc0c1 \uc313\uc774\uba74 (\ub610\ub294 critical tag \uac00 \ubd99\uc740 \uc2e4\ud328\uba74) \uc989\uc2dc \uc778\uac04\uc5d0\uac8c Slack DM \u00b7 SMS \u00b7 \ud638\ucd9c.<\/li>\n<li><strong>Rollback<\/strong> \u2014 \ubd80\ubd84 \uc644\ub8cc\ub41c \ud2b8\ub79c\uc7ad\uc158\uc744 \ub418\ub3cc\ub9bc. DB \uc791\uc5c5\uc774\uba74 \uc815\ub9d0 \ud2b8\ub79c\uc7ad\uc158, API \uc791\uc5c5\uc774\uba74 \ubcf4\uc0c1 \ud638\ucd9c (\uc608: WP \uae00 \ubc1c\ud589 \ud6c4 \ubbf8\ub514\uc5b4 \uc5c5\ub85c\ub4dc \uc2e4\ud328 \u2192 \uae00 status \ub97c draft \ub85c \ub418\ub3cc\ub9bc).<\/li>\n<\/ol>\n\n<div class=\"warnbox\">\n<strong>\ud754\ud55c \uc2e4\uc218<\/strong> \u2014 Error Trigger \uc548\uc5d0\uc11c \ub610 \uc678\ubd80 API \ub97c \ud638\ucd9c (Slack \uc54c\ub9bc \uc790\uccb4) \ud588\ub294\ub370 \uadf8\uac8c \ub610 \uc2e4\ud328\ud558\uba74 \ubb34\ud55c \ub8e8\ud504. Error Trigger \uc6cc\ud06c\ud50c\ub85c\uc758 \uc54c\ub9bc \ub178\ub4dc\ub294 <strong>\ucd5c\ub300\ud55c \ub2e8\uc21c<\/strong>\ud558\uac8c (Slack \ub9cc, \ub610\ub294 Email \ub9cc) + \uc790\uccb4 Retry on Fail OFF.\n<\/div>\n\n<p>\uc774 \ud328\ud134\uc774 \uc790\ub9ac \uc7a1\uc73c\uba74 \uc0c8\ubcbd \uc0ac\uace0\ub85c \uae68\uc5b4\ub098\ub294 \ube48\ub3c4\uac00 \uaca9\uac10\ud55c\ub2e4. 18\ud3b8 (Postgres\/DB \uc5f0\ub3d9) \uc758 Upsert \u00b7 \ud2b8\ub79c\uc7ad\uc158\uacfc \uac19\uc774 \uc4f0\uba74 \uc9c4\uc9dc production-grade.<\/p>\n\n<div class=\"cta\">\n<h3>\ub2e4\uc74c \uae00<\/h3>\n<p>n8n \uad50\uc7ac 18\ud3b8 \u2014 Postgres \u00b7 Supabase \u00b7 MySQL \uc5f0\ub3d9. Upsert\u00b7\ud2b8\ub79c\uc7ad\uc158\u00b7\uc5f0\uacb0 \ud480\ub85c \uc548\uc804\ud55c DB \uc791\uc5c5 \ub9cc\ub4e4\uae30.<\/p>\n<\/div>\n\n<div class=\"footer-nav\">\nn8n \uad50\uc7ac \uc2dc\ub9ac\uc988 \u00b7\n<a href=\"https:\/\/junai.ai\/blog\/n8n-intro-1\/\">1\ud3b8 \uc785\ubb38<\/a> \u00b7\n<a href=\"https:\/\/junai.ai\/blog\/n8n-ai-agent-19\/\">19\ud3b8 AI Agent<\/a> \u00b7\n<strong>17\ud3b8 Error Workflow<\/strong>\n<\/div>\n\n<\/article>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>n8n Error Workflow + Retry on Fail \u2014 3\uacc4\uce35 \ubcf5\uad6c \uad6c\uc870. \uc9c0\uc218 \ubc31\uc624\ud504 + quarantine \ud328\ud134.<\/p>\n","protected":false},"author":1,"featured_media":725,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n8n"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/comments?post=733"}],"version-history":[{"count":1,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/733\/revisions"}],"predecessor-version":[{"id":738,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/733\/revisions\/738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media\/725"}],"wp:attachment":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media?parent=733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/categories?post=733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/tags?post=733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}