상세강의자료

Cusdis 자동화 강좌 소개

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

블로그 댓글 운영을 자동화하고 싶은 초급자를 위한 실전 수업입니다. webhook 연결부터 n8n 트리거, Gemini 판정, 조건 분기, 승인 API 호출, 운영 체크리스트까지 전체 루프를 하나의 워크플로우로 엮으며, 자동화에서 가장 중요한 입력 계약과 실패 대응까지 함께 다룹니다.

이 강좌는 댓글이 들어온 뒤 webhook으로 이벤트를 받고, n8n에서 워크플로우를 시작하고, Gemini로 내용을 판정한 뒤, 정상 댓글만 승인과 답글 단계로 넘기는 전체 흐름을 처음부터 끝까지 연결합니다. 핵심은 노드 사용법 자체보다 입력 계약과 운영 안전성을 함께 이해하는 것입니다.

AI 자동화에서 가장 많이 발생하는 문제는 모델 연결 자체보다, 출력 형식이 흔들리거나 운영 기준이 불명확한 상태에서 자동화가 실행되는 것입니다. 그래서 강의는 JSON 계약, 후처리 코드, 분기 조건, 지연 처리, fallback 운영을 함께 다룹니다.

수강을 마치면 실제 댓글 운영에 적용 가능한 워크플로우뿐 아니라, 어떤 지점에서 사람이 개입해야 하고 어떤 지점에서 자동화를 믿어도 되는지 판단하는 기준까지 갖게 됩니다.

결과물: 댓글이 들어오면 AI가 분석하고, 정상 댓글만 지연 후 자동 승인/답글하는 운영 워크플로우, JSON 판정 계약, 후처리 코드, 승인 요청 예시, 배포 전 운영 체크리스트

난이도
입문-초중급
예상 시간
약 1시간 40분
구성
13장 슬라이드

추천 수강생

  • 댓글 운영을 매번 수동으로 처리하고 있어 자동화의 첫 사례가 필요한 개발자 또는 1인 제작자
  • n8n, webhook, API, JSON 개념을 실전 예제로 익히고 싶은 입문자
  • AI를 단순 챗봇이 아니라 운영 자동화의 판단 엔진으로 써 보고 싶은 수강생

사전 준비

  • HTTP 요청과 JSON이 무엇인지 대략 알고 있으면 충분합니다.
  • n8n 계정 또는 self-hosted n8n 환경 중 하나를 준비하면 실습이 수월합니다.
  • Cusdis 사이트 설정 화면에 접근할 수 있으면 그대로 따라 하기 좋습니다.
  • AI가 항상 완벽하게 답하지 않는다는 전제를 받아들이고, 출력 계약을 강제하는 방식에 익숙해질 준비가 되어 있으면 좋습니다.

수강 후 할 수 있는 것

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

필요 도구

  • Cusdis
  • n8n Cloud 또는 self-hosted n8n
  • Gemini API
  • Cloudflare Tunnel (self-hosted 선택 시)

추천 학습 순서

  • 처음 보는 수강생이라면 강좌 소개를 먼저 읽고 예제 README를 열어 전체 결과물을 본 뒤 슬라이드로 들어가는 순서를 추천합니다.
  • 실습할 때는 webhook 샘플과 JSON 계약 문서를 옆에 두고 따라오면 흐름이 훨씬 빨리 잡힙니다.
  • 처음에는 완벽한 자동 승인보다 입력 구조와 분기 흐름을 안정시키는 데 집중하는 것이 좋습니다.

챕터 목차

01

환경 구성과 전체 흐름 이해

Cusdis, n8n, Cloudflare Tunnel이 각각 어떤 책임을 지는지 먼저 분리해서 보고 자동화가 전체적으로 어떤 경로를 따라 움직이는지 파악합니다. 도구의 역할이 보이면 이후 노드 설정이 훨씬 덜 복잡해집니다.

처음 자동화를 만들 때 가장 헷갈리는 것은 도구가 많다는 사실이 아니라, 각 도구가 어떤 역할을 하는지 구분되지 않는다는 점입니다. Cusdis는 댓글 이벤트를 발생시키는 원천이고, n8n은 그 이벤트를 받아 흐름을 실행하는 엔진이며, Cloudflare Tunnel은 self-hosted 환경에서 외부 신호를 받을 수 있게 해 주는 공개 경로 역할을 합니다.

이 챕터는 전체 흐름을 먼저 잡는 데 집중합니다. 댓글이 들어오면 어떤 신호가 어디로 이동하고, 어느 시점에서 AI가 개입하며, 어느 지점에서 최종 승인 요청이 발생하는지를 큰 그림으로 이해해야 이후 노드 설정이 쉬워집니다. 구조를 모르면 세부 설정이 많아질수록 더 막히기 쉽습니다.

또한 n8n Cloud와 self-hosted를 어떻게 선택할지도 여기서 다룹니다. 초급자에게는 보통 n8n Cloud가 더 빠른 출발점이지만, self-hosted는 더 많은 통제권을 줍니다. 다만 통제권은 곧 공개 주소, 업데이트, 보안 패치, 운영 책임을 함께 가진다는 뜻이기도 합니다.

전체 자동화 흐름에서 각 도구가 맡는 역할
도구주된 역할없으면 막히는 지점
Cusdis댓글 이벤트를 발생시키고 운영 대상 데이터를 제공자동화의 입력 자체가 생기지 않음
n8n이벤트를 받아 조건 분기와 후속 액션을 실행판정, 지연, 승인 요청이 연결되지 않음
Cloudflare Tunnelself-hosted n8n을 외부 webhook이 도달 가능한 주소로 공개외부 webhook이 로컬/사설망에 도달하지 못함
배우는 것
  • Cusdis가 왜 입문 자동화 사례로 좋은지
  • n8n Cloud와 self-hosted의 현실적인 선택 기준
  • Webhook을 받기 위한 공개 주소 구성이 왜 필요한지
핵심 산출물

전체 시스템 흐름도와 워크플로우 이미지

다이어그램

댓글 이벤트가 Cusdis에서 n8n으로 들어오고, AI 판정과 승인 요청으로 이어지는 전체 구조를 한눈에 보여 줍니다.

self-hosted 공개 주소 체크리스트

체크리스트

self-hosted n8n이 외부 webhook을 받기 위해 HTTPS 주소를 확보하는 순서를 정리한 메모입니다.

02

Webhook과 트리거 만들기

Cusdis에서 댓글 이벤트를 보내고, n8n Webhook 노드가 그 이벤트를 받는 첫 관문을 완성합니다. 자동화에서 가장 먼저 봐야 할 것은 입력 구조라는 점을 실제 예제로 익히는 단계입니다.

자동화에서 입력은 가장 먼저 이해해야 하는 시스템 계약입니다. 댓글 이벤트가 어떤 필드를 포함하는지, site ID는 어디에 들어 있는지, 본문과 작성자 정보는 어떤 형태인지 모르고 다음 단계를 만들면, AI 판정이나 승인 API가 뒤에서 계속 어긋나게 됩니다. 그래서 이 챕터는 단순 연결보다 payload 읽기에 더 큰 비중을 둡니다.

Cusdis Site settings에서 webhook URL을 등록하는 행위는 단순 설정이 아니라 “댓글 시스템과 자동화 엔진 사이에 연결을 연다”는 의미를 가집니다. 이후 n8n Webhook 노드는 그 연결의 첫 수신 지점이 됩니다. 따라서 입력 테스트는 정상 댓글과 스팸성 댓글 두 경우 모두 최소 한 번씩 해 보는 것이 좋습니다.

이 챕터를 잘 이해하면 이후 단계가 훨씬 단순해집니다. AI 판정, 분기, 승인 로직은 모두 결국 이 입력 구조를 기준으로 움직이기 때문입니다. 입력이 흔들리면 뒤쪽 모든 노드가 흔들립니다.

Webhook 단계에서 먼저 확인해야 할 항목
확인 항목왜 중요한가다음 단계에 미치는 영향
site 식별자어느 사이트의 댓글인지 구분해야 함승인 API 대상과 인증값 연결
comment 본문과 메타데이터AI 판정과 답글 초안의 입력이 됨판정 정확도와 후처리 안정성
HTTPS 도달 가능 여부외부 webhook이 실제로 도달해야 함자동화 자체가 시작되느냐 여부
배우는 것
  • Cusdis Site settings에서 webhook URL 연결하기
  • n8n Webhook 노드의 입력 구조 읽기
핵심 산출물

sample-comment-webhook.json 입력 예시

JSON 예시

Cusdis가 보내는 댓글 이벤트의 실제 필드 구조를 보여 줍니다. 이후 AI 판정과 승인 요청은 모두 이 입력을 기준으로 동작합니다.

03

Gemini 분석과 JS 후처리

AI가 항상 같은 형식으로 결과를 반환하도록 JSON 계약을 강제하고, 실패 가능성을 고려한 후처리 코드를 붙입니다. 모델을 연결하는 것보다 모델 출력을 기계가 소비할 수 있는 데이터로 바꾸는 데 초점을 맞춥니다.

생성형 AI를 자동화 안에 넣을 때 가장 위험한 순간은 “모델이 대충 자연어로 답했는데도 다음 단계가 계속 진행되는 상태”입니다. 사람에게는 그럴듯한 답변이더라도, 기계에게는 JSON 계약이 더 중요합니다. 이 챕터는 분류 결과와 이유, 답글 초안을 항상 같은 구조로 돌려주게 만드는 이유를 설명합니다.

프롬프트는 단순 요청문이 아니라 계약서처럼 써야 합니다. 어떤 필드가 반드시 있어야 하는지, 어떤 값만 허용되는지, 길이는 어느 정도인지, 확신이 없을 때는 어떤 상태를 반환해야 하는지를 함께 적어야 합니다. 그래야 AI가 애매한 경우에도 REVIEW 같은 중간 상태로 빠질 수 있고, 운영 리스크를 줄일 수 있습니다.

하지만 계약을 적어 두는 것만으로는 부족합니다. 실제 운영에서는 모델 출력이 깨지거나 일부 필드가 누락될 수 있기 때문에, JavaScript 후처리 코드로 파싱 실패를 흡수하고 기본값을 부여하는 방어 코드가 필요합니다. 이 강의는 그 방어 계층이 왜 필수인지 보여 줍니다.

Gemini JSON 계약 예시
필드허용값 / 형태왜 필요한가
classificationNORMAL / SPAM / REVIEW분기 노드가 안전하게 다음 단계 여부를 판단
reason짧은 설명 문자열운영자가 판정 근거를 추적할 수 있음
replyDraft짧고 자연스러운 답글 초안승인 단계에서 즉시 사용할 수 있는 출력이 됨
배우는 것
  • Gemini 프롬프트를 JSON 스키마처럼 설계하는 법
  • AI 응답이 깨졌을 때도 흐름이 멈추지 않게 처리하는 법
핵심 산출물

gemini-moderation-prompt(.ko).md JSON 계약 템플릿

프롬프트

classification, reason, replyDraft를 어떤 제약으로 반환하게 할지 정의한 프롬프트 문서입니다.

normalize-gemini-output.js 후처리 예시

소스코드

모델 응답이 깨졌을 때 파싱 실패를 흡수하고 안전한 기본값으로 정리하는 방어 코드 예시입니다.

04

조건 분기와 승인 API 호출

정상 댓글만 다음 단계로 보내고, 사람이 쓴 것처럼 보이는 지연 후 승인/답글 요청을 전송합니다. 자동화의 속도와 운영 리듬, 안전성을 한 번에 맞추는 핵심 챕터입니다.

자동화가 실제 운영처럼 느껴지려면, “맞는 댓글만 다음 단계로 보내는 것”과 “너무 기계적으로 보이지 않게 처리하는 것”이 동시에 필요합니다. If 노드는 이 흐름에서 가장 중요한 안전 장치입니다. Gemini가 NORMAL로 분류한 경우만 다음 단계로 보내고, SPAM이나 REVIEW는 다른 경로로 분리함으로써 자동화가 무분별하게 실행되는 것을 막습니다.

Wait 노드는 단순한 꾸밈이 아닙니다. 댓글이 달리자마자 즉시 답글이 달리면 사용자에게 기계적인 반응으로 보일 수 있고, 운영자 입장에서도 자동화가 너무 공격적으로 느껴질 수 있습니다. 짧은 랜덤 지연은 기술적으로는 사소해 보여도, 운영 경험 측면에서는 중요한 차이를 만듭니다.

마지막으로 HTTP Request 노드는 실제 행동을 발생시키는 지점입니다. 여기서는 승인 요청과 답글 본문이 정확한 구조로 전송되어야 하고, 어느 사이트를 대상으로 하는지와 인증 정보가 올바른지도 확인되어야 합니다. 이 단계는 워크플로우가 “판단”에서 “실행”으로 넘어가는 구간이기 때문에 가장 신중해야 합니다.

승인 단계로 가기 전 흐름 제어 표
단계무엇을 하는가운영상 의미
IfNORMAL 댓글만 다음 단계로 통과시킴위험한 자동 승인을 막는 첫 안전장치
Wait랜덤 지연으로 응답 타이밍을 늦춤기계적인 반응을 줄이고 운영 리듬을 완화함
HTTP Request승인과 답글 요청을 실제 API로 전송자동화의 판단을 실제 서비스 행동으로 바꿈
배우는 것
  • If 노드로 NORMAL 결과만 통과시키는 법
  • Wait 노드로 사람 같은 운영 리듬 만들기
  • HTTP Request 노드로 승인/답글 API 호출하기
핵심 산출물

approve-comment-request.json 승인 요청 예시

API 예시

승인 API로 어떤 body를 보내는지, 사이트 식별자와 replyDraft가 어떻게 묶이는지 확인할 수 있는 요청 예시입니다.

랜덤 지연 표현식과 운영 배포 체크리스트

체크리스트

사람처럼 보이는 응답 타이밍을 만들기 위한 Wait 표현식 아이디어와, 실제 활성화 전 확인할 운영 점검 항목을 함께 묶은 산출물입니다.

05

운영 점검과 확장 아이디어

워크플로우를 공개 환경에 둘 때 필요한 실패 대응 포인트와 다음 단계 자동화 아이디어를 정리합니다. 자동화를 완성하는 것보다 안전하게 운영하는 법을 배우는 마무리 단계입니다.

자동화는 한 번 돌아간다고 끝이 아닙니다. 공개 환경에 올리는 순간부터는 오탐, 미탐, 자격 증명 만료, webhook 장애, 모델 응답 이상, API 호출 실패 같은 현실적인 문제가 생길 수 있습니다. 따라서 마지막 챕터는 “더 멋진 자동화”보다 “문제 생겼을 때 어떻게 버틸 것인가”에 초점을 둡니다.

운영자의 관점에서 가장 중요한 것은 fallback입니다. 문제가 생겼을 때 워크플로우를 끄고 수동 승인으로 되돌릴 수 있는가, JSON 파싱 실패 로그를 별도로 모을 수 있는가, 처음 며칠간은 사람이 직접 승인 결과를 눈으로 확인하는가 같은 질문이 중요합니다. 이런 운영 질문은 자동화 자체만큼 중요합니다.

확장 아이디어도 이 기반 위에서 나옵니다. 슬랙 알림, 댓글 아카이빙, 운영 리포트, 모더레이션 대시보드 같은 기능은 멋져 보이지만, 먼저 안전한 기본 루프가 있어야 의미가 있습니다. 이 강의는 확장을 “다음 단계”로 소개하되, 기초 운영 루프를 먼저 안정화하라고 권합니다.

운영 단계에서 자주 보는 리스크와 대응
리스크처음 볼 곳권장 fallback
Gemini 출력 파싱 실패Code 노드 로그와 raw outputREVIEW 처리 또는 수동 승인으로 전환
승인 API 호출 실패HTTP Request 응답 코드와 인증값워크플로우 일시 중지 후 수동 처리
오탐 / 미탐 증가분류 결과 샘플과 프롬프트 계약프롬프트 수정 전까지 REVIEW 비율 확대
배우는 것
  • 실패 시 어떤 노드에서 디버깅해야 하는지
  • 향후 슬랙 알림, 저장소 적재, 운영 리포트로 확장하는 방법
핵심 산출물

ops-checklist(.ko).md 운영 체크리스트와 fallback 메모

운영 문서

배포 전후 점검 항목, JSON 파싱 실패 대응, 수동 승인 전환 같은 운영 fallback을 정리한 문서입니다.

실전성 증거

전체 워크플로우 구조

댓글 이벤트에서 승인 요청까지 이어지는 흐름을 시각적으로 확인할 수 있습니다.

전체 워크플로우 구조

Gemini 노드 설정 예시

AI를 단순 호출이 아니라 구조화된 판정기로 사용하는 설정 예시입니다.

Gemini 노드 설정 예시

승인 API 요청 예시

실제 운영 직전 단계에서 어떤 요청을 보내는지 확인할 수 있습니다.

승인 API 요청 예시

JSON 계약 예시

AI가 반드시 반환해야 하는 최소 응답 형식을 강의에서 설명합니다.

{
  "classification": "NORMAL | SPAM | REVIEW",
  "reason": "short explanation",
  "replyDraft": "human-sounding reply draft"
}

실습 자료

예제 README

문서

실습 순서와 파일 역할을 한 장에 정리한 출발점 문서입니다.

Webhook payload 샘플

JSON

Cusdis가 보내는 댓글 이벤트 구조를 바로 확인할 수 있습니다.

Gemini 프롬프트 계약

프롬프트

JSON 반환 형식을 강제하는 프롬프트 템플릿입니다.

JS 후처리 코드

소스코드

AI 응답 실패를 흡수하는 defensive parsing 예제입니다.

승인 요청 본문 예시

API 예제

Cusdis 승인/답글 API에 보내는 body 예시입니다.

운영 체크리스트

체크리스트

배포 전후로 확인할 항목을 정리했습니다.

FAQ

코드를 많이 몰라도 따라갈 수 있나요?

가능합니다. 핵심은 webhook, JSON, 조건 분기라는 세 가지 개념을 실제 흐름에서 보는 것입니다. 자바스크립트 예제도 길지 않고 목적이 분명해서 초급자도 구조를 이해하기 좋습니다.

n8n Cloud 없이도 실습할 수 있나요?

가능합니다. self-hosted n8n과 Cloudflare Tunnel 조합으로도 전체 흐름을 재현할 수 있으며, 강의 안에서 그 경로를 함께 설명합니다. 초급자에게는 왜 Cloud가 빠르고 self-host가 더 많은 책임을 요구하는지도 비교해 줍니다.

자동 승인이라 위험하지 않나요?

그래서 이 강의는 JSON 계약, 분기 조건, 랜덤 지연, 운영 체크리스트를 함께 다룹니다. 무조건 승인하는 것이 아니라, 안전한 댓글만 통과시키고 문제 발생 시 수동 운영으로 되돌릴 수 있는 루프를 설계하는 것이 목표입니다.

맞춤형 분석 동의

이 사이트는 방문 분석을 위해 Google Analytics를 사용합니다. 동의하시면 익명화된 페이지 이동 정보만 수집합니다. (기록 보존: 2026)