Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
n8n 시작하기
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2025-06-27
2025-06-27
59
# n8n - 시작하기 ## n8n에 대해서 n8n은 다양한 서비스와 애플리케이션을 손쉽게 연결하여 자동화 워크플로우를 만들 수 있는 오픈소스 자동화 플랫폼이다. 복잡한 코딩 없이도 시각적인 인터페이스를 통해 이메일, 데이터베이스, 슬랙, 구글 시트 등 수백 가지의 서비스를 자유롭게 연동하고, 반복적인 작업을 자동화할 수 있다. 또한, 자체 호스팅이 가능해 데이터 보안과 유연한 커스터마이징이 필요한 기업 환경에도 적합하다. n8n의 가장 큰 장점은 확장성과 유연성이다. 기본 제공되는 다양한 노드 외에도 사용자가 직접 커스텀 노드를 추가하거나 JavaScript 코드를 삽입해 복잡한 비즈니스 로직을 구현할 수 있다. 이를 통해 단순한 업무 자동화부터 복잡한 데이터 파이프라인 구축까지 폭넓게 활용할 수 있으며, 오픈소스 커뮤니티의 활발한 지원으로 지속적으로 기능이 확장되고 있다. 이번 포스팅에서는 n8n을 로컬 PC에 설치하고, 간단한 예제를 통해 n8n의 기본 개념을 직접 익혀보려 한다. 개발자라면 n8n의 구조와 활용법을 이해하고, 실제 업무에 어떻게 적용할 수 있을지 고민해보는 계기가 됐으면 한다. ## n8n과 Workflow n8n은 workflow를 실행하는 애플리케이션으로 workflow를 이해하면 n8n의 90%는 이해했다고 볼 수 있다. 나머지 10%는 아이디어의 구현이다. ##### workflow란 어떤 목표를 달성하기 위해 어려 작업을 정해진 순서와 규칙에 따라 자동으로 처리하는 일련의 흐름(Flow)으로 n8n의 기본 작업 단위이다. * 정의: 여러 개의 작업(Task, Step, Action)을 미리 정해진 순서와 조건에 따라 자동으로 실행하는 프로세스 * 목적: 반복적이거나 복잡한 작업을 자동화 하여 효율성과 정확성을 높이고 사람의 개입을 최소화 ##### 구성요소 workflow는 6가지 요소로 구성이 된다. 1. Node 1. 워크플로우를 구성하는 작업 단위 2. Webhook, Email, HTTP Request, Slack, IF, Set 등 2. Triger 1. 워크플로우의 시작점이 되는 노드 2. 예시) Webhook(외부 요청), Chat(메시지 입력), Cron(스케쥴), 특정 서비스 이벤트 등 3. 트리거가 발생하면 워크플로우가 실행 3. 연결(Edge) 1. 노드와 노드를 연결하며 데이터가 전달된다. 2. 한 노드의 출력이 다음 노드의 입력이 된다. 4. 데이터 흐름(Data Flow) 1. 각 노드에서 처리된 데이터가 다음 노드로 전달되며, 워크플로우 전체에서 데이터가 어떻게 이동하는지 결정된다. 5. 조건 분기(Conditional Logic) 1. IF, Switch, Merge 등 노드를 사용해 조건에 따라 워크플로우의 흐름을 분기 할 수 있다. 6. 설정 및 변수(Parameters & Variables) 1. 각 노드는 고유의 설정(예: API 키, 파라미터, 조건 등)을 가진다. 2. 워크 플로우 전체에서 사용 할 수 있는 환경변수, 인증 정보등을 설정 할 수 있다. ## Node Node는 n8n에서 하나의 작업 단위를 의미하며, 각 노드는 특정 서비스와의 연동이나 데이터 처리, 조건 분기 등 다양한 기능을 수행한다. 여러 개의 노드를 연결하여 워크플로우를 구성함으로써 복잡한 자동화 시나리오를 손쉽게 구현할 수 있다. | **종류** | **대표 노드 예시** | **설명** | | ------------------ | ------------------------------ | ------------------- | | 트리거 | Webhook, Cron | 워크플로우 시작 | | 액션 | HTTP Request, OpenAI, Slack | 외부 서비스 연동/작업 | | 데이터 처리 | Set, IF, Merge, Function | 데이터 변환, 분기, 가공 | | 유틸리티 | Wait, NoOp, Execute Workflow | 흐름 제어, 대기, 워크플로우 호출 | | 커뮤니케이션 | Email, Telegram, Discord | 메시지, 알림 | | 파일/스토리지 | Read Binary File, Google Drive | 파일 입출력, 클라우드 연동 | | 커스텀/코드 | Function, Code | 직접 코드 작성 | | Respond to Webhook | Respond to Webhook | Webhook 응답 반환 | | 기타(Integration) | Salesforce, Notion, Airtable | 다양한 SaaS/DB/AI 연동 | ## Local 설치 Local PC에 설치해보자. docker가 설치되어 있다고 가정하고 진행한다. ``` docker run -it \ --name n8n \ -p 5678:5678 \ -e N8N_BASIC_AUTH_ACTIVE=true \ -e N8N_BASIC_AUTH_USER=admin \ -e N8N_BASIC_AUTH_PASSWORD=yourpassword \ n8nio/n8n ```  n8n을 로컬 환경에 설치하면 기본적으로 Community Edition(CE) 라이선스로 동작한다. CE는 아파치 2.0 라이선스를 기반으로 하며, 워크플로우 개수, 노드 수, 사용자 수 등에 별도의 제한이 없다. SSO, 고급 권한 관리, 감사 로그 등 엔터프라이즈 기능이 필요하다면 별도의 라이선스 키가 필요하지만, 대부분의 자동화 및 연동 작업은 CE만으로도 충분히 구현할 수 있어 학습이나 개인 프로젝트에 적합하다. ## Create workflow  N8N의 기본 작업 단위인 워크플로우(Workflow)이다. * Workflow는 N8N에서 자동화의 가장 기본적인 단위이다. * 하나의 워크플로우는 여러개의 노드로 구성이 된다. * 워크플로우는 트리거로 시작해서 여러 작업 (액션, 데이터 처리 등)을 순차적으로 실행한다. * 워크플로우 단위로 생성, 저장, 실행 관리, 공유가 이루어진다. 즉 독립된 파이프라인(공정)이라고 보면 된다. Create Workflow를 클릭하면 아래와 같이 시각적으로 워크플로우를 구성 할 수 있는 화면이 나온다.  사용자는 시각적으로 워크플로우를 구성할 수 있다. No-Code / Low-Code 플랫폼인 것이다. 이제 예제를 통해서 Workflow를 구성해보자. ## 아주 간단한 예제 ##### 개요 * 사용자 메시지를 입력으로 받아서 OpenAI에 전달해서 응답을 받는 OpenAI Chat 애플리케이션을 n8n으로 구성해 본다. * curl로 테스트를 해보자. ##### 구성  * Webhook Node: 입력을 받는 Node 로 HTTP, GET/POST,PUT,PATCH,DELETE 메서드를 지원한다. * Message a model Node: Webhook Node로 부터 전달된 Message를 GPT-4.1 모델에 전달하고 답을 받는다. * Respond to Webhook: Webhook 노드로 GPT-4.1 응답을 전송한다. 🚀 Webhook 노드 생성  Add first step을 클릭해서 노드를 배치 할 수 있다. 여러 노드들 중에서 **Webhook** 노드를 클릭한다.  여기에서 webhook을 설정 할 수 있다. * HTTP Method: 메시지를 전송해야 하므로 POST 를 선택한다. * Path: Webhook Path다. /chat 로 설정하기로 했다. * Respond * Immediately: 워크플로우 실행과 상관없이 즉시 응답을 반환 한다.(빠른 응답) * When Last Node Finishes: 워크플로우가 모드 끝난 후 결과를 응답 한다. 즉 워크플로우가 실행된 후 처리 결과가 반환된다. * Using Respond to Webhook Node: 워크플로우 내에서 **Respond to Webhook **노드를 사용해서 응답 시점을 직접 제어 할 수 있다. Respond의 경우 구성도에 따라서 **Using Respond to Webhook Node** 를 사용하기로 했다.  Back to canvas 하면 Webhook 노드를 확인 할 수 있다.  🚀 LLM Chat 노드 생성 Webhook으로 입력이 들어온 메시지를 AI Chatbot으로 보내보자.  "+" 버튼을 누르면 새로운 노드를 만들 수 있다.  AI 를 클릭한다. ChatGPT 로 message를 보낼 것이다. OpenAI를 선택한다.  Text 생성 작업을 위해서 "Message a model"을 선택하고 GPT 연결설정을 한다.  OpenAI GPT에 연결하기 위해서 API Key를 등록한다. https://platform.openai.com/api-keys Key를 만들어서 입력하면 된다.  OpenAI Key를 등록했다면 모델을 선택 할 수 있다. (2025년 6월 현재) 최신 모델인 GPT-4.1 을 선택했다.  아래와 같이 webhook 노드에 GPT-4.1을 연결 했다. 사용자가 webhook URL로 메시지를 전송하면, 이 메시지는 "Message a model" 노드로 전달되고, Action 으로 GPT-4.1 에 메시지를 전송한다.  🚀 Respond to Webhook 노드 생성 메시지를 받은 GPT-4.1 모델은 응답을 생성 할 것이다. 이 응답을 클라이언트에 전달하기 위해서 Respond to Webhook 노드를 만든다.  이렇게 해서 아래와 같은 워크로드를 만들었다.  ##### 테스트 CURL을 이용해서 테스트를 해보자.  ``` curl -X POST http://localhost:5678/webhook-test/chat \ -H "Content-Type: application/json" \ -d '{"message": "하늘은 왜 파란가요 ?"}' {"index":0,"message":{"role":"assistant","content":"Hi! How can I assist you today?","refusal":null,"annotations":[]},"logprobs":null,"finish_reason":"stop"} ```  모든 노드가 성공적으로 실행 됐다. 하지만 응답 메시지가 "Hi! How can I assist you today?"가 출력됐다. 사용자 입력이 GPT 4.1 로 전달되지 않은 것 같다. "Message a model"을 디버깅 해보자. Message a model 노드로 입력된 데이터를 확인 할 수 있다. 입력 데이터에는 "message"가 성공적으로 전달 된 것을 확인 할 수 있다. 하지만 Prompt에 message 가 전달되지 않았다.  message를 prompt로 드래그해서 message를 prompt로 전달 하도록 설정한다.  다시 한번 테스트 해보자. 성공 !!! ``` curl -X POST http://localhost:5678/webhook-test/chat \ -H "Content-Type: application/json" \ -d '{"message": "하늘은 왜 파란가요 ?"}' {"index":0,"message":{"role":"assistant","content":"하늘이 파란 이유는 **빛의 산란**(Rayleigh scattering) 때문입니다.\n\n태양빛은 우리가 보기에는 하얗게 보이지만, 실제로는 빨강, 주황, 노랑, 초록, 파랑, 남색, 보라 등 여러 색(파장)의 빛이 섞여 있습니다. 이 빛이 지구 대기 중에 들어오면, 특히 공기 중의 질소와 산소 분자에 의해 산란이 일어납니다.\n\n이 때, **파장이 짧은(=색이 푸른) 빛**일수록 더 많이 산란됩니다. 파란색(파장 약 400nm)은 빨간색(파장 약 700nm)에 비해 무려 10배 이상 산란이 잘 돼요. 그래서 하늘에서 여러 방향으로 파란색 빛이 튕겨 나가고, 우리가 어느 방향을 보더라도 파란 빛이 들어오게 되어 하늘이 파랗게 보이는 것입니다.\n\n요약:\n- 태양빛은 여러 색 → 대기를 통과\n- 짧은 파장(파랑)이 산란됨\n- 사방에서 파란색 빛이 들어와 → 하늘이 파랗게 보임\n\n맑은 날이 아닌 빨갛게(노을) 보이는 건 같은 원리로, 해가 질 때는 더 두꺼운 대기를 통과하므로 파란 빛이 더 많이 산란되고, 남은 붉은 빛이 우리 눈에 들어오기 때문입니다.","refusal":null,"annotations":[]},"logprobs":null,"finish_reason":"stop"} ``` ## 정리 마우스 클릭 몇 번만으로 간단하게 GPT 와 연결되는 AI 애플리케이션을 개발했다. 다음 번에는 좀 더 복잡한 AI 시나리오를 n8n 으로 구현해볼 생각이다. 오늘 내용을 정리해보자. 1. n8n은 다양한 서비스와 애플리케이션을 시각적으로 연결하여 자동화 워크플로우를 만들 수 있는 노코드/로코드 자동화 플랫폼이다. 2. 워크플로우는 노드와 노드의 연결로 구성된다. 노드는 Input 을 받아서 처리하고 Output을 출력한다. 3. 워크플로우는 trigger로 시작된다. 4. N8N은 HTTP(S)만을 지원한다. 5. SSE를 지원하지 않는다. 전체 결과가 모두 만들어 진 후에 Respond to Webhook을 통해서 전달 된다. 6. 따라서 실시간성 ChatBot에는 사용 할 수 없다. 1. 실시간성 응답과 workflow 작업을 분리해야 한다.: ex) Gemini 딥 리서치
Recent Posts
n8n 시작하기
ChatBox: 다양한 LLM을 하나의 인터페이스에서! (ChatGPT, Gemini, Claude, Ollama)
computer vision tutorial - OpenCV를 이용한 color detecting
vLLM을 이용해서 오픈소스 LLM 서비스 구축하기
Vertex Gemini 기반 AI 에이전트 개발 06. LLM Native Application 개발
최신 경량 LLM Gemma 3 테스트
MLOps with Joinc - Kubeflow 설치
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Archive Posts
Tags
AI
LLM
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags