안녕하세요~ 우뇽킴입니다. 😊
지난 포스팅에서 n8n이 뭔지, 어떤 특징이 있는지 열심히 조사해서 정리했었는데요. 글 마지막에 "다음 포스팅에서는 실제로 설치하고 간단한 워크플로우를 만들어보겠다"고 약속했었죠?
네, 저는 약속을 지키는 개발자입니다. (코드의 약속은 가끔 어기지만 블로그 약속은 지킵니다 🤣)
이번 글은 100% 실습 위주입니다. 이론은 지난 글에서 충분히 다뤘으니, 오늘은 손에 기름칠 좀 해보겠습니다. 캡처 하나하나 따라가시면 여러분도 똑같이 만들 수 있으니, 커피 한 잔 준비하시고 따라와 주세요! ☕
지난 글에서 Docker로 설치하는 방법도 소개했었는데요. 이번에는 n8n Cloud(공식 홈페이지)를 사용했습니다.
솔직히 고백하자면... 처음에는 Docker로 셀프 호스팅하려고 했습니다. "개발자라면 당연히 셀프 호스팅이지!" 하면서 의기양양하게 시작했는데요. 서버 세팅, 포트 포워딩, SSL 인증서, 리버스 프록시... 환경 구성만 하다가 해가 지더라고요. 🌅
그래서 방향을 바꿨습니다. "지금 내 목표가 뭐지? 서버 세팅? 아니잖아. n8n으로 뭘 만들 수 있는지 체험하는 거잖아."
n8n Cloud는 회원가입만 하면 30초 만에 워크플로우 에디터를 쓸 수 있고, 14일 무료 체험도 제공합니다. Docker 삽질하다 하루 날리는 것보다 Cloud로 바로 시작하는 게 백 배 현명한 선택이었습니다. 셀프 호스팅은 나중에 본격 운영할 때 해도 늦지 않으니까요.
(혹시 "그래도 나는 Docker로 하겠다!" 하시는 분은... 응원합니다. 화이팅. 💪)

[사진 1 - n8n 공식 홈페이지]
n8n 공식 홈페이지에 들어가면 이런 화면이 보입니다. "Flexible AI workflow automation for technical teams"라는 문구가 반겨주는데요. GitHub 스타가 무려 173,302개... 지난번 조사할 때 4만 개라고 했는데 엄청나게 늘었네요. 그만큼 핫한 도구라는 뜻이겠죠. "Get started for free" 버튼을 눌러서 가입하면 됩니다.
오늘 만들 것을 한 줄로 정리하면 이렇습니다:
n8n 채팅창에 "내일 일정 확인해서 이메일로 보내줘"라고 입력하면, AI가 알아서 구글 캘린더를 조회하고 Gmail로 발송해주는 워크플로우
말로만 들으면 엄청 거창한데, 실제로 만들어보면 노드 몇 개 연결하는 게 전부입니다. n8n의 매력이 바로 이거예요. 복잡한 자동화를 레고 블록 조립하듯 만들 수 있다는 것!
n8n Cloud에 가입하고 로그인하면 아래와 같은 에디터 화면이 나옵니다.

[사진 2 - n8n 워크플로우 에디터 초기 화면]
"My workflow"라는 이름의 새 워크플로우가 자동으로 생성되어 있고, 화면 한가운데에 "When chat message received" 트리거 노드가 떡하니 놓여 있습니다. 옆에 빨간색 "Open chat" 버튼도 보이네요.
이 트리거 노드는 이름 그대로 채팅 메시지가 들어오면 워크플로우를 시작하는 역할을 합니다. 우리 워크플로우의 출발점이죠. 마치 도미노의 첫 번째 블록 같은 존재입니다.
오른쪽 상단을 보면 Editor, Executions, Evaluations 탭이 있는데, 지금은 Editor 탭에서 작업합니다. GitHub 스타 수(173,535)도 자랑스럽게 표시되어 있네요. 😎
트리거 노드만으로는 아무것도 못 합니다. 메시지를 받기만 하고 끝이니까요. 이제 이 메시지를 처리할 두뇌를 달아줘야 합니다.
트리거 노드 오른쪽에 보이는 작은 + 버튼을 클릭합니다.

[사진 3 - 트리거 노드의 + 버튼]
검색창에서 "AI Agent"를 찾아 추가하면, 아래처럼 연결된 모습이 됩니다.

[사진 4 - AI Agent 노드 추가 완료]
AI Agent 노드를 자세히 보면 하단에 세 개의 다이아몬드(◇) 모양 연결 포인트가 있습니다:
⚠️ 오른쪽에 빨간 경고 삼각형(⚠)이 보이시죠? Chat Model이 아직 연결되지 않아서 그렇습니다. "야, 두뇌 없이 어떻게 일하라고!" 하는 AI Agent의 항의입니다. 바로 해결해 줍시다.
AI Agent의 두뇌 역할을 할 OpenAI Chat Model을 연결하려면 먼저 OpenAI API 키가 필요합니다. OpenAI의 뇌를 빌려쓰는 거니까 열쇠(Key)가 있어야겠죠?
platform.openai.com에 접속합니다.

[사진 5 - OpenAI Platform Usage 페이지]
Usage 페이지에서 현재 사용량을 확인할 수 있습니다. 저는 February 예산을 $10으로 설정해두었는데, 현재까지 $0.31 사용했습니다. Total tokens 4,320개, Total requests 13건이네요.
솔직히 처음에 "API 쓰면 돈이 얼마나 나올까..." 걱정했는데, 생각보다 엄청 저렴합니다. 테스트 몇 번 하는 정도로는 커피 한 잔 값도 안 나와요. (n8n은 무료인데 두뇌값이 나가는 아이러니 😂)
이제 왼쪽 메뉴에서 API Keys를 클릭하고, "Create new secret key"를 누릅니다.

[사진 6 - OpenAI API 키 생성 화면]
설정은 다음과 같이 했습니다:
"Create secret key" 버튼을 누르면 sk-로 시작하는 긴 문자열이 생성됩니다. ⚠️ 이 키는 딱 한 번만 보여주기 때문에 반드시 복사해서 안전한 곳에 저장해두세요! 잃어버리면 새로 만들어야 합니다.
복사한 API 키를 들고 다시 n8n으로 돌아옵니다.
AI Agent 노드 하단의 Chat Model* 옆 + 버튼을 클릭해서 OpenAI Chat Model을 추가합니다. 그러면 자격 증명(Credential) 설정 화면이 나타납니다.

[사진 7 - n8n에서 OpenAI API 키 입력]
여기서 설정할 것:
https://api.openai.com/v1 (기본값 그대로 사용)Save를 누르면 연동 완료! 생각보다 너무 간단해서 허무할 정도입니다.

[사진 8 - OpenAI Chat Model 연결 완료]
짜잔~ OpenAI Chat Model이 AI Agent의 Chat Model 슬롯에 연결된 모습입니다. 이제 AI Agent에게 두뇌가 생겼습니다. 아까의 빨간 경고 삼각형도 사라졌을 거예요. 두뇌 이식 수술 성공! 🧠✨
하단에 "Hide chat" 버튼이 보이는데, 이건 테스트할 때 채팅 패널을 열고 닫는 용도입니다.
두뇌는 달았는데, 이 AI는 아직 금붕어 수준의 기억력을 가지고 있습니다. 매 대화마다 "너 누구야?"부터 시작하면 곤란하겠죠?
AI Agent의 Memory 슬롯에 Simple Memory를 추가합니다.

[사진 9 - Simple Memory 설정]
Parameters 설정을 보면:
{{ $json.sessionId }} (자동으로 세션을 구분)Context Window Length를 10으로 설정했는데, 이는 모델이 최근 10개의 대화를 기억한다는 뜻입니다. 금붕어에서 코끼리 정도로 업그레이드된 셈이죠. 🐘
상단에 노란색 경고 박스가 보이는데, "Simple Memory는 n8n 인스턴스 로컬에 저장된다"는 안내입니다. Queue Mode나 Multi-Main 환경에서는 메모리가 공유되지 않으니, 프로덕션에서는 Redis나 Postgres 같은 외부 저장소를 쓰라는 이야기예요. 지금은 테스트니까 이대로 갑니다!
이제 본격적으로 도구(Tool)들을 달아줄 차례입니다. 첫 번째는 Google Calendar!
AI Agent의 Tool 슬롯에서 + 버튼을 누르고 Google Calendar를 추가하면, OAuth2 인증 화면이 나타납니다. "Sign in with Google" 버튼을 누르고 본인의 Google 계정을 연결해주세요.

[사진 10 - Google Calendar 계정 연결 완료]
초록색 배경에 "Account connected"가 표시되면 성공입니다! 🎉
Allowed HTTP Request Domains는 "All"로 설정되어 있는데, 필요에 따라 특정 도메인만 허용할 수도 있습니다. 지금은 테스트니까 All로 두겠습니다.
(Google이 "이 앱이 내 캘린더에 접근하려고 합니다" 하면서 무서운 경고를 보여줄 수 있는데, 본인이 직접 만든 워크플로우니까 과감하게 허용해주세요. 구글아 나야 나~)
Google Calendar 연동이 되었으니, AI Agent가 캘린더로 할 수 있는 행동(Action)들을 정의해줘야 합니다.
Tool 슬롯에 Google Calendar 노드를 3개 추가합니다:

[사진 11 - Google Calendar Tool 노드 구성]
이렇게 하면 AI Agent가 상황에 따라 적절한 도구를 스스로 선택해서 사용합니다. "일정 알려줘"라고 하면 Get Schedule을, "회의 잡아줘"라고 하면 Create Calendar를 호출하는 식이에요.
개발자로서 이 부분이 정말 신기했습니다. if-else를 제가 짤 필요 없이, AI가 프롬프트를 분석해서 어떤 도구를 쓸지 알아서 판단합니다. 이게 바로 AI Agent의 힘이더라고요.
캘린더 일정을 조회하는 것까지는 좋은데, 그 결과를 이메일로 보내주면 더 실용적이겠죠? Send Gmail 노드를 추가합니다.

[사진 12 - Gmail 노드 설정]
Gmail 노드의 설정을 하나씩 살펴보겠습니다:
여기서 핵심은 To, Subject, Message가 전부 "Defined automatically by the model"로 설정되어 있다는 것입니다. 보라색 ✨ 아이콘이 붙어있는 필드들이죠.
이게 무슨 뜻이냐면, AI가 프롬프트를 분석해서 수신자, 제목, 본문을 알아서 구성한다는 겁니다. "내 이메일로 보내줘"라고 하면 AI가 수신자를 자동으로 채우고, 일정 내용을 보기 좋게 정리해서 본문에 넣어줍니다.
Sender Name은 "n8n"으로 설정해서, 받는 사람이 보낼 때 발신자명이 "n8n"으로 표시됩니다. (동료에게 "나 AI 비서 생겼어" 자랑할 수 있는 포인트 😏)
이왕 만드는 거 연락처도 활용할 수 있도록 Get Contacts (read: sheet) 노드도 추가했습니다. 이렇게 하면 "김대리한테 내일 일정 보내줘"처럼 연락처 기반으로 이메일을 보내는 것도 가능해집니다.

[사진 13 - Send Gmail 및 Get Contacts 추가]
워크플로우가 점점 풍성해지고 있죠? AI Agent 하나에 도구가 5개나 달려있습니다. 마치 스위스 아미 나이프 같은 느낌이에요. 🔪
자, 모든 노드를 연결한 최종 모습입니다!

[사진 14 - 최종 워크플로우 전체 구성]
한눈에 보이시나요? 구조를 정리하면:
When chat message received → AI Agent
AI Agent의 하위 구성:
총 7개의 하위 노드가 AI Agent에 점선으로 연결되어 있습니다. 점선은 "이 도구들을 필요할 때 사용할 수 있다"는 의미예요. 실선 연결(트리거 → AI Agent)과는 다른 개념입니다.
노드 몇 개 드래그 앤 드롭 한 것뿐인데, 캘린더 조회부터 이메일 발송까지 되는 AI 비서가 완성되었습니다. 코드 한 줄 안 쓰고요. 이래서 n8n이 인기 있는 거구나 싶었습니다.
자, 이제 진짜로 돌려봅시다. 심장이 두근두근... 과연 될까? 🥁
하단의 채팅 입력창에 이렇게 입력했습니다:
"내일 나의 주요 일정을 확인하고, 이메일로 발송하도록 해줘"

[사진 15 - 프롬프트 입력]
한국어로 자연스럽게 입력했습니다. 영어로 써야 하나 고민했는데, OpenAI 모델이 한국어를 잘 이해하니까 편하게 한국어로 했어요. Enter 키를 누르는 순간... 워크플로우가 돌아가기 시작합니다!

[사진 16 - 트리거 노드 실행 결과]
채팅 메시지가 전송되자마자 "When chat message received" 노드가 메시지를 받았습니다.
왼쪽 Chat 패널을 보면 제가 보낸 메시지가 표시되고, 그 아래에 JSON 데이터가 보입니다:
오른쪽 Logs에서 "When chat message received — Success in 1ms"를 확인할 수 있습니다. 1밀리초! 번개보다 빠릅니다. ⚡
OUTPUT 테이블에도 sessionId, action, chatInput이 깔끔하게 정리되어 있네요. 이제 이 데이터가 AI Agent로 넘어갑니다.

[사진 17 - AI Agent 실행 중]
AI Agent 노드에 빨간색 테두리가 표시되면서 열심히 일하고 있습니다. 트리거 노드에서 AI Agent로 이어지는 선이 초록색으로 바뀌면서 "1 item"이 전달된 것을 보여줍니다.
하위 노드들을 보면 OpenAI Chat Model 옆에 주황색 원이 보이는데, 이건 현재 이 노드가 실행 중이라는 뜻입니다. AI가 열심히 생각하고 있는 거예요. "음... 캘린더 조회해야겠군, 그리고 이메일도 보내야 하고..." 하면서요.
나머지 도구 노드들(Get Schedule, Create Calendar, Get Contacts, Delete Calendar, Send Gmail)은 아직 대기 중입니다. AI Agent가 필요한 도구만 골라서 호출할 예정이에요.

[사진 18 - 일정 조회 결과 및 AI 응답]
여기가 정말 인상 깊었던 부분입니다!
AI Agent가 구글 캘린더에서 내일(2026-02-09) 일정을 조회한 결과, 총 10건의 일정이 확인되었습니다. 그런데 AI가 바로 이메일을 보내지 않고, 먼저 확인 질문을 하더라고요:
"확인할 내용 몇 가지만 알려주세요:
오... 생각보다 똑똑합니다. 무작정 실행하는 게 아니라, 애매한 부분을 먼저 확인하는 센스! 사람 비서보다 꼼꼼한 것 같은데요? 😲
오른쪽 Logs를 보면 AI Agent가 Success in 10.148s, ~698 Tokens을 사용했고, OUTPUT에 응답 내용이 표시되어 있습니다. 하위에서 Simple Memory → OpenAI Chat Model → Simple Memory → OpenAI Chat Model 순으로 실행된 과정도 확인할 수 있습니다.
채팅에 답변을 입력하면 AI가 이어서 작업을 수행합니다:

[사진 19 - 전체 실행 완료 화면]
성공입니다!! 🎉🎉🎉
모든 노드가 녹색 체크(✓)와 함께 완료되었습니다. 워크플로우 전체 그래프를 보면:
왼쪽 Chat 패널에는 AI가 조회한 일정 브리핑이 상세하게 표시되어 있고, 오른쪽 Logs에서는 각 노드의 실행 이력을 확인할 수 있습니다.
캘린더를 확인해보니 내일 일정이 정말 10건이 있었고, AI가 시간순으로 깔끔하게 정리해서 제 Gmail로 보내줬습니다. 프롬프트 한 줄로 이 모든 게 자동으로 처리된 겁니다. 미래가 와버렸다... 🤖

[사진 20 - 실행 로그 상세]
마지막으로 Logs 탭에서 전체 실행 과정을 시간순으로 살펴보겠습니다:
| 노드 | 결과 | 시작 시간 |
|---|---|---|
| When chat message received | Success in 1ms | 18:41:32.991 |
| ├ AI Agent | Running for 13s | 18:41:32.992 |
| ├ Simple Memory | Success in 1ms | 18:41:33.000 |
| ├ OpenAI Chat Model | Success in 6.343s | 18:41:33.020 |
| ├ Send Gmail | Success in 488ms | 18:41:39.364 |
| ├ Simple Memory | Success in 0s | 18:41:39.862 |
| └ OpenAI Chat Model | Running for 6s | 18:41:39.884 |
흥미로운 포인트들:
지난 글에서 "다음에 직접 해보겠다"고 했는데, 실제로 해보니까요...
생각보다 훨씬 쉬웠습니다. 진짜로요.
코드 한 줄 안 쓰고, 노드 드래그 앤 드롭만으로 "캘린더 조회 → 이메일 발송" AI 비서를 만들었습니다. 전체 셋업 시간은 약 30분 정도? (물론 이 블로그 글 쓰는 데 더 오래 걸렸습니다... 😂)
사실 지금은 프롬프트 창에 직접 프롬프트 명령어를 입력해서 했지만, 이 처음 생성했던 프롬프트 채팅 대신 특정시간에 실행가능하도록 스케줄러 이벤트만 교체해주면, 완전 자동화가 가능한 수준입니다!
이번 실습으로 n8n의 가능성을 확실히 느꼈습니다. 다음은 특정시간에 이벤트가 동작되는 스케줄러 기능 한번 구현해보려구요 ㅎㅎ
다음 포스팅에서 또 실습 내용으로 찾아뵙겠습니다!
긴 글 읽어주셔서 감사합니다.
| [n8n 실습편] Schedule Trigger로 IT 뉴스 자동 요약 → Slack 발송하는 자동화 만들기 (0) | 2026.02.15 |
|---|---|
| 반복 작업은 이제 그만, n8n으로 업무 자동화하기 (0) | 2026.01.31 |
| MCP(Model Context Protocol)란? - AI의 손발이 되어주는 새로운 표준 (1) | 2026.01.17 |
| AWS Bedrock과 Strands Agent SDK를 활용한 AI 에이전트 구축 실습 (0) | 2026.01.17 |
댓글 영역