SKILL 40 min

챗봇 실습 — Claude API + 카톡/디스코드

이 레슨이 끝나면

  • "Claude API"가 정확히 뭐고, Claude Desktop과 어떻게 다른지 안다
  • 카카오톡 채널 / 디스코드 봇 둘 중 본인 도메인에 맞는 채널을 고른다
  • /v6-chatbot 스킬을 호출해서 본인 도메인 챗봇을 1개 띄운다

누구에게 추천? — FAQ가 반복되는 1인 운영자, 커뮤니티/팬덤 운영자, 카페/숍 사장님(예약·메뉴 챗봇).

"Claude API" = 코드에서 직접 Claude 부르기

지금까지 본인이 쓴 Claude는 Claude Desktop(앱) 또는 Claude Code(터미널)였어요. 둘 다 사람이 손으로 입력하면 화면에 응답이 떠는 형태예요. 이번 lesson의 주인공인 Claude API는 다르게 동작해요. 본인 코드(Rails 컨트롤러 등) 안에서 "Claude야, 이 메시지에 답해 줘"라고 호출하면, 코드가 응답 문자열을 받아서 다른 곳(카톡/디스코드/본인 SaaS 화면)으로 다시 보낼 수 있어요.

쉽게 말해 Claude를 사람 손이 아니라 코드가 호출해서, 결과를 다른 채널로 흘려 보내는 방식이에요. 이 패턴 한 번 익히면 카톡 봇·디스코드 봇·본인 SaaS 안의 AI 도우미·자동 답변 메일까지 전부 같은 패턴으로 만들 수 있어요.

🎨 생성 (Codex CLI) — Claude Desktop vs Claude Code vs Claude API 비교 다이어그램. 사용자가 직접 입력 vs 코드가 호출하는 흐름.
API는 사람이 아닌 코드가 Claude를 부르는 방식이에요.

2가지 채널 — 카카오톡 vs 디스코드

채널 강점 약점 추천 도메인
카카오톡 채널 한국 사용자 100% 도달 사업자 등록 + 채널 승인 절차 필요 카페·숍·예약·B2C 고객 응대
디스코드 봇 개발 5분, 즉시 시작 디스코드 사용자만 접근 가능 개발자 커뮤니티·팬덤·게임·스터디

처음이라면 — 디스코드부터

승인 절차 없이 30분 안에 동작하는 봇을 띄울 수 있어요. 본인 친구 5명을 디스코드 서버에 초대해서 테스트해 보세요. 그 흐름이 완성되면 같은 코드를 카카오톡 webhook 형식으로 옮기면 돼요.

사례 — 실제 도메인 챗봇

사례 1 — 1인 카페 사장 P

매일 카톡으로 "오늘 영업해요?", "케이크 남았어요?" 답변에 1시간씩 썼어요. 카카오톡 채널 + 자체 webhook + Claude API로 챗봇을 만들었어요. 오늘 영업 시간 / 메뉴 / 잔여 수량을 본인이 매일 아침 노션에 적으면, 챗봇이 그 정보로 답해요. 응답 시간 95% 절약.

사례 2 — 개발자 커뮤니티 운영자 L

디스코드 서버 멤버 500명. 같은 입문 질문이 매일 반복돼서 운영자가 지쳤어요. 디스코드 봇 + Claude API + 본인 커뮤니티 FAQ 문서를 컨텍스트로 주입. "/ask" 명령어로 누구나 챗봇에게 질문하면 FAQ 기반으로 답해요. 운영자 응답 부담 70% 감소.

사례 3 — 인디 게임 스튜디오 S

출시 후 디스코드 서버에 게임 공략 질문 폭주. 개발자 1명이 응대 불가. 디스코드 봇 + Claude API + 본인 게임 매뉴얼 PDF 컨텍스트. 24/7 자동 응대. 사람이 답해야 할 진짜 버그 신고만 운영자에게 알림.

이 스킬을 호출하는 시점

본인 도메인에서 같은 질문이 매일 5건 이상 반복될 때. FAQ가 정리되어 있을 때(또는 정리 가능할 때). 질문 도메인이 좁을수록(예: 본인 카페 메뉴, 본인 게임 공략) 챗봇 정확도가 높아요. 너무 넓으면(예: "세상 모든 질문") 일반 ChatGPT 쓰는 게 나아요.

Claude Desktop 입력

/v6-chatbot

스킬과의 단계별 진행

단계 1 — 도메인 + 질문 5개

"본인 도메인은? 사용자가 자주 묻는 질문 5개를 알려주세요" → 예: "동네 베이커리. 영업시간/메뉴/예약/주차/배달"

단계 2 — 채널 선택 (카톡 / 디스코드)

"사용자가 어디 모여 있나요?" → 일반 고객은 카톡, 커뮤니티는 디스코드.

단계 3 — Claude API Key 발급 안내

console.anthropic.com → API Keys → "Create Key" → 발급된 sk-ant-... 키 복사. 주의: 키는 한 번만 보여요. 본인 비밀번호 매니저에 즉시 저장.

단계 4 — 봇 등록 (디스코드) / 채널 등록 (카톡)

디스코드: discord.com/developers → New Application → Bot 토큰 발급.
카톡: 카카오비즈니스 → 채널 만들기 → 콜백 webhook URL 등록.

단계 5 — 본인 SaaS에 webhook 엔드포인트 추가

스킬이 Rails 컨트롤러 코드를 만들어 줘요. POST /chatbot/incoming → 메시지 받기 → Claude API 호출 → 응답 반환.

단계 6 — 본인 FAQ를 system prompt에 주입

"본인 도메인 정보(메뉴/시간/규칙 등)를 한 덩어리 텍스트로 system prompt에 넣기. Claude가 그 컨텍스트에서만 답하도록."

단계 7 — 테스트 + 배포

본인 메시지로 5개 질문 테스트. 정확한 답이 오면 친구 5명에게 공유.

Claude API 호출 코드 예시 (Rails)

app/services/chatbot_responder.rb

class ChatbotResponder
  SYSTEM_PROMPT = <<~PROMPT
    당신은 OO베이커리의 친절한 챗봇입니다.
    - 영업시간: 평일 8~20시, 주말 9~18시
    - 메뉴: 식빵 5종, 케이크 12종, 음료 8종
    - 예약은 전화(02-XXX-XXXX)만 가능
    위 정보 기반으로만 답하세요. 모르는 건 "전화로 문의 부탁드립니다"라고.
  PROMPT

  def respond(user_message)
    res = HTTP.headers(
      "x-api-key" => ENV["ANTHROPIC_API_KEY"],
      "anthropic-version" => "2023-06-01",
      "content-type" => "application/json"
    ).post("https://api.anthropic.com/v1/messages", json: {
      model: "claude-sonnet-4-5",
      max_tokens: 500,
      system: SYSTEM_PROMPT,
      messages: [{ role: "user", content: user_message }]
    })
    res.parse.dig("content", 0, "text")
  end
end

스킬이 본인 도메인에 맞춰 SYSTEM_PROMPT를 자동 생성해 줘요. 본인은 (1) 도메인 정보 적기 + (2) API 키 .env 저장 두 가지만 하면 돼요.

📷 캡쳐 — console.anthropic.com API Keys 페이지. "Create Key" 버튼 강조.
📷 캡쳐 — discord.com/developers New Application + Bot 토큰 발급 화면.
📷 캡쳐 — 디스코드 채널에 사용자가 "오늘 영업해요?" 질문 + 봇이 정확히 답변한 대화창.
본인 도메인 정보를 기반으로 답하면 성공.
📷 캡쳐 — 카카오톡 채널 챗봇 응답 화면 (스마트폰 mockup).

카카오톡 채널 추가 가이드

1. 카카오비즈니스 가입 + 채널 만들기

business.kakao.com → 카카오톡 채널 → "채널 만들기" → 본인 사업자(또는 개인) 정보. 보통 1~2일 승인.

2. 챗봇 빌더 또는 API 모드

카카오 i 오픈빌더 → 본인 채널 연결 → "스킬" 메뉴에서 본인 webhook URL 등록.

3. webhook 응답 형식

카카오는 응답 JSON 형식이 정해져 있어요. { "version": "2.0", "template": { "outputs": [{ "simpleText": { "text": "..." } }] } }. 스킬이 자동으로 이 형식에 맞춰 코드를 만들어 줘요.

막히는 지점 — 미리 답

① API 키가 노출되면 어떻게 되나요?

제3자가 본인 키로 Claude API를 마구 호출 → 본인에게 비용 청구. 즉시 console에서 해당 키 폐기 + 새 키 발급. 절대 GitHub에 키를 커밋하지 마세요. 항상 .env 파일에 두고 .gitignore.env 추가.

② Claude가 헛소리(환각)를 해요

(1) SYSTEM_PROMPT 마지막에 "위 정보에 없는 건 '잘 모르겠어요. 전화로 문의 부탁드립니다'라고만 답하세요" 추가. (2) temperature를 0.3으로 낮춰서 보수적으로.

③ Claude API 비용이 걱정돼요

Sonnet 모델 기준 메시지 1건 약 1~3원. 월 1000건이어도 1~3천 원. 단, 무한 루프나 악성 사용자 대비: console.anthropic.com에서 월 사용 한도(Spend limit) 설정 + IP당 분당 호출 수 제한(rate limit) 추가.

④ 디스코드 봇이 메시지에 응답 안 해요

(1) 봇이 서버에 추가됐는지 확인. (2) Bot Permissions에 "Read Messages" + "Send Messages" 체크. (3) "MESSAGE CONTENT INTENT" 토글 ON. (4) Discord Developer Portal에서 봇 재시작.

🎨 생성 (Codex CLI) — 챗봇 비용·정확도 트레이드오프 다이어그램. SYSTEM_PROMPT 길이 vs 비용·정확도.

완료 체크리스트

  • ☐ Claude API 키 발급 + .env에 안전하게 저장
  • ☐ 디스코드 봇 또는 카카오톡 채널 1개 등록
  • ☐ 본인 SaaS에 webhook 엔드포인트 추가 + Claude API 호출 코드 작성
  • ☐ 본인 도메인 정보를 SYSTEM_PROMPT에 주입
  • ☐ 5개 질문 테스트해서 정확한 답이 옴
  • ☐ 비용 한도(Spend limit) 설정

다음 활용 사례 → 6-4 크롬 확장 실습

챗봇이 "사용자가 우리에게 오는" 흐름이라면, 크롬 확장은 "우리가 사용자의 브라우저로 가는" 흐름이에요. 본인 작업을 어떤 웹 페이지에서든 부를 수 있는 익스텐션 1개 만들어 봐요.

실습하기

로그인하면 스킬을 실습할 수 있습니다