이 강의에서 다루는 것
- Cusdis webhook을 n8n에 연결해 댓글 이벤트를 자동화 흐름의 시작점으로 사용할 수 있습니다.
- Gemini가 반드시 JSON 계약으로 답하도록 프롬프트를 설계하고 후처리 코드를 붙일 수 있습니다.
- 정상 댓글만 통과시키는 분기, 랜덤 지연, 승인 API 호출을 하나의 워크플로우로 묶을 수 있습니다.
- 실제 운영을 위한 배포 전 체크리스트와 실패 시 복구 포인트를 정리할 수 있습니다.
댓글 관리의 번거로움을 해결해 보세요. AI로 스팸 필터링과 자동 답글까지 연결하는 실전 자동화 프로세스를 배워봅니다.
가볍고 무료로 시작하기 정말 좋은 도구예요. 블로그 댓글 자동화를 처음 시작하는 분들께 강력 추천합니다!
트래픽이 많아지거나 운영 데이터를 직접 관리하고 싶어질 때가 바로 그 시점입니다. 그때까진 우선 편하게 시작해 보세요!
전체적인 흐름을 먼저 파악해 볼까요? Webhook과 n8n, 그리고 AI가 어떻게 맞물려 돌아가는지 확인해 보세요.
댓글이 달리면 Cusdis가 설정된 Webhook URL로 신호를 보냅니다. n8n은 이 신호를 받아 AI로 분석하고, 적절한 처리를 마친 뒤 다시 Cusdis로 결과를 전달하는 구조예요. 이 강력한 자동화 로직을 하나씩 완성해 봅시다!
n8n을 어디에 설치할지 고민되시나요? 처음에는 Cloud가 가장 편하고, 나중에 숙련되면 직접 운영하는 셀프 호스팅(Docker)으로 넘어가시는 걸 추천드려요.
WEBHOOK_URL=https://your-domain.com/ N8N_PROXY_HOPS=1
'your-domain.com' 자리에 여러분의 n8n 도메인을 넣어주세요.
처음에는 n8n Cloud로 가볍게 시작해서 감을 익히고, 나중에 자신감이 붙었을 때 셀프 호스팅으로 옮기셔도 충분합니다!
셀프 호스팅 n8n이 외부(Cusdis)의 신호를 받으려면 '공개 주소'가 필요합니다. 터널링 기술을 이용해 안전하고 쉽게 만들어 볼까요?
여러분의 PC는 보통 사설 네트워크에 있어 외부에서 접근하기 어려워요. 특히 n8n은 보안과 원활한 통신을 위해 HTTPS가 사실상 필수입니다. Domain+HTTPS 설정을 가장 쉽고 확실하게 해결하는 방법 중 하나로 Cloudflare 사용을 강력 추천드려요!
복잡한 서버 설정 없이도 내 PC의 n8n을 안전하게 공개할 수 있는 가장 세련된 방법이에요. 게다가 무료이면서 주소도 고정되니 정말 좋죠!
이제 Cusdis와 n8n을 연결할 차례입니다! 댓글이 달렸을 때 n8n이 바로 알 수 있도록 '연락처(Webhook URL)'를 알려주러 가봅시다.
워크플로우의 마중물 역할을 하는 Webhook 노드입니다. n8n이 신호를 받을 준비를 하는 첫 번째 관문이죠!
이제 인공지능의 힘을 빌릴 차례입니다! Gemini를 활용해 스팸을 걸러내고 멋진 답글 초안까지 만들어 볼까요? 핵심은 'JSON 형식'으로 답변하도록 프롬프트를 짜는 거예요.
당신은 블로그 주인을 돕는 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 }}"
}AI가 준 답변을 자바스크립트로 예쁘게 가공해 봅시다. 속도가 빠른 자바스크립트를 사용하고, 혹시 모를 에러도 안전하게 처리해 줄 거예요.
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();AI의 판단을 믿고 성실히 일할 사람만 뽑는 단계예요. 스팸은 여기서 가차 없이 걸러지고, 깨끗한 댓글만 다음 단계로 넘어갑니다.
댓글에 즉각적으로 반응하면 너무 기계처럼 보일 수 있어요. 10분에서 1시간 사이의 랜덤 지연을 주면 사람이 직접 답하는 것 같은 자연스러운 느낌을 줍니다.
{{ Math.floor(Math.random() * (60 - 10 + 1)) + 10 }}이제 하이라이트입니다! 준비된 데이터를 전송해 댓글을 승인하고 답글까지 게시해 봅시다. 마지막으로 워크플로우를 실제 운영 환경에 배포하는 것도 잊지 마세요.
{"replyContent":"{{ $json.ai_reply }}"}축하합니다! 이제 여러분의 블로그에 똑똑한 AI 관리자가 생겼어요. 실제 운영하면서 조금씩 디테일을 다듬어 보세요.
오늘 강의 어떠셨나요? 도움 되셨다면 정말 기쁩니다. 혹시 추가로 듣고 싶은 다른 강의가 있다면 [email protected] 로 언제든 알려주세요!
더 많은 소식은 여기서 확인해 보세요
n8n과 Gemini를 이용해 댓글 승인, 스팸 필터링, 답글 자동화를 끝까지 연결합니다.
블로그 댓글 운영을 자동화하고 싶은 초급자를 위한 실전 수업입니다. webhook 연결부터 AI 분석, 조건 분기, 승인 API 호출, 운영 체크리스트까지 한 번의 워크플로우로 엮습니다.
결과물: 댓글이 들어오면 AI가 분석하고, 정상 댓글만 지연 후 자동 승인/답글하는 운영 워크플로우
Cusdis, n8n, Cloudflare Tunnel의 역할을 분리해 보고 자동화가 어떤 경로로 움직이는지 먼저 잡습니다.
Cusdis에서 댓글 이벤트를 보내고, n8n Webhook 노드가 그 이벤트를 받는 첫 관문을 완성합니다.
AI가 항상 같은 형식으로 결과를 반환하도록 JSON 계약을 강제하고, 실패 가능성을 고려한 후처리 코드를 붙입니다.
정상 댓글만 다음 단계로 보내고, 사람이 쓴 것처럼 보이는 지연 후 승인/답글 요청을 전송합니다.
워크플로우를 공개 환경에 둘 때 필요한 실패 대응 포인트와 다음 단계 자동화 아이디어를 정리합니다.