본문 바로가기
프로그램 (PHP,Python)

No-Code 또는 Low-Code 워크플로우(Workflow) 자동화 플랫폼 n8n 활용

by 날으는물고기 2024. 4. 5.

No-Code 또는 Low-Code 워크플로우(Workflow) 자동화 플랫폼 n8n 활용

n8n은 "No-code" 또는 "Low-code" 워크플로우 자동화 플랫폼으로, 다양한 시스템과 서비스를 연결하여 자동화된 프로세스를 구성할 수 있습니다. 이를 통해 파이썬 모듈, GPT-3 같은 AI 모델, Slack 봇 등 여러 기술을 하나의 워크플로우로 묶어 관리할 수 있습니다. 다만, 모든 도구와 서비스가 직접 n8n과 통합되지는 않기 때문에, API 요청, 웹훅, 커스텀 코드 실행 등의 방법을 통해 간접적으로 연결해야 할 수도 있습니다.

n8n을 로컬 환경에 직접 설치하여 바로 사용해 볼 수 있습니다.

0단계: Node.js 설치

  • n8n을 실행하기 전에, 시스템에 Node.js가 설치되어 있어야 합니다.

1단계: n8n 설치하기

n8n은 npm을 통해 설치할 수 있습니다. 명령어 실행은 터미널이나 명령 프롬프트에서 진행합니다.

  • npx로 시험하기 (설치하지 않고 바로 사용):이 명령은 필요한 모든 것을 다운로드한 후 n8n을 실행합니다. 실행 후 http://localhost:5678에 접속하여 n8n을 사용할 수 있습니다.
    npx n8n
  • npm을 통해 글로벌로 설치하기 (시스템 어디에서나 실행):설치 후에는 터미널에서 n8n을 입력하여 언제든지 n8n을 시작할 수 있습니다.
    npm install n8n -g

2단계: 워크플로 템플릿 열기

로컬에서 n8n을 실행한 후, UI를 통해 다음 단계를 진행할 수 있습니다.

  • n8n UI에 접속한 후, "Templates" 메뉴를 선택합니다.
  • "Very quick quickstart" 템플릿을 검색하고 선택하여 미리 보기를 합니다.
  • "Use template"을 선택하여 워크플로를 로드합니다.

3단계: 워크플로 실행하기

  • 워크플로 UI에서 "Test Workflow" 버튼을 클릭하여 워크플로를 실행합니다.

4단계: 노드 추가 및 편집하기

  • "Edit Fields" 노드에 연결된 "Add node" 아이콘을 선택하고, "Customer Messenger" 노드를 검색하여 추가합니다.
  • 표현식을 사용하여 고객 데이터를 매핑하고, 적절한 메시지를 설정합니다.

5단계: 워크플로 다시 실행하기

  • 설정을 마친 후, "Test Workflow"를 클릭하여 워크플로를 다시 실행합니다.

 

이 단계를 통해 로컬 환경에서 n8n을 설치하고, 간단한 워크플로를 실행하여 체험해볼 수 있습니다.

n8n을 사용하여 워크플로우 예시 구성하기

예시 시나리오

파이썬 스크립트를 실행하여 데이터를 처리하고, 그 결과를 Slack을 통해 팀에 알리고, 특정 조건에 따라 GPT-3로 추가 분석을 요청하는 워크플로우를 구성한다고 가정해보겠습니다.

  1. 파이썬 스크립트 실행
    • n8n은 직접적으로 파이썬 코드를 실행하는 노드를 제공하지 않습니다. 따라서, 파이썬 스크립트를 실행하기 위해선 외부 서버에 파이썬 스크립트를 호스팅하고, 해당 스크립트를 실행할 수 있는 API를 구성해야 합니다.
    • 이 API를 HTTP Request 노드를 사용하여 n8n 워크플로우에서 호출할 수 있습니다.
  2. Slack 봇을 통한 알림
    • Slack 노드를 사용하여 파이썬 스크립트의 실행 결과를 Slack 채널에 전송할 수 있습니다.
    • Slack 노드를 구성하여 API 토큰을 입력하고, 메시지를 보낼 채널을 지정합니다. 그 후, 파이썬 스크립트 실행 결과를 메시지로 전송합니다.
  3. GPT-3를 사용한 추가 분석
    • 파이썬 스크립트의 결과에 따라 추가 분석이 필요한 경우, GPT-3 API를 호출할 수 있습니다.
    • OpenAI 노드(혹은 HTTP Request 노드, 만약 직접적인 GPT-3 노드가 없을 경우)를 사용하여 GPT-3 API에 요청을 보내고, 파라미터로 전달할 텍스트 데이터를 구성합니다.
    • GPT-3로부터 받은 응답을 분석하고, 필요한 조치를 취합니다.

n8n 워크플로우 구성 시 주의사항

  • 보안: API 키, 토큰 등 민감한 정보는 환경 변수를 사용하여 안전하게 관리해야 합니다.
  • 에러 처리: 각 노드의 실행 결과를 확인하고, 예외 상황에 대한 처리 로직을 구성하는 것이 중요합니다.
  • API 제한: 외부 API를 사용할 때는 호출 횟수 제한이나 비용 등을 고려해야 합니다.

n8n을 통한 워크플로우 자동화는 매우 강력하며, 다양한 시스템과 서비스를 연결하여 복잡한 자동화 태스크를 수행할 수 있게 해줍니다. 워크플로우의 구성은 사용 사례에 따라 달라지며, n8n의 시각적 인터페이스를 통해 쉽게 구성할 수 있습니다.

 

Mermaid는 텍스트 기반의 다이어그램을 생성하기 위한 도구입니다. 텍스트를 사용하여 플로우차트, 시퀀스 다이어그램, 클래스 다이어그램 등을 만들 수 있습니다. 여기서는 n8n 워크플로우를 Mermaid 플로우차트 코드로 표현해 보겠습니다. 이 코드는 Mermaid 호환 마크다운 렌더러나 온라인 Mermaid 라이브 에디터에서 시각적 다이어그램으로 변환될 수 있습니다.

graph TD;
    A[Start: Call Python Script via API] -->|Result| B[Send Result to Slack];
    B --> C[Event Detection in Slack Bot];
    C -->|Event Info| D[Analyze with GPT];
    D --> E[Decision Point];
    E -->|If Analysis Requires Action| F[Send to Jira];
    E -->|If Informational| G[Update Wiki];
    E -->|For Record Keeping| H[Log to Google Sheets];
    F --> I[End of Workflow];
    G --> I;
    H --> I;

이 코드는 다음 단계를 표현합니다.

  1. Start: Call Python Script via API - Python 스크립트를 API를 통해 호출하는 시작점입니다.
  2. Send Result to Slack - Python 스크립트의 결과를 Slack에 전송합니다.
  3. Event Detection in Slack Bot - Slack 봇이 특정 이벤트를 감지합니다.
  4. Analyze with GPT - 감지된 정보를 GPT 모델로 분석합니다.
  5. Decision Point - 분석 결과에 따라 다음 단계를 결정하는 분기점입니다.
  6. Send to Jira - 분석 결과가 특정 액션을 요구하는 경우 Jira에 전송합니다.
  7. Update Wiki - 정보적인 내용이라면 Wiki를 업데이트합니다.
  8. Log to Google Sheets - 기록 유지를 위해 Google Sheets에 로깅합니다.
  9. End of Workflow - 워크플로우의 종료점입니다.

이 플로우차트는 주어진 시나리오의 기본적인 구조를 나타내며, 실제 구현에서는 더 많은 상세한 노드나 분기점이 필요할 수 있습니다. Mermaid 다이어그램을 사용하여 이런 프로세스를 시각화하면 프로젝트 팀이 워크플로우를 쉽게 이해하고 공유할 수 있습니다.

 

n8n을 사용하여 위 시나리오를 구현하는 것이 가능합니다. 여기에는 여러 단계가 포함되며, 각 단계는 n8n의 노드를 사용하여 구성됩니다. 아래는 각 단계를 구현하는 방법에 대한 개요입니다.

  1. 별도로 구성된 Python 스크립트 실행
    • 외부 Python 스크립트를 실행하기 위해, 스크립트를 호스팅하는 서버에 REST API를 구현합니다. 그리고 n8n 내의 HTTP Request 노드를 사용하여 이 API를 호출하고 실행 결과를 받아옵니다.
  2. 실행 결과를 Slack API로 전달
    • Slack 노드를 사용하여 Python 스크립트의 실행 결과를 Slack 채널에 메시지로 전송합니다. 이를 위해 Slack 노드를 구성하여 Slack 워크스페이스와 연동시키고, 적절한 메시지 포맷을 설정합니다.
  3. Slack 봇에 의한 이벤트 감지
    • Slack 봇을 설정하여 특정 이벤트(예: 메시지 수신)를 감지하고, 해당 이벤트 정보를 n8n으로 전달하기 위해 Webhook 노드를 사용합니다. Slack 이벤트 API와 n8n의 Webhook 노드를 통해 이를 구성할 수 있습니다.
  4. 정보를 GPT 모델을 통해 분석 및 정리
    • 받아온 정보를 분석하기 위해, OpenAI 노드(또는 HTTP Request 노드를 사용하여 직접 GPT API를 호출)를 사용하여 GPT 모델에 정보를 전달하고, 분석된 결과를 받아옵니다.
  5. 결과를 Jira/Wiki/Google Sheets 등에 전달
    • 마지막 단계에서는 분석 결과를 다른 시스템에 전달합니다. n8n은 Jira, Google Sheets 등 다양한 서비스와의 통합을 지원합니다. 해당 서비스의 노드를 사용하여 분석 결과를 적절한 형식으로 전송하고 기록합니다.

이러한 과정을 구현하기 위해서는 각 서비스(API, Slack, Jira 등)에 대한 충분한 접근 권한과, 해당 서비스의 API를 사용하는 방법에 대한 이해가 필요합니다. 또한, 각 단계에서 발생할 수 있는 오류를 처리하고, 보안을 유지하기 위한 적절한 조치를 취하는 것이 중요합니다.

 

n8n의 시각적 인터페이스를 통해 이러한 워크플로우를 상대적으로 쉽게 구성할 수 있으며, 워크플로우의 각 단계를 시각적으로 확인하면서 디버깅과 테스트를 진행할 수 있습니다. n8n과 Make(이전에는 Integromat으로 알려짐)는 둘 다 인기 있는 노코드 자동화 도구로 모두 워크플로우 자동화, 데이터 통합, API 호출 등을 지원하지만, 그 기능과 사용성 면에서 차이가 있습니다. 아래에서 두 도구의 주요 특징을 비교하겠습니다.

n8n

특징

  1. 오픈 소스: n8n은 오픈 소스 프로젝트로, 누구나 소스 코드를 열람하고 수정할 수 있습니다.
  2. 자체 호스팅: 사용자들은 자신만의 서버에 n8n을 설치하고 운영할 수 있어, 데이터 프라이버시와 보안에 더 큰 통제권을 가질 수 있습니다.
  3. 유연성: n8n은 Node.js 기반으로, 사용자들이 커스텀 노드를 작성하거나 기존 노드를 수정하기 용이합니다.
  4. 시각적 인터페이스: 드래그 앤 드롭 방식의 시각적 인터페이스를 통해 워크플로우를 쉽게 구축할 수 있습니다.
  5. 광범위한 통합: 다양한 서드파티 서비스와의 통합을 지원하며, REST API를 이용해 커스텀 통합도 가능합니다.

단점

  1. 초기 설정: 자체 호스팅의 경우, 초기 설정과 유지보수가 필요합니다.
  2. 지원: 무료 버전에서는 공식적인 지원이 제한적일 수 있습니다.

Make (Integromat)

특징

  1. 클라우드 기반: Make는 클라우드 기반 서비스로, 설치나 유지보수가 필요 없습니다.
  2. 사용자 친화적: 사용자 인터페이스가 직관적이고 쉽게 사용할 수 있도록 설계되어 있습니다.
  3. 강력한 통합: 1000개 이상의 애플리케이션과의 통합을 지원하며, API 호출과 웹훅을 통한 고급 기능도 제공합니다.
  4. 시각적 빌더: Make의 시각적 빌더를 통해 복잡한 워크플로우도 쉽게 설계할 수 있습니다.
  5. 에러 처리: 워크플로우에서 발생하는 에러를 자동으로 처리하고, 알림을 통해 사용자에게 알려줍니다.

단점

  1. 비용: 무료 플랜이 제한적이며, 고급 기능을 사용하려면 유료 플랜을 구독해야 합니다.
  2. 프라이버시: 클라우드 기반이므로, 데이터 프라이버시와 보안에 대한 우려가 있을 수 있습니다.

비교표

기능/특징 n8n Make (Integromat)
배포 방식 자체 호스팅, 클라우드 클라우드 기반
오픈 소스 여부 오픈 소스 비 오픈 소스
통합 가능 서비스 수 다수 (플러그인 추가 가능) 1000+
사용자 인터페이스 드래그 앤 드롭 기반 시각적 빌더 드래그 앤 드롭 기반 시각적 빌더
커스텀 노드 지원 지원 제한적 (웹훅, API 사용)
초기 설정/유지보수 사용자에 따라 다름 (서버 설정 필요) 없음 (클라우드에서 자동 관리)
비용 기본 무료 (엔터프라이즈 유료) 제한적 무료, 고급 기능은 유료
데이터 프라이버시 사용자 통제 가능 클라우드 기반으로 제한적
에러 처리 기본적인 에러 처리 제공 고급 에러 처리 및 알림

n8n과 Make는 각각의 장단점이 있어, 사용자의 요구사항과 환경에 따라 선택이 달라질 수 있습니다. 만약 자체 호스팅과 데이터 통제가 중요한 경우 n8n이 더 적합할 수 있으며, 손쉬운 사용과 클라우드 기반의 간편함이 중요한 경우 Make가 더 나은 선택일 수 있습니다. Zapper(현재 Zapier로 알려짐)도 인기 있는 노코드 자동화 도구로, n8n 및 Make와 함께 많이 사용됩니다. 각 도구의 주요 기능과 특징을 비교해보겠습니다.

Zapier

특징

  1. 클라우드 기반: Zapier는 클라우드 기반 서비스로, 설치나 유지보수가 필요 없습니다.
  2. 사용자 친화적: 사용자 인터페이스가 직관적이고 쉽게 사용할 수 있도록 설계되어 있습니다.
  3. 광범위한 통합: 5000개 이상의 애플리케이션과의 통합을 지원합니다.
  4. 템플릿: 다양한 자동화 템플릿을 제공하여 쉽게 워크플로우를 시작할 수 있습니다.
  5. 다단계 작업: 복잡한 다단계 작업을 설정할 수 있습니다.

단점

  1. 비용: 무료 플랜이 제한적이며, 고급 기능을 사용하려면 유료 플랜을 구독해야 합니다.
  2. 제한된 고급 기능: 고급 기능이나 커스텀 로직 작성에 있어 제약이 있을 수 있습니다.
  3. 프라이버시: 클라우드 기반이므로, 데이터 프라이버시와 보안에 대한 우려가 있을 수 있습니다.

n8n vs Make (Integromat) vs Zapier 비교

기능/특징 n8n Make (Integromat) Zapier
배포 방식 자체 호스팅, 클라우드 클라우드 기반 클라우드 기반
오픈 소스 여부 오픈 소스 비 오픈 소스 비 오픈 소스
통합 가능 서비스 수 다수 (플러그인 추가 가능) 1000+ 5000+
사용자 인터페이스 드래그 앤 드롭 기반 시각적 빌더 드래그 앤 드롭 기반 시각적 빌더 드래그 앤 드롭 기반 시각적 빌더
커스텀 노드 지원 지원 제한적 (웹훅, API 사용) 제한적 (웹훅, API 사용)
초기 설정/유지보수 사용자에 따라 다름 (서버 설정 필요) 없음 (클라우드에서 자동 관리) 없음 (클라우드에서 자동 관리)
비용 기본 무료 (엔터프라이즈 유료) 제한적 무료, 고급 기능은 유료 제한적 무료, 고급 기능은 유료
데이터 프라이버시 사용자 통제 가능 클라우드 기반으로 제한적 클라우드 기반으로 제한적
에러 처리 기본적인 에러 처리 제공 고급 에러 처리 및 알림 고급 에러 처리 및 알림
템플릿 제공 제한적 제한적 광범위한 템플릿 제공
  • n8n: 높은 유연성, 오픈 소스, 자체 호스팅이 가능한 사용자에게 적합합니다.
  • Make (Integromat): 강력한 클라우드 기반 자동화 도구로, 고급 에러 처리와 다양한 통합을 제공합니다.
  • Zapier: 가장 많은 통합을 제공하며, 사용자 친화적이고 쉽게 시작할 수 있는 템플릿이 풍부합니다.

각 도구는 고유의 장단점이 있으므로, 조직의 요구사항, 데이터 보안, 예산 등을 고려하여 가장 적합한 도구를 선택하는 것이 중요합니다.

728x90

댓글