course 01

Cusdis + n8n 자동화 강의

댓글 관리의 번거로움을 해결해 보세요. AI로 스팸 필터링과 자동 답글까지 연결하는 실전 자동화 프로세스를 배워봅니다.

우리가 함께 만들 결과물
  1. Cusdis Cloud로 가볍게 댓글 시스템 시작하기
  2. n8n Webhook으로 실시간 댓글 이벤트 받기
  3. Gemini AI로 스팸 판별 및 답글 초안 생성하기
  4. 인간적인 템포의 대기 후 자동 승인 및 답글 게시
이 강의를 통해 얻는 것들
  1. 즉시 활용 가능한 한글/영문 AI 프롬프트 예시
  2. 데이터를 정제하는 실무형 JavaScript 코드
  3. Cloudflare Tunnel을 활용한 안전한 외부 노출 방식
  4. 운영 전환 시 필수 체크리스트 (Production URL 등)
1 / 13
why cusdis

왜 처음엔 Cusdis가 편한가

가볍고 무료로 시작하기 정말 좋은 도구예요. 블로그 댓글 자동화를 처음 시작하는 분들께 강력 추천합니다!

Cusdis의 매력 포인트cusdis.com ↗
  1. 개인정보 걱정 없는 오픈소스 Disqus 대안
  2. 단 5KB의 가벼운 SDK로 빠른 로딩 속도
  3. 한국어와 다크모드를 기본으로 지원
  4. 자동화의 핵심, Webhook 과 승인 링크 기본 제공
무료로 시작하는 Cloud 플랜pricing ↗
  1. 무료 플랜: 사이트 1개 등록 가능
  2. 월 100건의 승인된 댓글 지원
  3. 월 10건의 퀵 승인 링크 제공
  4. 규모가 커지면 유료나 Self-host로 전환하세요!
언제 Self-host로 갈아타야 할까요?

트래픽이 많아지거나 운영 데이터를 직접 관리하고 싶어질 때가 바로 그 시점입니다. 그때까진 우선 편하게 시작해 보세요!

2 / 13
system flow

전체 자동화 아키텍처

전체적인 흐름을 먼저 파악해 볼까요? Webhook과 n8n, 그리고 AI가 어떻게 맞물려 돌아가는지 확인해 보세요.

Cusdis 댓글
Webhook 노드
Gemini 분석
Code 정리
If 판별
Wait 지연
HTTP Request
완성된 워크플로

댓글이 달리면 Cusdis가 설정된 Webhook URL로 신호를 보냅니다. n8n은 이 신호를 받아 AI로 분석하고, 적절한 처리를 마친 뒤 다시 Cusdis로 결과를 전달하는 구조예요. 이 강력한 자동화 로직을 하나씩 완성해 봅시다!

이것만은 꼭 기억하세요!
  • `approve_link`를 API 경로로 변환해 승인 요청에 재사용합니다.Gemini 노드
  • LLM은 `NORMAL`/`SPAM` 여부와 답글 초안을 JSON으로 알려줍니다.Gemini 노드
  • 바로 답하지 않고 조금 기다렸다 보내야 기계 같지 않고 자연스러워요.Wait 노드
3 / 13
n8n hosting

n8n 클라우드 vs 셀프 호스팅

n8n을 어디에 설치할지 고민되시나요? 처음에는 Cloud가 가장 편하고, 나중에 숙련되면 직접 운영하는 셀프 호스팅(Docker)으로 넘어가시는 걸 추천드려요.

빠르고 편한 n8n Cloud
  1. 도메인이나 보안(HTTPS) 설정을 고민할 필요가 없어요.
  2. 복잡한 설치 대신 워크플로우를 만드는 데만 집중할 수 있습니다.
  3. 외부 서비스와의 연결이 매우 단순하고 깔끔합니다.
VS
내가 직접 관리하는 Docker 실습Docker docs ↗
  1. n8n이 공식적으로 권장하는 운영 방식이라 믿음직해요!
  2. 업그레이드부터 데이터 보안까지 모든 제어권을 갖게 됩니다.
  3. 외부에서 접속 가능하도록 HTTPS URL을 직접 만들어줘야 합니다.
셀프 호스팅 시 꼭 챙겨야 할 환경 변수docs ↗
WEBHOOK_URL=https://your-domain.com/
N8N_PROXY_HOPS=1

'your-domain.com' 자리에 여러분의 n8n 도메인을 넣어주세요.

처음에는 n8n Cloud로 가볍게 시작해서 감을 익히고, 나중에 자신감이 붙었을 때 셀프 호스팅으로 옮기셔도 충분합니다!

4 / 13
public https

셀프 호스팅 n8n에 도메인(공개 주소) 만들기

셀프 호스팅 n8n이 외부(Cusdis)의 신호를 받으려면 '공개 주소'가 필요합니다. 터널링 기술을 이용해 안전하고 쉽게 만들어 볼까요?

잠시만요! 이런 분들은 넘어가셔도 돼요: n8n Cloud를 쓰시거나 이미 외부 주소가 있는 분들은 지금 바로 다음 단계로 고고!
왜 공개 URL이 필요할까요?

여러분의 PC는 보통 사설 네트워크에 있어 외부에서 접근하기 어려워요. 특히 n8n은 보안과 원활한 통신을 위해 HTTPS가 사실상 필수입니다. Domain+HTTPS 설정을 가장 쉽고 확실하게 해결하는 방법 중 하나로 Cloudflare 사용을 강력 추천드려요!

왜 Cloudflare Tunnel 인가요?

복잡한 서버 설정 없이도 내 PC의 n8n을 안전하게 공개할 수 있는 가장 세련된 방법이에요. 게다가 무료이면서 주소도 고정되니 정말 좋죠!

이렇게 설정해 보세요
  1. Cloudflare Networks > Connectors에서 터널을 생성합니다. "create tunnel"을 누르세요.
  2. 도메인과 내 n8n 주소를 서로 매핑(Route)해 줍니다. 도커에서 n8n을 실행했다면, n8n이 사용하는 포트를 입력해 주세요.
  3. Webhook 신호가 무사히 도착할 수 있도록 HTTPS 도메인 주소를 설정합니다. subdomain 에 n8n을 입력하세요. 예를들어 내 도메인이 yourdomain.com 라면, n8n.yourdomain.com 로 설정이 됩니다. Service type 은 http 로 설정하고, URL 에 n8n이 실행되고 있는 주소를 입력해 주세요. 도커에서 n8n을 실행했고, PC의 ip 주소가 192.168.219.101, docker 의 포트가 5678 이라면 URL에 192.168.219.101:5678 로 입력하면 됩니다.
5 / 13
cusdis webhook

Cusdis에서 n8n 연결하기

이제 Cusdis와 n8n을 연결할 차례입니다! 댓글이 달렸을 때 n8n이 바로 알 수 있도록 '연락처(Webhook URL)'를 알려주러 가봅시다.

Cusdis 사이트 설정의 Webhook 입력창
이것만 하면 끝!
  • Site settings에서 Webhook 스위치를 'ON' 하세요!
  • n8n에서 복사한 Webhook URL을 빈칸에 쏙 넣어줍니다.
  • 테스트 중엔 Test URL을, 정말로 운영하실 땐 Production URL로 바꾸는 것 잊지 마세요!
  • Webhook 데이터에는 승인을 위한 전용 링크(`approve_link`)가 들어있어요. 이 링크를 n8n 워크플로우에서 사용하여, 승인에 사용 할 것입니다.
  • 주의! Cusdis 승인 페이지 링크는 31일 후 만료되니 참고하세요.
6 / 13
n8n workflow · 1 / 6

n8n 워크플로우 만들기

워크플로우의 마중물 역할을 하는 Webhook 노드입니다. n8n이 신호를 받을 준비를 하는 첫 번째 관문이죠!

  • Webhook은 외부(Cusdis)에서 이벤트가 생겼을 때, 우리 서버의 API를 호출해 소식을 전해주는 방식이에요. 댓글이 달리면 n8n이 바로 알 수 있게 해줍니다.
  • Webhook 노드는 'Test'와 'Production' URL이 각각 다르니 설정 시 꼭 확인해 주세요!
  • 실제 운영 환경에 적용하려면 워크플로우를 반드시 'Activate(활성화)' 해야 Production URL이 동작합니다.
  • Cusdis는 `POST` 방식으로 데이터를 보내니, 노드의 메서드도 똑같이 `POST`로 맞춰주세요.
1. 새 워크플로우 만들기 클릭!
2. Webhook 노드를 추가해 주세요.
3. Webhook URL과 POST 방식을 설정합니다.
7 / 13
n8n workflow · 2 / 6

Gemini 노드로 AI 분석하기

이제 인공지능의 힘을 빌릴 차례입니다! Gemini를 활용해 스팸을 걸러내고 멋진 답글 초안까지 만들어 볼까요? 핵심은 'JSON 형식'으로 답변하도록 프롬프트를 짜는 거예요.

1. Gemini Message 노드 추가하기
  • 다른 AI도 좋지만, 소규모 운영이라면 Google AI Studio의 무료 할당량만으로도 충분히 활용 가능합니다.
  • 모델은 `gemini-2.5-flash` 계열을 추천드려요. 속도도 빠르고 JSON 출력도 아주 안정적입니다.
  • 화면 캡처와 실제 UI의 모델 이름이 조금 다를 수 있으니, 가장 최신 모델을 선택해 보세요.
  • 다음 노드에서 데이터를 쉽게 쓸 수 있도록 `Simplify Output`과 `Output Content as JSON` 옵션을 꼭 켜주세요!
2. 모델 선택과 프롬프트, JSON 출력 설정하기
AI 비서에게 내리는 명령어 (프롬프트) 카피해서 쓰세요.
당신은 블로그 주인을 돕는 AI 비서입니다.
다음 댓글을 읽고 스팸인지 판별한 후, 정상적인 댓글이라면 감사의 답글을 작성해 주세요. (답글은 친절하게 댓글 언어에 맞춰서 1~2문장으로 작성할 것)
댓글 내용: "{{ $json.body.data.content }}"

[출력 규칙]
반드시 아래의 구조를 가진 순수한 JSON 객체 하나만 출력하세요. 마크다운으로 감싸지 마세요.

댓글 내용: "{{ $json.body.data.content }}"

[출력 규칙]
1. 어떠한 설명이나 마크다운 백틱(```) 기호 없이 오직 JSON(rfc8259) 포맷만을 반환하세요.
2. 아래의 JSON 스키마를 정확히 준수하세요.
{
  "result": "NORMAL" 또는 "SPAM",
  "reply": "작성한 답글 내용 (SPAM인 경우 빈 문자열)",
  "approved_link": "{{ $json.body.data.approve_link }}"
}
8 / 13
n8n workflow · 3 / 6

Code 노드로 데이터 깔끔하게 정리하기

AI가 준 답변을 자바스크립트로 예쁘게 가공해 봅시다. 속도가 빠른 자바스크립트를 사용하고, 혹시 모를 에러도 안전하게 처리해 줄 거예요.

1. Code 노드 추가하기
2. 자바스크립트 실행 모드 설정하기
  • `Run once for all items` 모드를 선택해 모든 데이터를 한 번에 순회하며 처리합니다.
  • AI 답변에서 불필요한 마크다운 기호를 지우고, 진짜 데이터(JSON)만 쏙 뽑아낼 거예요.
  • 준비된 코드를 복사해서 붙여넣기만 하면 설정 끝! 정말 간편하죠?
JavaScript 후처리 코드
for (const item of $input.all()) {
  try {
    // Result from gemini : $json.content.parts[0].text
    let rawText = item.json.content.parts[0].text;

    // 2. Remove markdown letters and trim
    rawText = rawText.replace(/```json/g, "").replace(/```/g, "").trim();

    const parsedData = JSON.parse(rawText);
    const originalLink = parsedData.approved_link;
    const apiLink = originalLink.replace("/open/approve", "/api/open/approve");
    item.json.ai_result = parsedData.result;
    item.json.ai_reply = parsedData.reply;
    item.json.ai_api_link = apiLink;
    item.json.ai_approve_link = parsedData.approved_link;

  } catch (error) {
    item.json.ai_result = "ERROR";
    item.json.ai_approve_link = "";
  }
}
return $input.all();
9 / 13
n8n workflow · 4 / 6

If 노드 — 정상 댓글만 쏙 골라내기

AI의 판단을 믿고 성실히 일할 사람만 뽑는 단계예요. 스팸은 여기서 가차 없이 걸러지고, 깨끗한 댓글만 다음 단계로 넘어갑니다.

If 노드의 분기(Branch) 설정 화면
  • Gemini의 판단 결과(`ai_result`)가 'NORMAL'인 경우만 추려냅니다.
  • 조건에 맞으면(True) 대기 및 답글 노드로 진행하고, 아니면(False) 조용히 멈춥니다.
  • 단순한 문자열 비교만으로도 강력한 필터링 시스템을 구축할 수 있어요.
10 / 13
n8n workflow · 5 / 6

Wait 노드 — 랜덤 지연으로 자연스러운 타이밍

댓글에 즉각적으로 반응하면 너무 기계처럼 보일 수 있어요. 10분에서 1시간 사이의 랜덤 지연을 주면 사람이 직접 답하는 것 같은 자연스러운 느낌을 줍니다.

Wait 노드에서 랜덤 지연 설정하기
랜덤 지연을 위한 수식 (Expression)
{{ Math.floor(Math.random() * (60 - 10 + 1)) + 10 }}
  • `Amount` 필드에서 'Expression' 모드를 선택한 뒤 수식을 입력해 주세요.
  • 입력된 수식은 10분에서 60분 사이의 랜덤한 값을 생성합니다.
  • 주의! 시간 단위(Unit)를 반드시 'Minutes'로 설정해야 합니다. 초(Seconds)로 하시면 너무 빨리 답하게 돼요!
  • 댓글 유입이 활발한 블로그라면 지연 시간 범위를 조금 더 넓게 잡아도 좋습니다.
11 / 13
n8n workflow · 6 / 6

HTTP Request 노드 & 최종 배포

이제 하이라이트입니다! 준비된 데이터를 전송해 댓글을 승인하고 답글까지 게시해 봅시다. 마지막으로 워크플로우를 실제 운영 환경에 배포하는 것도 잊지 마세요.

전송할 데이터 형식 (JSON Body)
{"replyContent":"{{ $json.ai_reply }}"}
  • URL: 앞선 Code 노드에서 정제한 전용 API 경로(`ai_api_link`)를 사용합니다.
  • 설정 값: `POST` / `JSON` / `Send Body ON`으로 맞춰주시면 됩니다.
  • `replyContent` 라는 이름으로 AI가 만든 답글 내용을 실어 보냅니다.
  • 마지막 확인! 워크플로우를 'Publish' 하지 않으면 실제 댓글에 반응하지 않으니 꼭 켜주세요.
HTTP Request로 승인+답글 전송하기
워크플로우 운영(Publish) 시작!
12 / 13
wrap-up

마치며

축하합니다! 이제 여러분의 블로그에 똑똑한 AI 관리자가 생겼어요. 실제 운영하면서 조금씩 디테일을 다듬어 보세요.

강의를 마치며, 꼭 체크해 보세요!
  • 처음에는 Cusdis Cloud 무료 플랜으로 가볍게 써보시고, 규모가 커지면 유료나 Self-host를 고려해 보세요.
  • AI 자동 답글이 내 블로그의 색깔과 잘 맞는지, 가끔 엉뚱한 답을 하지는 않는지 주기적으로 살펴보는 게 좋습니다.
  • 블로그 성격에 따라 Gemini 프롬프트를 조금씩 수정하면 훨씬 더 개성 있는 답글을 얻을 수 있습니다.

오늘 강의 어떠셨나요? 도움 되셨다면 정말 기쁩니다. 혹시 추가로 듣고 싶은 다른 강의가 있다면 [email protected] 로 언제든 알려주세요!

더 많은 소식은 여기서 확인해 보세요

13 / 13
강의 목록
n8n과 AI로 완성하는 스팸 필터링 & 댓글 자동 승인
강의 요약

Cusdis 자동화

n8n과 Gemini를 이용해 댓글 승인, 스팸 필터링, 답글 자동화를 끝까지 연결합니다.

블로그 댓글 운영을 자동화하고 싶은 초급자를 위한 실전 수업입니다. webhook 연결부터 AI 분석, 조건 분기, 승인 API 호출, 운영 체크리스트까지 한 번의 워크플로우로 엮습니다.

결과물: 댓글이 들어오면 AI가 분석하고, 정상 댓글만 지연 후 자동 승인/답글하는 운영 워크플로우

이 강의에서 다루는 것

  • Cusdis webhook을 n8n에 연결해 댓글 이벤트를 자동화 흐름의 시작점으로 사용할 수 있습니다.
  • Gemini가 반드시 JSON 계약으로 답하도록 프롬프트를 설계하고 후처리 코드를 붙일 수 있습니다.
  • 정상 댓글만 통과시키는 분기, 랜덤 지연, 승인 API 호출을 하나의 워크플로우로 묶을 수 있습니다.
  • 실제 운영을 위한 배포 전 체크리스트와 실패 시 복구 포인트를 정리할 수 있습니다.

챕터 구성

0120분

환경 구성과 전체 흐름 이해

Cusdis, n8n, Cloudflare Tunnel의 역할을 분리해 보고 자동화가 어떤 경로로 움직이는지 먼저 잡습니다.

0215분

Webhook과 트리거 만들기

Cusdis에서 댓글 이벤트를 보내고, n8n Webhook 노드가 그 이벤트를 받는 첫 관문을 완성합니다.

0330분

Gemini 분석과 JS 후처리

AI가 항상 같은 형식으로 결과를 반환하도록 JSON 계약을 강제하고, 실패 가능성을 고려한 후처리 코드를 붙입니다.

0425분

조건 분기와 승인 API 호출

정상 댓글만 다음 단계로 보내고, 사람이 쓴 것처럼 보이는 지연 후 승인/답글 요청을 전송합니다.

0510분

운영 점검과 확장 아이디어

워크플로우를 공개 환경에 둘 때 필요한 실패 대응 포인트와 다음 단계 자동화 아이디어를 정리합니다.