본문 바로가기
프로그램 (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의 시각적 인터페이스를 통해 이러한 워크플로우를 상대적으로 쉽게 구성할 수 있으며, 워크플로우의 각 단계를 시각적으로 확인하면서 디버깅과 테스트를 진행할 수 있습니다.

728x90

댓글