n8n 커스텀 노드로 자동화 작업 쉽게 하기

자동화 좋아하시나요? 나만의 커스텀 노드를 만들어서 n8n에서 직접 자동화를 구현해볼까요?
n8n 커스텀 노드로 자동화 작업 쉽게 하기

자동화 좋아하시나요? 나만의 커스텀 노드를 만들어서 n8n에서 직접 자동화를 구현해볼까요?

안녕하세요, 여러분! 저는 최근에 n8n이라는 자동화 툴에 푹 빠졌어요. 특히 반복적인 작업을 자동화하면서 정말 많은 시간을 절약할 수 있었거든요. 그런데 기본 노드로는 부족한 부분이 있더라구요. 그래서 직접 커스텀 노드를 만들어봤습니다! 이 글에서는 제가 경험한 n8n 커스텀 노드 제작 과정과 자동화 팁들을 공유해볼게요. 혹시 나도 자동화 좀 해볼까? 고민 중이라면, 꼭 끝까지 읽어보세요!

n8n 소개와 커스텀 노드 개념

n8n은 오픈 소스 자동화 툴로, 다양한 서비스와 애플리케이션을 연결해주는 역할을 합니다. Zapier나 Integromat과 비슷하지만, 더 유연하고 커스터마이징이 자유로운 게 특징이에요. 기본 제공되는 노드도 많지만, 내가 원하는 기능이 없을 때는? 바로 커스텀 노드를 만들어야죠! 커스텀 노드는 말 그대로 나만의 기능을 추가할 수 있는 특별한 노드입니다.

커스텀 노드 개발 환경 설정

커스텀 노드를 개발하려면 먼저 개발 환경을 세팅해야 합니다. 필요한 도구와 설치 방법을 표로 정리해봤어요.

도구 설치 방법
Node.js nodejs.org에서 설치
n8n 소스 코드 GitHub에서 클론
TypeScript npm install -g typescript

노드 구조 이해하기

커스텀 노드를 만들기 위해서는 기본적인 노드 구조를 알아야 합니다. 대충 만들어선 제대로 작동하지 않거든요. 기본 구조는 아래와 같아요.

  • description: 노드의 이름, 아이콘, 기본 정보
  • inputs/outputs: 입력과 출력 포인트 설정
  • execute 함수: 노드 실행 시 동작할 코드

커스텀 노드 코딩 실습

직접 코드를 작성해볼까요? 기본적인 Hello World 노드를 만들어 보면서 이해를 돕겠습니다. 아래 예제를 참고하세요.


export class HelloWorldNode implements INodeType {
  description = {
    displayName: 'Hello World Node',
    name: 'helloWorldNode',
    group: ['transform'],
    version: 1,
    description: 'Says Hello',
    defaults: {
      name: 'Hello World',
      color: '#ff7043',
    },
    inputs: ['main'],
    outputs: ['main'],
    properties: [],
  };

  async execute(this: IExecuteFunctions): Promise {
    return [[{ json: { message: 'Hello World!' } }]];
  }
}

실전 자동화 예제

실제로 제가 만든 커스텀 노드 중 하나는 특정 API에서 데이터를 가져오고 슬랙으로 알림을 보내는 거였어요. 여러분도 이런 식으로 자신만의 업무를 자동화할 수 있습니다. 몇 가지 예제를 소개할게요.

  • 주식 가격 변동 알림 자동화
  • 날씨 데이터 수집 및 보고서 생성
  • 이메일 자동 응답 시스템 구축
Q 커스텀 노드는 어디에 저장되나요?

n8n의 custom 노드 폴더에 저장됩니다. 기본적으로 src 폴더 하위에 위치해요.

Q 노드 색상은 어떻게 바꿀 수 있나요?

description 객체의 color 속성을 변경하면 됩니다. HEX 코드로 지정하세요.

Q 실행 중 오류가 발생하면 어떻게 확인하나요?

n8n의 로그 시스템에서 확인할 수 있으며, 콘솔에 출력되는 에러 메시지를 참고하세요.

Q TypeScript 대신 JavaScript도 가능한가요?

네, 가능합니다. 하지만 TypeScript를 권장하며, 공식 문서도 TypeScript 기준으로 작성되어 있어요.

Q 커스텀 노드를 공유할 수 있나요?

GitHub에 올리거나 n8n 커뮤니티에 공유할 수 있습니다. 다른 사람들과 협업도 가능하죠!

Q n8n 업데이트 시 커스텀 노드는 유지되나요?

업데이트 후에도 custom 노드는 유지되지만, 호환성 문제는 직접 확인해야 합니다.