
๐ n8n์ด๋?
n8n์ ๋ค์ํ ์๋น์ค์ ์์คํ
์ ์๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ์ํฌํ๋ก์ฐ ์๋ํ ํด์
๋๋ค.
์ฝ๊ฒ ๋งํด, “ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ ํด๋ ์์
๋ค์ ์์๋๋ก ์คํํด ์ฃผ๋ ์๋ํ ์์ง”์ด์์.
๋ํ์ ์ธ SaaS ์๋ํ ํด๋ก๋ Zapier๊ฐ ์์ง๋ง, n8n์ ๋ช ๊ฐ์ง ํฐ ์ฐจ๋ณ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๐ ๊ฐ๋ฐ์ ์นํ์ ์ธ ๋ ธ์ฝ๋/๋ก์ฐ์ฝ๋ ์๋ํ ํ๋ซํผ
๐ n8n์ ํน์ง
- ์คํ์์ค & ์
ํํธ์คํ
- Zapier, Make ๊ฐ์ ํด์ ํด๋ผ์ฐ๋ ์๋น์ค ๊ธฐ๋ฐ์ด๋ผ ์ฌ์ฉ๋์ด ๋์ด๋๋ฉด ์๊ธ์ด ๋น ๋ฅด๊ฒ ์ฌ๋ผ๊ฐ๋๋ค.
- n8n์ ์์ ํ ์คํ์์ค์ด๊ณ , ์ง์ ์๋ฒ(Docker, Kubernetes ๋ฑ)์ ์ค์นํด์ ์ด์ํ ์ ์์ด ๋น์ฉ๊ณผ ๋ณด์ ์ธก๋ฉด์์ ์์ ๋๊ฐ ๋์ต๋๋ค.
- Node.js ๊ธฐ๋ฐ ์ํคํ
์ฒ
- n8n์ Node.js ์์์ ๋์๊ฐ๋ฉฐ, JavaScript/TypeScript ์นํ์ ์ธ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ํ์ํ๋ค๋ฉด ์ง์ ์ปค์คํ ๋ ธ๋(Node)๋ฅผ ๋ง๋ค์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
- ํ๋ถํ ํตํฉ ์ง์ (300+ ๋
ธ๋)
- Slack, Discord, Telegram ๊ฐ์ ๋ฉ์ ์
- PostgreSQL, MySQL, MongoDB ๊ฐ์ DB
- AWS, GCP, GitHub, Jira, Sentry ๋ฑ ๋ค์ํ SaaS/DevOps ํด
→ ์ด๋ฏธ ์ค๋น๋ ๋ ธ๋๋ง ์ฐ๊ฒฐํ๋ฉด ๋ฐ๋ก ์๋ํ ์ํฌํ๋ก์ฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- ๋
ธ์ฝ๋/๋ก์ฐ์ฝ๋ ๋ฐฉ์
- UI์์ ๋ ธ๋๋ฅผ ๋์ด๋ค ๋๊ณ ์ฐ๊ฒฐํ๋ฉด ์ํฌํ๋ก์ฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
- ํ์ํ ๋๋ Expression(์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ)์ด๋ Function Node๋ฅผ ํ์ฉํด์ ์ง์ ๋ก์ง์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
- ์ฆ, ๋น๊ฐ๋ฐ์๋ ์ฝ๊ฒ ์ฐ๋, ๊ฐ๋ฐ์๊ฐ ์ฐ๋ฉด ํจ์ฌ ๊ฐ๋ ฅํด์ง๋ ํด์ด์์.
๐ n8n ํต์ฌ ๊ฐ๋
- Workflow - https://docs.n8n.io/workflows/
- ์ ์: n8n์์ ๊ฐ์ฅ ๊ธฐ๋ณธ ๋จ์. ์ฌ๋ฌ Node๋ค์ด ์ฐ๊ฒฐ๋์ด ๋ง๋ค์ด์ง ์๋ํ ํ๋ก์ธ์ค.
- ์ญํ : ํน์ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐ๋ก ์์ํด์, ์กฐ๊ฑด ๋ถ๊ธฐ → ๋ฐ์ดํฐ ๊ฐ๊ณต → ์ธ๋ถ ์๋น์ค ํธ์ถ → ๊ฒฐ๊ณผ ์ ์ฅ ๊ฐ์ ๋จ๊ณ๋ค์ ์์๋๋ก ์คํ.
- ํน์ง:
- GUI ๊ธฐ๋ฐ์ผ๋ก ์๊ฐ์ ์ผ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅ
- ์ฌ์ฌ์ฉ ๊ฐ๋ฅ (Export/Import)
- ์คํ ์ด๋ ฅ ๊ด๋ฆฌ ๊ฐ๋ฅ
- Node - https://docs.n8n.io/integrations/builtin/core-nodes/
- ์ ์: Workflow๋ฅผ ๊ตฌ์ฑํ๋ “์์ ๋จ์”.
- ์ข
๋ฅ:
- Action Node: ์ค์ ์์ ์คํ (DB ์ฟผ๋ฆฌ, HTTP ์์ฒญ, Slack ์ ์ก ๋ฑ)
- Trigger Node: Workflow ์์ ์กฐ๊ฑด ๋ด๋น
- Function Node: JavaScript๋ก ๋ฐ์ดํฐ ๊ฐ๊ณต
- ํน์ง:
- ์ ๋ ฅ → ์ฒ๋ฆฌ → ์ถ๋ ฅ ๊ตฌ์กฐ
- ์๋ก ์ฐ๊ฒฐ๋์ด ๋ฐ์ดํฐ๊ฐ ํ๋ฆ
- Trigger Node
- ์ ์: Workflow๋ฅผ ์คํํ๊ฒ ๋ง๋๋ ์์์ .
- ์์:
- Manual Trigger – ์๋ ์คํ, ๊ฐ๋ฐ/๋๋ฒ๊น ์ ์์ฃผ ์ฌ์ฉ
- Schedule Trigger – ์๊ฐ ๊ธฐ๋ฐ ์๋ ์คํ; cron ํํ์๋ ์ง์
- Form Trigger – n8n์ด ์ ๊ณตํ๋ ๊ฐ๋จํ ์น ํผ ์ ์ถ์ ํตํด ์ํฌํ๋ก์ฐ ์คํ
- Local File Trigger – ํ์ผ ์์คํ ๋ณํ๋ฅผ ๊ฐ์งํด ์๋ ์คํ (์์ฒด ํธ์คํ ์์ ์ ์ฉ)
- ํน์ง:
- Workflow๋ ๋ฐ๋์ Trigger Node์์ ์์
- ์ฌ๋ฌ Trigger Node๋ฅผ ํ Workflow์ ๋ ์๋ ์์
- Expression - https://docs.n8n.io/code/expressions/
- ์ ์: Node ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ ์ ๋์ ์ผ๋ก ๊ฐ์ ์์ฑํ๋ ๋ฐฉ์.
- ์ฌ์ฉ๋ฒ: {{ $json["fieldName"] }} ๊ฐ์ JavaScript ๋ฌธ๋ฒ์ ํ์ฉ.
- ์์:
- API ์๋ต์ ํน์ ํ๋๋ง ๋ค์ Node์ ๋๊ธฐ๊ธฐ
- "Hello {{ $json["username"] }}" → Hello ์ธ์ฐ
- ํน์ง:
- ๋จ์ ๋ณ์ ์นํ๋ถํฐ, JS ์ฝ๋๋ก ๊ฐ๊ณต๊น์ง ๊ฐ๋ฅ
- Function Node๋ฅผ ์ฐ์ง ์์๋ ๊ฐ๋จํ ๋ก์ง์ Expression์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
- Credentials - https://docs.n8n.io/credentials/
- ์ ์: ์ธ๋ถ ์๋น์ค(API, DB ๋ฑ)์ ์ฐ๊ฒฐํ ๋ ํ์ํ ์ธ์ฆ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๋ ๊ธฐ๋ฅ.
- ์์:
- Slack OAuth Token
- PostgreSQL DB ๊ณ์ ์ ๋ณด
- GitHub Personal Access Token
- ํน์ง:
- ์ํธํ๋์ด ์ ์ฅ
- ์ฌ๋ฌ Workflow์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ณด์์ ๋ ธ๋์ ์ง์ ์ ๋ ฅํ์ง ์๊ณ Credentials์ ๋ฑ๋ก ํ ์ ํ
- Execution - https://docs.n8n.io/workflows/executions/
- ์ ์: Workflow๊ฐ ์คํ๋ ๊ธฐ๋ก. ์ด๋ค Trigger๋ก ์์๋์๊ณ , ๊ฐ Node๊ฐ ์ด๋ค ์ ๋ ฅ/์ถ๋ ฅ์ ๊ฐ์ก๋์ง ํ์ธ ๊ฐ๋ฅ.
- ํน์ง:
- ์ฑ๊ณต/์คํจ ์ฌ๋ถ ํ์ธ
- ์คํจ ์ Error Workflow ์ฐ๊ฒฐ ๊ฐ๋ฅ
- Debug ๋ชจ๋์์ ๋จ๊ณ๋ณ ๋ฐ์ดํฐ ํ์ธ ๊ฐ๋ฅ
- ์์:
- Cron Trigger → DB Query → Slack ๋ฉ์์ง → ์ฑ๊ณต ๋ก๊ทธ
- Webhook Trigger → API ์ค๋ฅ ๋ฐ์ → ์คํจ ๋ก๊ทธ
โ๏ธ ์ค์น (Self-host ๊ธฐ์ค)
Docker๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ์ฅ ์ฝ๊ฒ ์ค์นํ ์ ์์ต๋๋ค.
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e N8N_BASIC_AUTH_USER=user \
-e N8N_BASIC_AUTH_PASSWORD=pass \
n8nio/n8n
๐ ์คํ ํ http://localhost:5678 ๋ก ์ ์ํ๋ฉด n8n ์๋ํฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐ N8N_BASIC_AUTH_USER / N8N_BASIC_AUTH_PASSWORD ๋ฅผ ์ค์ ํด ๋๋ฉด ๊ธฐ๋ณธ ์ธ์ฆ ๋ก๊ทธ์ธ ํ๋ฉด์ด ๋น๋๋ค. (๋ณด์์ ๊ถ์ฅ)
๐ณ Docker ์คํ ์ ์ฃผ์ ํ๊ฒฝ๋ณ์
n8n์ ๋ค์ํ ํ๊ฒฝ๋ณ์ ์ค์ ์ ์ง์ํฉ๋๋ค. ์ค๋ฌด์์๋ ์ต์ํ ์๋ ์ ๋๋ ์ง์ ํด๋๋ฉด ์ข์์.
1. ๊ธฐ๋ณธ ๋ณด์
-e N8N_BASIC_AUTH_USER=user \
-e N8N_BASIC_AUTH_PASSWORD=pass
- ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ ๊ณ์ /๋น๋ฐ๋ฒํธ ์ค์
- ๊ธฐ๋ณธ ์ธ์ฆ์ ์ผ์ง ์์ผ๋ฉด ๋๊ตฌ๋ ์ ์ ๊ฐ๋ฅํ๋ฏ๋ก ๊ผญ ์ค์ ๊ถ์ฅ
2. ์คํ ํ๊ฒฝ(Workflow ์ ์ฅ ์์น)
-v ~/.n8n:/home/node/.n8n
- ์ํฌํ๋ก์ฐ์ ์ค์ ์ ํธ์คํธ ๋ณผ๋ฅจ์ ์ ์ฅ
- --rm ์ต์ ์ผ๋ก ์คํํ๋ฉด ์ปจํ ์ด๋ ์ข ๋ฃ ์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋ฏ๋ก, ์ค์ ์ด์์์๋ ๋ฐ๋์ ๋ณผ๋ฅจ์ ๋ง์ดํธํด์ผ ํฉ๋๋ค.
3. ์ธ๋ถ ์ ์์ฉ ์ค์
-e N8N_HOST=example.com \
-e N8N_PORT=5678 \
-e N8N_PROTOCOL=https
- `N8N_HOST`: ์๋น์ค ๋๋ฉ์ธ/ํธ์คํธ๋ช
- `N8N_PORT`: ํฌํธ (๊ธฐ๋ณธ 5678)
- `N8N_PROTOCOL`: http ๋๋ https
๐ ํ๋ก์/๋ฆฌ๋ฒ์ค ํ๋ก์(Nginx, Traefik)์ ํจ๊ป HTTPS ์ค์ ์ ํ์ํฉ๋๋ค.
4. Webhook ๊ด๋ จ
-e WEBHOOK_URL=https://example.com/
- ์ธ๋ถ ์๋น์ค์์ n8n Webhook Node๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ URL
- ํด๋ผ์ฐ๋ ํ๊ฒฝ์ด๋ ๋๋ฉ์ธ ๊ธฐ๋ฐ ์๋น์ค์ ํ์
5. ์คํ/ํ ๋ชจ๋ (๊ณ ๊ธ)
-e EXECUTIONS_PROCESS=main
- `main`: ๋จ์ผ ํ๋ก์ธ์ค (๊ธฐ๋ณธ)
- `queue`: BullMQ ๊ธฐ๋ฐ ํ ๋ชจ๋ (์ฌ๋ฌ ์์ปค์์ ๋ณ๋ ฌ ์คํ ๊ฐ๋ฅ)
- ๋๋ ๋ฐ์ดํฐ/๊ณ ์ฑ๋ฅ ํ๊ฒฝ์์๋ queue ๋ชจ๋์ Redis ์ฐ๋์ ์ฌ์ฉ
6. ์คํ ์ด๋ ฅ ๋ณด๊ด
-e EXECUTIONS_DATA_SAVE_ON_SUCCESS=none \ -e EXECUTIONS_DATA_SAVE_ON_ERROR=all
- ์ฑ๊ณตํ ์คํ์ ๊ธฐ๋กํ์ง ์๊ณ , ์คํจํ ์คํ๋ง ๊ธฐ๋กํ๋๋ก ์ค์
- DB ๊ณต๊ฐ ์ ์ฝ์ ์ ์ฉ
7. SQLite ๋์ Postgres ์ฐ๊ธฐ(์ด์/ํ์ ๊ถ์ฅ)
-e DB_POSTGRESDB_HOST=localhost \
-e DB_POSTGRESDB_PORT=5432 \
-e DB_POSTGRESDB_DATABASE=n8n \
-e DB_POSTGRESDB_USER=n8n \
-e DB_POSTGRESDB_PASSWORD=๋น๋ฐ๋ฒํธ \
- ๊ธฐ๋ณธ DB๋ SQLite์ง๋ง, PostgreSQL์ ๊ณต์ ์ง์ํฉ๋๋ค( MySQL/MariaDB๋ v1.0์์ deprecated ).
- ์คํค๋ง, SSL ๋ฑ๋ ํ๊ฒฝ๋ณ์๋ก ์ธ๋ฐํ๊ฒ ์ค์ ๊ฐ๋ฅํฉ๋๋ค.
`DB_POSTGRESDB_SCHEMA`(๊ธฐ๋ณธ public), `DB_POSTGRESDB_SSL_ENABLED`, ..._CA/CERT/KEY ๋ฑ. - “๊ธฐ๋ณธ์ SQLite, Postgres ์ง์, MySQL/MariaDB deprecated”๋ ๊ณต์ ๋ฌธ์์ ๋ช
์๋์ด ์์ต๋๋ค.
https://docs.n8n.io/hosting/configuration/environment-variables/database/
๐งฉ ์ฃผ์ ๊ธฐ๋ฅ (์ค๋ฌด์์ ๋ง์ด ์ฐ๋ ๊ฒ)
1. Webhook Node → ์ธ๋ถ ์ด๋ฒคํธ ๋ฐ์์ ์ํฌํ๋ก์ฐ ์คํ

- ์ญํ : ์ธ๋ถ ์๋น์ค๊ฐ n8n์ ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํ๋ฉด ์ํฌํ๋ก์ฐ๋ฅผ ์์ํฉ๋๋ค. ํ
์คํธ/์ด์ 2๊ฐ์ URL์ ์ ๊ณตํ๊ณ , ์๋ต ํ์ด๋ฐ(์ฆ์/๋ง์ง๋ง ๋
ธ๋ ์๋ฃ/Respond to Webhook ๋
ธ๋ ์ฌ์ฉ)๋ ์ ํ ๊ฐ๋ฅ.
์ธ์ฆ ๋ฐฉ์(Basic/Header/JWT)๊ณผ CORS, IP ํ์ดํธ๋ฆฌ์คํธ, ๋ฐ์ด๋๋ฆฌ ์์ ๋ ์ง์ํฉ๋๋ค. ์ต๋ ํ์ด๋ก๋๋ ๊ธฐ๋ณธ 16MB(ํ๊ฒฝ๋ณ์ `N8N_PAYLOAD_SIZE_MAX`๋ก ์กฐ์ ) - Tip
- ํ ์คํธ ์ค์ Test URL๋ก “Listen for Test Event”, ์ด์ ์ ํ ์ Production URL.
- HTML์ ์๋ต์ผ๋ก ๋ณด๋ผ ๋๋ n8n์ด ๋ณด์์ ์ํด <iframe>๋ก ๊ฐ์ ์ ์์ด์(1.103.0+)
2. If / Switch / Function(Code) Node — ๋ถ๊ธฐ์ ๊ฐ๊ณต์ 3์ข ์ธํธ

If Node
- ์ญํ : ๋จ์ผ ์กฐ๊ฑด์ผ๋ก true/false ๋ ๊ฐ๋ ๋ถ๊ธฐ. v1.0 ์ดํ ์คํ ์์๊ฐ ๋ฐ๋๋ฉด์(๋ ๊ฑฐ์ v0์ ๋ค๋ฆ) If+Merge ์กฐํฉ์ ๋์์ด ์ ๋ฆฌ๋์์ต๋๋ค(๋ ๊ฑฐ์ ์ฃผ์ ์น์
์ฐธ๊ณ ).
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/ - ์์(ํํ์): {{$json.total > 100}}
Switch Node
- ์ญํ : ์ฌ๋ฌ ์ผ์ด์ค๋ก ๋ผ์ฐํ
(If์ ๋ฉํฐ๋ฒ์ ). Rules ๋ชจ๋(์ถ๋ ฅ๋ณ ๊ท์น) ๋๋ Expression ๋ชจ๋(์ธ๋ฑ์ค ๋ฐํ) ์ง์.
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/ - ์์: ์ํ๊ฐ์ด pending/shipped/cancelled์ผ ๋ 1·2·3๋ฒ ์ถ๋ ฅ์ผ๋ก ๋ถ๊ธฐ
Function / Code Node
- ์ญํ : JS/ํ์ด์ฌ์ผ๋ก ์์ ๋ก์ด ๊ฐ๊ณต. v0.198.0+๋ถํฐ๋ Code Node๊ฐ Function/Function Item์ ๋์ฒด.
- ๋ชจ๋: “Run once for all items”(๋ฐฐ์น ์ฒ๋ฆฌ) vs “Run once for each item”(์์ดํ ๋ณ).
- ์ธ๋ถ ๋ชจ๋: Self-host์์ ์ธ๋ถ npm ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ(์ค์ ํ์). Cloud์์ crypto, moment๋ง ์ ๊ณต. ํ์ผ์์คํ
/์ง์ HTTP ์ ๊ทผ์ ๋ถ๊ฐ(์ ์ฉ ๋
ธ๋ ์ฌ์ฉ). ๋ฐ์ดํฐ ๊ตฌ์กฐ/์์ดํ
๋งํฌ ๊ท์น๋ ๋ฌธ์์ ์ ๋ฆฌ๋ผ ์์ต๋๋ค.
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/ - ์์ฃผ ์ฐ๋ ํจํด(JS)
// ๋ชจ๋ ์
๋ ฅ ์์ดํ
์ ๊ฐ์ ธ์ ๊ฐ๊ณต ํ ๋ฐํ
const items = $input.all();
return items.map(item => ({ json: { ...item.json, ok: true }}));
3. Wait Node → ์น์ธ/์ด๋ฒคํธ/์๊ฐ๊น์ง “์ ์ ๋ฉ์ถค

- ์ญํ : ์คํ์ DB๋ก ์คํ๋ก๋ฉํ๊ณ ์กฐ๊ฑด์ ๊ธฐ๋ค๋ฆฐ ๋ค ์ฌ๊ฐ. ๋๊ธฐ ์กฐ๊ฑด์ ์๊ฐ ๊ฐ๊ฒฉ, ํน์ ์๊ฐ, ์นํ
ํธ์ถ, ํผ ์ ์ถ 4๊ฐ์ง. On Webhook Call์์๋ ์คํ๋ง๋ค ๊ณ ์ ํ $execution.resumeUrl ์ด ์์ฑ๋ผ ์ธ๋ถ์ ์ ๋ฌํด ์ฌ๊ฐ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
65์ด ๋ฏธ๋ง ๋๊ธฐ๋ ์คํ๋ก๋ฉ ์์ด ๊ฐ์ ํ๋ก์ธ์ค์์ ์ด์ด์ง๋๋ค(์๋ฒ ์๊ฐ ๊ธฐ์ค).
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/ - ์ค๋ฌด ์์:
- “๊ฒํ ๋๊ธฐ” ์ด๋ฉ์ผ ๋ฐ์ก → ์น์ธ์๊ฐ resumeUrl ํด๋ฆญ ์ ์ด์ด์ ์งํ
- “๋ด์ผ 09:00์ ๋ค์ ์คํ” ์ค์ผ์ค๋ง
4. Error Workflow → ์คํจ ์ ์๋ฆผ/Slack ์ฐ๋
- ์ญํ : ์ํฌํ๋ก์ฐ ์คํจ ์ Error Trigger ๋
ธ๋๊ฐ ์๋ ๋ณ๋ ์ํฌํ๋ก์ฐ๋ฅผ ์คํํด ์ฌ๋/๋ฉ์ผ ์๋ฆผ, ๋กค๋ฐฑ, ์ฌ์๋ ํ ์ ์ฌ ๋ฑ์ ์ํ. Workflow Settings์์ Error Workflow๋ฅผ ์ง์ ํ๋ฉด ๋ฉ๋๋ค.
https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.errortrigger/ - ๊ตฌ์ฑ ํ: ์คํจ ๋ก๊ทธ๋ฅผ Executions์์ ์ด๋ํ๊ณ , Error Workflow์์ `{{$json.error.message}}`, `{{$json.workflow.id}}` ๊ฐ์ ์ ๋ณด๋ฅผ ์ฌ๋ ๋ฉ์์ง์ ํฌํจ.
https://docs.n8n.io/flow-logic/error-handling/
5. Looping — ๋์ฉ๋/ํ์ด์ง๋ค์ด์ /๋ ์ดํธ๋ฆฌ๋ฐ

- ๊ธฐ๋ณธ ์ฒ ํ: ๋๋ถ๋ถ์ ๋
ธ๋๋ ๋ฆฌ์คํธ ์
๋ ฅ์ ์๋์ผ๋ก ์ํํ๋ฏ๋ก ๋ณ๋ ๋ฃจํ๊ฐ ํ์ ์์ต๋๋ค. ๊ทธ๋๋ ํ์ด์ง๋ค์ด์
, ๋ ์ดํธ ๋ฆฌ๋ฐ ํํผ, ํน์ ์์ธ ๋
ธ๋ ์ฒ๋ฆฌ์๋ Loop Over Items(Split in Batches) ๋
ธ๋๋ฅผ ์๋๋ค. Reset ์ต์
์ผ๋ก ๋ฐ๋ณต ์ ์
๋ ฅ์ ์๋ก ์ด๊ธฐํํ๋ฉฐ ์ข
๋ฃ ์กฐ๊ฑด(If)๊ณผ ํจ๊ป ์ฌ์ฉ
https://docs.n8n.io/flow-logic/looping - ํจํด: “๋ค์ ํ์ด์ง๊ฐ ์์ผ๋ฉด If๋ก ๋ฃจํ ๊ณ์ → ์์ผ๋ฉด ์ข ๋ฃ”, “API 100๊ฑด์ฉ ๋ฐฐ์น ์ ์ก”
6. Version Control(์ด๋ ฅ/๋กค๋ฐฑ) — ์์ ํ ๋ณ๊ฒฝ ๊ด๋ฆฌ
- Workflow History: Enterprise(Cloud Pro๋ ์ ํ์ )์์ ์ด์ ๋ฒ์ ์ด๋/๋ก๋ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
https://docs.n8n.io/release-notes - Git ๊ธฐ๋ฐ ํ๊ฒฝ ๋ถ๋ฆฌ(์์ค ์ปจํธ๋กค): ์ํฐํ๋ผ์ด์ฆ์์ Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฐ๊ฒฐํด ๋ธ๋์น๋ณ ํ๊ฒฝ(dev/stage/prod)๊ณผ Diff ๋น๊ต๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ถํ ์๊ฑด๊ณผ ์ฌ์ฉ๋ฒ์ ๋ฌธ์ ์ฐธ๊ณ .
https://docs.n8n.io/source-control-environments/ - ์ปค๋ฎค๋ํฐ/์
ํํธ์คํธ ๋ฐฑ์
ํ: CLI๋ก ์ํฌํ๋ก์ฐ/์๊ฒฉ์ฆ๋ช
Export/Import ์๋ํ(์: n8n export:workflow --all). ์ ๊ธฐ ๋ฐฑ์
+ Git์ JSON ์ ์ฅ์ ์ถ์ฒํฉ๋๋ค.
https://docs.n8n.io/hosting/cli-commands
n8n์ ๋จ์ํ ์๋ํ๋ฅผ ๋์ด, ํ ์์ฐ์ฑ์ ๋์ฌ์ฃผ๋ ์คํ์์ค ํ๋ซํผ์ ๋๋ค.
์ด๋ฒ ๊ธ์์ ์ ๋ฆฌํ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฐํ์ผ๋ก, ์ดํ์๋ ์ค์ ์์ ์ ํจ๊ป ๋ ๊น์ด ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค. ๐