← 목록으로
n8n을 gcube 서버에 올려서 업무 자동화 시작하기
gcube · hands-on

n8n을 gcube 서버에 올려서 업무 자동화 시작하기

on this page

반복되는 업무, 매일 하고 있지 않으세요?

보고서 PDF 열어서 내용 정리하고, 매일 아침 뉴스 훑어서 팀에 공유하고, 회의 끝나고 액션아이템 정리해서 노션에 올리고. 하나하나는 별거 아닌 것 같지만, 쌓이면 하루의 꽤 많은 시간을 가져갑니다.

이번 글에서는 n8n을 gcube 서버에 올려서 이런 반복 업무를 자동화하는 방법을 소개합니다. 설치부터 실제 워크플로우 3가지까지, 바로 쓸 수 있는 수준으로 정리했습니다.

ChatGPT_Image_2026%EB%85%84_6%EC%9B%94_19%EC%9D%BC_%EC%98%A4%EC%A0%84_10_48_40.png

n8n이 뭔가요?

n8n은 오픈소스 워크플로우 자동화 툴입니다. 쉽게 말하면 "이것이 발생하면 저것을 자동으로 실행"을 노코드/로코드로 연결해주는 도구예요.

  • Gmail, Slack, Notion, Google Sheets 등 400개 이상의 서비스 연동 지원
  • LLM(GPT, Claude 등) 연동 내장으로 AI 처리 파이프라인 구성 가능
  • 셀프호스팅 가능으로 데이터가 외부로 나가지 않음

Make(구 Integromat)나 Zapier와 비슷하지만, 직접 서버에 올려서 무제한으로 쓸 수 있다는 게 결정적인 차이입니다.

gcube에서 n8n 실행하기

gcube는 컨테이너 기반으로 워크로드를 배포하기 때문에, n8n 실행이 매우 간단합니다.

컨테이너 설정

  • 저장소: Docker Hub (hub.docker.com)
  • 이미지: n8nio/n8n (공식 이미지, 2.2억+ pulls)
  • 포트: 5678

💡 이미지에 Entrypoint(tini -- /docker-entrypoint.sh)가 내장되어 있어 별도 실행 명령 없이 컨테이너를 시작하면 n8n이 자동으로 실행됩니다.

gcube 웹 UI에서 컨테이너 배포 후, 할당된 엔드포인트의 5678 포트로 접속하면 n8n 대시보드가 뜹니다.

💡 gcube의 컨테이너는 서버가 켜져 있는 한 24/7 동작합니다. 로컬 PC를 꺼도 자동화가 계속 돌아가는 게 핵심입니다.

시나리오 1. PDF 파일 업로드 → 자동 요약 → Slack 전송

페인포인트: 보고서, 제안서, 회의자료 등 PDF를 일일이 열어 읽기 번거롭다.

노드 체인: On form submission → Extract from File → Message a model → Send a message

워크플로우 만드는 법(PDF 요약)

① On form submission 노드 추가

새 워크플로우를 열고 + 버튼 클릭 후 검색창에 "n8n form" 입력 후 선택합니다. n8n이 자동으로 웹 폼 URL을 생성합니다. 이 URL을 팀에 공유하면 누구든 브라우저에서 PDF를 업로드할 수 있습니다.

설정값:

  • Form Title: PDF 요약 요청
  • 필드: 파일 (File 타입, Required On)
  • 필드: 문서 제목 (Text)

② Extract from File 노드 추가

On form submission 노드 우측 +를 눌러 연결합니다.

  • Operation: Extract from PDF
  • Input Binary Field: 파일 (폼 라벨명과 동일하게 입력)

노드 실행 후 Output 탭의 text 필드에 PDF 본문이 추출되었는지 확인합니다.

⚠️ Extract from File 이전에 Edit Fields 노드를 "Set" 모드로 끼워 넣으면 바이너리 데이터가 사라집니다. 꼭 필요하다면 "Append" 모드를 사용하세요.

③ Message a model 노드 추가 (OpenAI)

검색창에 "Message a model" 입력 후 선택합니다.

  • Credential: OpenAI API 키 연결
  • Model: gpt-4o 또는 gpt-4o-mini (비용 절감)
  • Messages → User 메시지에 아래 프롬프트 입력
다음 문서를 3줄로 요약해줘. 핵심 수치나 날짜가 있으면 반드시 포함해.

{{ $json.text }}

표현식 {{ $json.text }}는 미리보기(Preview)에서 실제 PDF 본문으로 치환되는 것을 확인할 수 있습니다.

💡 gcube에 Ollama를 이미 올려뒀다면, 이 노드 대신 HTTP Request 노드로 로컬 LLM 엔드포인트를 호출할 수 있습니다. 외부 API 비용 없이 처리 가능합니다.

④ Send a message 노드 추가 (Slack)

검색창에 "Send a message" 입력 후 Slack 항목을 선택합니다.

  • Credential: Slack OAuth 또는 Bot Token 연결
  • Send Message To: 전송할 채널 선택 (예: #요약-알림)
  • Message Text:
📄 PDF 요약 완료
문서명: {{ $('On form submission').item.json['문서 제목'] }}

{{ $json.message.content[0].text }}

두 표현식 모두 미리보기에서 정상 해석되는 것을 확인합니다.

⑤ 워크플로우 활성화

상단 Publish 버튼을 눌러 활성화합니다. Save만으로는 트리거가 작동하지 않습니다. 활성화 후 생성된 폼 URL을 북마크하거나 팀 채널에 고정해두면 바로 사용할 수 있습니다.

시나리오 2. 매일 오전 AI 뉴스 수집 → 요약 리포트 → 이메일 발송

페인포인트: 업계 동향 파악을 위해 매일 아침 여러 사이트를 돌아다닌다.

노드 체인: Schedule Trigger → RSS Feed Read ×2 → Merge → Limit → Aggregate → Message a model → Send a message

워크플로우 만드는 법(뉴스 브리핑)

① Schedule Trigger 노드 추가

  • Trigger Interval: Days
  • Days Between Triggers: 1
  • Trigger at Hour: 8 / Trigger at Minute: 0

⚠️ n8n의 기본 타임존은 America/New_York입니다. 워크플로우 우측 상단 톱니바퀴 아이콘 → Timezone을 Asia/Seoul로 변경 후 저장하세요. 변경하지 않으면 한국 시간 오후 10시에 실행됩니다.

② RSS Feed Read 노드 2개 병렬 추가

Schedule Trigger에서 +를 눌러 첫 번째 RSS Feed Read 노드를 추가합니다. 다시 Schedule Trigger에서 +를 눌러 두 번째 노드를 병렬로 추가합니다.

  • 노드 1 URL: https://techcrunch.com/feed/
  • 노드 2 URL: https://www.technologyreview.com/feed/

💡 소스를 더 추가하고 싶으면 같은 방식으로 병렬 노드를 늘리고 Merge 입력에 연결하면 됩니다.

③ Merge 노드로 소스 통합

  • Mode: Append
  • 두 RSS 노드의 출력을 각각 입력 1, 입력 2에 연결

실행 시 TechCrunch 20건 + MIT Technology Review 10건 = 총 30건이 하나의 목록으로 합쳐집니다.

④ Limit 노드 추가

  • Keep: First Items
  • Max Items: 10

30건 전체를 LLM에 넘기면 토큰 비용이 커집니다. 최신 10건으로 제한합니다.

⑤ Aggregate 노드 추가

  • Aggregate: All Item Data (Into a Single List)

10건의 개별 아이템을 하나의 배열(data 필드)로 묶어 LLM에 한 번에 전달합니다. 실행 결과 10개 아이템이 1개 아이템(data 배열 포함)으로 축약됩니다.

⑥ Message a model 노드 추가 (OpenAI)

  • Credential: OpenAI API 키 연결
  • Model: gpt-4o 또는 gpt-4o-mini
  • Messages → User 메시지에 아래 프롬프트 입력
아래는 오늘 수집된 뉴스 목록이야.
AI, 클라우드, GPU 관련 내용만 골라서
다음 형식으로 정리해줘:

📌 제목
한줄 요약
🔗 링크

{{ JSON.stringify($json.data) }}

표현식 {{ JSON.stringify($json.data) }}는 미리보기에서 실제 뉴스 JSON으로 치환되는 것을 확인할 수 있습니다.

⑦ Send a message 노드 추가 (Gmail)

검색창에 "Send a message" 입력 후 Gmail 항목을 선택합니다.

  • Credential: Google OAuth 연결
  • To: 수신 이메일 주소 입력
  • Subject: [일일 브리핑] {{ $now.format('yyyy-MM-dd') }} AI/테크 뉴스 (미리보기에서 예: 2026-06-18 로 정상 해석)
  • Email Type: HTML (줄바꿈·이모지 정상 렌더링)
  • Message:
{{ $json.message.content[0].text }}

---
이 메일은 gcube 서버에서 자동 발송됩니다.

⑧ 워크플로우 활성화

상단 Publish 버튼을 눌러 활성화합니다. 즉시 테스트하려면 Schedule Trigger 노드에서 Execute step을 누르면 됩니다.

시나리오 3. 회의록 텍스트 → 액션아이템 추출 → Notion 저장

페인포인트: 회의 끝나고 액션아이템 정리해서 올리는 게 매번 귀찮다.

노드 체인: Webhook → Message a model → Notion → Send a message

워크플로우 만드는 법(회의록 정리)

① Webhook 노드 추가

트리거 선택 패널에서 "On webhook call"을 선택합니다.

  • HTTP Method: POST
  • Path: meeting-summary
  • Respond: When Last Node Finishes

노드를 추가하면 테스트용 URL과 운영용 URL이 자동 생성됩니다.

테스트: https://[gcube-endpoint]/webhook-test/meeting-summary
운영:   https://[gcube-endpoint]/webhook/meeting-summary

"Listen for test event"를 클릭해 대기 상태로 만든 뒤, 아래 JSON 구조로 POST 요청을 보냅니다.

{
  "title": "주간 마케팅 회의",
  "date": "2026-06-18",
  "body": "참석자: ...\n액션아이템: ..."
}

수신 성공 시 Output 탭에 body.title / body.date / body.body 필드가 파싱된 것을 확인할 수 있습니다.

⚠️ gcube 서비스 URL은 브라우저 로그인 세션 기반 구조입니다. 외부 터미널에서 curl로 직접 호출하면 연결되지 않습니다. 같은 브라우저 세션의 JavaScript fetch 또는 동일 네트워크 내 서버에서 호출해야 합니다.

② Message a model 노드 추가 (OpenAI)

  • Credential: OpenAI API 키 연결
  • Response Format: JSON Object (파싱 안정적)
  • Messages → User 메시지에 아래 프롬프트 입력
아래 회의록에서 액션아이템만 추출해줘.
JSON 배열 형식으로 응답해. 다른 텍스트는 포함하지 마.

형식:
[
  { "담당자": "이름", "내용": "할일", "기한": "날짜 또는 미정" }
]

회의록:
{{ $json.body.body }}

③ Code 노드로 파싱 (선택)

OpenAI 응답이 문자열로 오는 경우 아래 코드로 파싱합니다.

const raw = $input.item.json.message.content[0].text;
const items = JSON.parse(raw);
return items.map(item => ({ json: item }));

④ Notion 노드 추가

먼저 Notion에서 n8n 연동을 설정합니다.

  1. Notion → Settings & Members → Connections → Develop or manage integrations
  2. 새 Integration 생성 후 Internal Integration Token 복사
  3. 사용할 Notion DB 페이지 우측 상단 ... → Add connections → integration 추가
  4. n8n Notion 노드에 Token 입력

노드 설정:

  • Resource: Page / Operation: Create
  • Database: 연동한 Notion DB 선택
  • Title: {{ $('Webhook').item.json.body.title }} 액션아이템 - {{ $('Webhook').item.json.body.date }}
  • Properties: 담당자 / 내용 / 기한 컬럼에 각각 매핑

⚠️ 사용할 데이터베이스마다 개별로 Integration을 공유해줘야 합니다. DB가 드롭다운에 안 보이면 이 단계를 빠뜨린 경우가 대부분입니다.

⑤ Send a message 노드 추가 (Slack)

  • Credential: Slack OAuth 또는 Bot Token 연결
  • Send Message To: 알림 받을 채널 선택
  • Message:
✅ 회의록 정리 완료
회의명: {{ $('Webhook').item.json.body.title }}
액션아이템이 Notion에 저장됐습니다.

⑥ 워크플로우 활성화

Publish 후 운영용 Webhook URL을 팀 공유 문서에 올려두면, 누구든 회의록 텍스트를 붙여넣어 POST 한 번으로 Notion 정리가 완료됩니다.

자격증명(Credential) 설정

세 시나리오 모두 외부 서비스 연동을 위해 아래 자격증명을 직접 입력해야 합니다. n8n은 자격증명을 암호화해서 저장하며, 각 노드의 Credential 항목을 클릭해 설정합니다.

  • OpenAI → API 키 (시나리오 1, 2, 3 공통)
  • Slack → OAuth 또는 Bot Token (시나리오 1, 3)
  • Gmail → Google OAuth (시나리오 2)
  • Notion → Internal Integration Token (시나리오 3)

자격증명 설정 후 각 워크플로우 상단 Publish 버튼을 누르면 완전히 동작합니다.

마무리

세 가지 시나리오 모두 공통 패턴을 따릅니다.

수집 → LLM 처리 → 전달

이 패턴만 익히면 n8n으로 웬만한 반복 업무는 자동화할 수 있습니다. 슬랙 키워드 감지, 구글 시트 변경 알림, 계약서 검토 자동화까지 확장도 가능하고요.

gcube 서버에 올려두면 PC 전원과 무관하게 24시간 돌아가고, 로컬 LLM과 연결하면 민감한 데이터도 외부로 내보내지 않고 처리할 수 있습니다.


gcube(지큐브)는 이기종 GPU를 컨테이너 기반으로 활용할 수 있는 GPU 클라우드 플랫폼입니다. n8n처럼 GPU가 필요 없는 워크로드도 올릴 수 있고, AI 추론 서버나 LLM 서비스도 동일한 인프라에서 함께 운영할 수 있습니다.

👉 gcube 바로가기: https://gcube.co.kr