n8n 기초 변수부터 커스텀 노드 개발하는 방법

코딩을 몰라도 개발자처럼 생각하는 법

자동화 툴을 다루다 보면 어느 순간 벽에 부딪히는 경험을 하게 됩니다. 처음에는 단순히 노드와 노드를 선으로 연결하는 것만으로도 신기하고 재미있습니다. 하지만 업무가 복잡해지고 요구사항이 까다로워질수록 화면에 보이는 기능만으로는 해결되지 않는 순간이 반드시 찾아옵니다. 이때 필요한 것이 바로 프로그래밍의 기초 체력입니다.

많은 분이 n8n이나 Node-RED 같은 로우코드 툴을 사용할 때 코딩 지식이 전혀 필요 없다고 오해하곤 합니다. 물론 코드를 한 줄도 짜지 않고도 훌륭한 워크플로우를 만들 수 있습니다. 하지만 변수가 데이터를 어떻게 담고 조건문이 흐름을 어떻게 제어하는지 이해하는 순간, 여러분이 만들 수 있는 자동화의 범위는 기하급수적으로 넓어집니다.

이 글은 단순한 프로그래밍 이론 강의가 아닙니다. 자바스크립트나 파이썬 문법책을 덮어두고, 당장 내 업무 자동화에 써먹을 수 있는 실전 지식을 다룹니다. 데이터가 흘러가는 원리를 이해하고 외부 서비스와 자유롭게 대화하며, 마침내 나만의 기능을 직접 만들어내는 커스텀 노드 개발까지 하는 방법을 안내하려고 합니다.

자동화의 시작, 데이터를 담는 그릇 변수 제대로 쓰기

우리가 자동화 툴에서 데이터를 다룰 때 가장 먼저 마주하는 것이 변수입니다. 실무에서 변수는 단순히 값을 저장하는 공간 이상의 의미를 가집니다. n8n을 예로 들어보겠습니다. 이전 노드에서 넘어온 JSON 데이터들이 바로 변수의 역할을 합니다.

변수를 잘 쓴다는 것은 결국 데이터에 정확한 이름표를 붙여주는 것과 같습니다. 초보 시절에는 변수 이름을 a, b, data1과 같이 아무렇게나 짓는 경우가 많습니다. 혼자 볼 때는 상관없지만 워크플로우가 복잡해지고 협업을 하게 되면 이런 이름들은 재앙이 됩니다. userEmail, orderId, isPaymentSuccess처럼 이름만 봐도 어떤 데이터가 들어있는지 알 수 있게 짓는 습관을 들여야 합니다.

특히 n8n 워크플로우를 짤 때 전역 변수와 지역 변수의 개념을 이해하는 것이 중요합니다. 워크플로우 전체에서 계속 참조해야 하는 설정값들은 전역 변수처럼 관리하고, 특정 노드 안에서만 계산되고 사라져야 할 임시 데이터는 지역 변수로 처리해야 데이터가 꼬이는 일을 막을 수 있습니다. 변수의 유효 범위를 이해하면 엉뚱한 곳에서 값이 바뀌어 에러가 나는 상황을 획기적으로 줄일 수 있습니다.

조건문과 가드 클로즈 패턴

데이터를 담았다면 이제 그 데이터에 따라 다른 행동을 하도록 만들어야 합니다. 이것이 바로 조건문입니다. 쇼핑몰 주문 자동화를 만든다고 가정해봅시다. 결제가 완료된 고객에게는 감사 메일을 보내고, 결제에 실패한 고객에게는 재결제 요청 알림을 보내야 합니다. 이때 조건문은 기차 선로의 분기점과 같은 역할을 합니다.

초보자들이 흔히 하는 실수가 IF 문을 계속 중첩해서 사용하는 것입니다. 조건 안에 또 조건이 들어가고 그 안에 또 조건이 들어가면, 나중에는 노드 연결선이 스파게티처럼 꼬여서 로직을 파악하기 힘들어집니다. 이때 실무 개발자들이 즐겨 쓰는 방식이 가드 클로즈 패턴입니다.

가드 클로즈는 복잡한 조건을 뚫고 들어가는 것이 아니라, 예외 상황을 먼저 처리하고 튕겨내는 방식입니다. 예를 들어 정상적인 주문 처리를 하기 전에 재고가 없는 경우, 결제가 실패한 경우, 배송지가 없는 경우를 먼저 검사해서 워크플로우를 조기에 종료시키거나 에러 처리 경로로 빼버리는 것입니다. 이렇게 하면 핵심 로직은 들여쓰기 없이 깔끔하게 유지할 수 있어 유지보수가 훨씬 쉬워집니다. 자동화 툴에서도 IF 노드를 직렬로 배치하여 예외를 먼저 걸러내는 방식으로 이 패턴을 적용할 수 있습니다.

외부 시스템과의 연결, API 통합 실전

변수와 조건문으로 내부 로직을 다질 수 있다면, API는 우리 시스템을 외부 시스템과 연결해주는 문입니다. 슬랙으로 알림을 보내거나 구글 시트에 데이터를 저장하고 챗GPT에게 요약을 시키는 모든 과정이 API 통신입니다.

요즘 가장 많이 쓰이는 방식은 REST API입니다. 식당에서 메뉴판을 보고 주문하듯이, 정해진 주소로 데이터를 요청하는 방식입니다. 하지만 최근에는 내가 원하는 데이터만 골라서 받을 수 있는 GraphQL이나, 이벤트가 발생했을 때 서버가 나에게 먼저 알려주는 웹훅 방식도 많이 사용됩니다.

특히 자동화에서는 웹훅의 활용도가 매우 높습니다. 예를 들어 고객이 설문지를 제출했을 때 실시간으로 알림을 받고 싶다면, 계속해서 제출 여부를 확인하는 것이 아니라 웹훅 URL을 생성해두고 기다리면 됩니다. n8n의 Webhook 노드가 바로 이 역할을 합니다. 외부에서 신호가 오면 그 즉시 워크플로우를 실행시키는 방아쇠 역할을 하는 셈입니다. 이때 API가 보내주는 응답 코드를 조건문으로 확인해서 성공했을 때와 실패했을 때의 처리를 나누는 것이 안정적인 자동화 시스템의 기본입니다.

n8n과 Node-RED, 무엇이 다르고 어떻게 쓸까

이제 이 모든 개념을 실제로 구현할 도구를 살펴볼 차례입니다. 대표적인 로우코드 툴인 n8n과 Node-RED는 비슷해 보이지만 탄생 배경과 목적이 다릅니다.

Node-RED는 IBM에서 사물인터넷, 즉 IoT를 위해 만든 도구입니다. 그래서 하드웨어 제어나 센서 데이터 처리에 매우 강력합니다. 가볍고 빠르며 메시지 payload를 주고받는 구조가 직관적입니다. 라즈베리 파이 같은 소형 기기에서도 잘 돌아가기 때문에 스마트홈 구축이나 공장 자동화 현장에서 많이 쓰입니다.

반면 n8n은 최신 웹 서비스 연동에 최적화되어 있습니다. UI가 현대적이고 세련되었으며, 우리가 자주 쓰는 SaaS 앱들을 연결하는 노드들이 미리 잘 만들어져 있습니다. 데이터 처리 방식도 JSON 기반이라 웹 개발자들에게 매우 친숙합니다. 복잡한 비즈니스 로직을 처리하거나 AI 모델을 붙여 파이프라인을 구축할 때는 n8n이 조금 더 유리한 면이 있습니다.

어떤 툴을 쓰든 핵심은 같습니다. 노드 하나하나가 함수 역할을 하고, 연결선이 데이터의 흐름이 되며, 그 안에서 변수와 조건문이 작동한다는 점입니다. 이 원리만 알면 도구가 바뀌어도 금방 적응할 수 있습니다.

개발자의 영역, 커스텀 노드 개발하기

기본 노드만으로도 대부분의 일을 할 수 있지만, 진정한 전문가는 커스텀 노드 개발에서 갈립니다. 회사 내부 시스템과 연동해야 하는데 기본 노드가 없거나, 너무 복잡한 계산 로직이라 노드 수십 개를 연결해야 한다면 차라리 하나의 전용 노드를 만드는 게 효율적입니다.

커스텀 노드를 만든다는 것은 나만의 블랙박스를 만드는 것과 같습니다. 입력값과 출력값만 정의해두고, 복잡한 지저분한 로직은 상자 안에 숨기는 것입니다. n8n은 타입스크립트나 자바스크립트로, Node-RED는 자바스크립트와 HTML로 자신만의 노드를 만들 수 있습니다.

이 단계에 이르면 여러분은 단순한 툴 사용자가 아니라 툴을 확장하는 개발자가 됩니다. 자주 쓰는 패턴을 발견했다면 그것을 코드로 옮겨보세요. 처음에는 Function 노드에 자바스크립트 코드를 적는 것부터 시작하면 됩니다. 그 코드가 반복해서 쓰인다면 그것을 별도의 모듈로 분리하여 커스텀 노드로 패키징할 수 있습니다. 이것이 바로 로우코드 개발자가 하이코드 개발자로 성장하는 가장 자연스러운 경로입니다.

결론

프로그래밍의 기초인 변수와 조건문에서 시작해 API 연동을 거쳐 커스텀 노드 개발까지 살펴보았습니다. 이 과정은 단순히 기술을 배우는 것이 아니라 문제를 해결하는 사고력을 키우는 과정입니다.

자동화는 게으른 사람들의 전유물이 아닙니다. 오히려 더 중요한 일에 집중하기 위해 단순 반복 업무를 기계에게 위임하는 똑똑한 사람들의 무기입니다. 오늘 설명한 기초 개념들을 바탕으로 여러분만의 자동화 비서를 만들어보세요. 작은 스크립트 하나가 여러분의 퇴근 시간을 한 시간 앞당겨줄지도 모릅니다. 지금 바로 n8n이나 Node-RED를 설치하고 Hello World를 찍어보는 것부터 시작해보시기 바랍니다.

[자주 묻는 질문]

Q. 비개발자인데 커스텀 노드 개발까지 꼭 배워야 하나요?

A. 필수는 아닙니다. 하지만 Function 노드에서 간단한 자바스크립트를 쓸 수 있게 되면 노드 10개로 만들 것을 1개로 줄일 수 있습니다. 복잡도가 줄어들면 관리도 쉬워지고 에러도 줄어듭니다. 기초 문법 정도만 익혀두셔도 활용도는 엄청나게 달라집니다.

Q. API 연동 중에 CORS 에러가 나는데 어떻게 하나요?

A. 웹 브라우저 기반의 툴을 사용할 때 자주 겪는 문제입니다. n8n 데스크톱 버전을 사용하거나, 서버에 직접 설치해서 사용하면 CORS 문제에서 자유로울 수 있습니다. 혹은 중간에 프록시 서버를 두는 방법으로 해결하기도 합니다.

Q. 자동화 툴을 공부할 때 가장 좋은 방법은 무엇인가요?

A. 남이 만든 워크플로우를 분석하는 것입니다. n8n이나 Node-RED 커뮤니티에는 전 세계 고수들이 공유한 템플릿이 많습니다. 그것을 가져와서 내 환경에 맞게 뜯어고쳐 보면서 왜 이렇게 짰을까 고민하는 과정에서 실력이 가장 빨리 듭니다.

이 글이 마음에 드세요?

RSS 피드를 구독하세요!

댓글 남기기