server-dev-blog

n8n으로 반복 업무 자동화하기 - 개발자를 위한 워크플로우 자동화

반복적인 작업이 있다면 자동화를 고민해야 한다. n8n은 개발자 친화적인 워크플로우 자동화 도구다.


1. 왜 n8n인가?

비교ZapierMaken8n
가격유료유료오픈소스 (무료)
셀프호스팅XXO
커스텀 코드제한적제한적자유롭게 가능
Node 개수 제한있음있음없음

n8n의 장점:

  • 오픈소스: 코드가 공개되어 있고, 무료로 사용 가능
  • 셀프호스팅: 내 서버에서 돌리면 데이터가 외부로 나가지 않음
  • 코드 노드: JavaScript/Python으로 복잡한 로직 구현 가능

2. 기본 개념

  • Trigger: 워크플로우를 시작하는 이벤트 (Webhook, 스케줄, 앱 이벤트)
  • Node: 데이터를 처리하는 단위 (HTTP 요청, 조건 분기, 코드 실행)
  • Action: 최종 결과 (메시지 전송, 데이터 저장)

3. 실전 예시

예시 1: GitHub PR → Slack 알림

PR이 올라오면 Slack 채널에 알림을 보내는 워크플로우:

설정:

  1. GitHub에서 Webhook 설정 (PR 이벤트)
  2. n8n에서 Webhook 노드로 수신
  3. 조건 분기로 필터링
  4. Slack 노드로 메시지 전송

예시 2: 정기 리포트 자동 생성

매일 아침 9시 → DB에서 데이터 조회 → CSV 생성 → 이메일 발송

Cron Trigger 사용:

0 9 * * *  # 매일 09:00 실행

예시 3: 서버 장애 감지

Health Check 실패 → Slack + 이메일 + PagerDuty 동시 알림

4. 셀프호스팅 가이드

Docker Compose로 간단히 배포 가능:

# docker-compose.yml
version: '3.8'
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=changeme
      - WEBHOOK_URL=https://n8n.yourdomain.com/
    volumes:
      - n8n_data:/home/node/.n8n
 
volumes:
  n8n_data:
docker-compose up -d

보안 고려사항:

  • 반드시 HTTPS 사용 (Let's Encrypt)
  • 기본 인증 또는 SSO 설정
  • 외부 접근 제한 (VPN, IP 화이트리스트)

5. 코드 노드 활용

복잡한 로직은 Code 노드���서 JavaScript로 처리:

// Code 노드 예시
const items = $input.all();
 
const result = items.map(item => ({
  ...item.json,
  processed: true,
  timestamp: new Date().toISOString()
}));
 
return result.map(json => ({ json }));

가능한 것들:

  • API 응답 가공
  • 복잡한 조건 분기
  • 외부 라이브러리 사용 (npm)

6. 한계와 대안

n8n의 한계

  • 복잡한 비즈니스 로직: 결국 코드로 짜는 게 나음
  • 고성능 요구: 대량 데이터 처리는 별도 파이프라인 권장
  • 버전 관리: Git 연동이 번거로움 (코드 대비)

언제 n8n이 적합한가?

상황적합
단순 연동 (A → B 알림)O
정기 배치 작업O
복잡한 데이터 변환△ (코드 노드)
고성능 스트리밍X

7. 활용 팁

  1. 작게 시작하기

    • 하나의 간단한 워크플로우부터
    • 동작 확인 후 점진적 확장
  2. 에러 핸들링

    • Error Trigger 설정
    • 실패 시 Slack 알림
  3. 변수 관리

    • 환경변수로 API 키 관리
    • 하드코딩 금지
  4. 백업

    • 워크플로우 JSON 정기 export
    • 볼륨 백업

마무리

n8n은 개발자 친화적인 워크플로우 자동화 도구다.

  • 오픈소스 + 셀프호스팅 가능
  • 코드 노드로 유연하게 확장 가능
  • Zapier/Make 대비 비용 절감

반복 작업이 있다면 자동화를 고민하자. 시간은 개발에 써야 한다.

Comments

잘못된 부분이 있을 수 있습니다 ! 자유롭게 댓글을 달아주세요 :)