자동화 n8n

n8n이란?

n8n은 "workflow automation tool", 즉 자동화 워크플로우 도구로, 다양한 서비스 및 앱 간의 작업을 코드 작성 없이 또는 코드와 함께 연결하고 자동화할 수 있는 오픈소스 기반의 도구입니다. 이름은 “n8n”으로, “nodemation(node + automation)”의 줄임말입니다.


2.기본 개념

1) 워크플로우(Workflow)

  • 하나 이상의 노드(Node) 들이 연결되어 실행 순서를 구성한 것
  • 각 노드는 특정 작업(ex. 이메일 전송, HTTP 요청, 데이터베이스 조회 등)을 수행

2) 노드(Node)

  • 각각의 노드는 하나의 단일 작업을 수행하는 모듈
  • 예: Google Sheets 노드, HTTP Request 노드, Function 노드, MySQL 노드 등

3) 트리거 노드(Trigger Node)

  • 워크플로우를 시작하는 역할
  • 예: Cron (정기 실행), Webhook (외부 이벤트), Gmail (새 이메일 수신 시)

3.주요 기능

1) 시각적인 워크플로우 빌더

  • 드래그 앤 드롭 방식으로 워크플로우 구성 가능

2) 수백 개의 노드 통합

  • Slack, Discord, Google Drive, AWS, MySQL, PostgreSQL, Airtable 등 300개 이상의 서비스와 통합

3) 조건 분기 및 반복 처리

  • IF, SWITCH, LOOP 같은 조건 제어 가능

4) 사용자 정의 코드 실행

  • Function 노드에서 JavaScript로 직접 로직 구현 가능

5) Credential 관리

  • 외부 API 연동을 위한 인증 정보는 n8n 내부에 안전하게 저장 및 관리

6) 자체 호스팅 가능

  • n8n은 오픈소스로, 서버에 직접 설치 가능
  • 클라우드 서비스(n8n.cloud)도 존재

4.사용 예시

1) Google Sheets → Slack 알림

  • Google Sheets에 새로운 행이 추가되면 Slack으로 메시지 발송

2) 웹 크롤링 자동화

  • HTTP Request → HTML Extract → Discord 알림

3) 데이터 통합

  • MySQL에서 데이터 가져와 → Notion에 삽입 → 이메일 전송

4) 상태 모니터링

  • 주기적으로 API 요청 → 특정 응답값 조건 충족 시 Telegram 알림

5.설치 방법 (Docker 기준)

version: "3"

services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=admin123
    volumes:
      - ~/.n8n:/home/node/.n8n

→ 브라우저에서 http://localhost:5678 접속


6.구조 및 동작 방식

1) 실행 방식

  • 트리거 노드가 발동되면 → 이후 노드가 순차적으로 실행되며 → 각 노드의 출력이 다음 노드의 입력으로 전달됨

2) 데이터 흐름

  • 각 노드는 JSON 데이터를 받아 → 변형하거나 → 전달하거나 → 외부 API와 통신

7.장단점

✅ 장점

  • 직관적인 UI/UX
  • 오픈소스 및 자체 서버 설치 가능
  • JavaScript로 고급 로직 구현 가능
  • 다양한 플러그인 및 노드 지원

❌ 단점

  • 워크플로우 복잡도가 높아질 경우 시각화 어려움
  • UI가 무거워질 수 있음
  • 기능 추가 시 JavaScript 지식 필요

8.활용 팁

1) Webhook으로 외부 시스템과 실시간 연동

→ GitHub PR 생성 시 → Notion 자동 정리

2) Function 노드를 통해 간단한 계산 및 필터링 가능

→ SQL 못 쓰는 상황에서 JS로 필터 조건 작성

3) .n8n 폴더로 모든 설정 백업

→ Docker 볼륨 마운트 시 유지 가능

https://www.youtube.com/watch?v=Fk5pQ0fQkJ0&t=56s

https://github.com/n8n-io/self-hosted-ai-starter-kit