카카오톡 검역감염병 안내 챗봇, 처음부터 따라 만들기
해외에 다녀온 사람이 카카오톡에 "두바이 다녀왔고 3일 전 귀국했는데 열이 나요"처럼 쓰면, 관련 검역감염병과 해야 할 일을 알려 주는 챗봇을 직접 만듭니다. 관리자 웹 화면(통계, 안내 규칙 검토·승인)도 함께 만듭니다. 코드는 한 줄도 쓰지 않습니다. 이 문서의 "작업지시서"를 Claude에게 붙여 넣으면 Claude가 만들어 주고, 여러분은 가입·설정·승인만 하면 됩니다.
나머지는 무료
이 문서를 쓰는 법
- 위에서부터 순서대로 하세요. 단계 하나를 끝내면 맨 아래 "다 했어요"에 체크합니다. 창을 닫았다가 다시 열어도 체크는 남아 있습니다.
- 회색 상자 오른쪽의 복사 버튼을 누르면 내용이 복사됩니다. 붙여 넣을 곳에서 Ctrl + V.
- 이런 모양은 화면에 보이는 버튼·메뉴 이름입니다. 화면은 자주 바뀌니 비슷한 이름을 찾으세요.
- 선박 전자증서 데모를 이미 따라 만들었다면 1~6단계(가입·설치·토큰)는 이미 끝났습니다. 7단계부터 하세요. 같은 Supabase 프로젝트와 Cloudflare 계정을 그대로 씁니다.
Claude 가입하고 Pro 구독하기
https://claude.ai 접속 → Continue with Google 또는 이메일 입력 후 Continue with email.
이름·약관 동의, 휴대폰 인증이 나오면 진행합니다.
왼쪽 아래 내 이름 → Upgrade plan(또는 Settings → Billing) → Pro 선택 → 카드 결제. 월 약 20달러(부가세 별도).
Claude 데스크톱 앱 설치하기
https://claude.com/download → Windows용 내려받기(대부분 일반 x64).
Claude Setup ….exe더블클릭 → "변경 허용"에 예.앱에서 Log in → 1단계 계정으로 로그인. 사이드바 위쪽에 Chat, Code 탭이 보이면 성공.
보조 프로그램 두 개 설치하기 (Git, Node.js)
Git: https://git-scm.com/downloads/win → Click here to download → 실행 → 아무것도 바꾸지 말고 Next 반복 → Install → Finish.
Node.js: https://nodejs.org/ko/download → LTS Windows 설치 프로그램(.msi) → Next 반복 → Install. "Tools for Native Modules"는 체크하지 않습니다.
작업 폴더 만들기
파일 탐색기(Windows + E) → 문서 → 빈 곳 오른쪽 클릭 → 새로 만들기 → 폴더 → 이름
qc-demo.
Supabase 가입하고 프로젝트와 토큰 만들기
선박 데모를 만들었다면 건너뛰세요. 같은 프로젝트(demo-hub)와 토큰을 씁니다.
https://supabase.com/dashboard/sign-up → 이메일·비밀번호 → Sign Up → 메일의 확인 링크 클릭.
조직(Organization): 이름 아무거나, Personal, Free → Create organization.
New project → 이름
demo-hub, Database Password는 Generate a password, Region Northeast Asia (Seoul) → Create new project.주소창
supabase.com/dashboard/project/abcdefghijklmnopqrst의 굵은 20자가 프로젝트 ref입니다.https://supabase.com/dashboard/account/tokens → Generate new token → 이름
claude-demo→ Generate token.sbp_로 시작하는 토큰이 한 번만 보이니 메모장에 "supabase 토큰"과 함께 붙여 두세요(저장하지 말고 창만 열어 둠).
Cloudflare 가입하고 토큰과 계정 ID 받기
선박 데모를 만들었다면 건너뛰세요.
https://dash.cloudflare.com/sign-up → 가입 → 메일의 Verify email. 도메인 연결 안내는 Skip.
https://dash.cloudflare.com/profile/api-tokens → Create Token → Edit Cloudflare Workers의 Use template → Account Resources는 내 계정, Zone Resources는 All zones → Continue to summary → Create Token → 메모장에 "cloudflare 토큰"과 함께 붙여 두기.
대시보드 첫 화면의 계정 이름 옆 ⋯ → Copy account ID(32자) → 메모장에 "cloudflare 계정 ID"와 함께.
카카오톡 채널 만들기
https://center-pf.kakao.com (카카오톡 채널 관리자센터)에 내 카카오 계정으로 로그인.
새 채널 만들기 → 약관 동의·본인 인증.
채널 이름:
(시연) 검역감염병 신고지원 챗봇
검색용 아이디: 아무거나 (예:qcbot-내별명)
소개글:질병관리청 공식 채널이 아닌 기능 시연용 채널입니다.
프로필 사진은 넣지 않습니다(실제 기관 로고 금지).
만든 채널에 들어가서 확인합니다.
· 검색 허용: 끔 (채널 공개/노출 설정)
· 채팅 메뉴에서 1:1 채팅: 켬 (꺼져 있으면 채팅방에 입력창이 안 생깁니다)
· 채팅방 메뉴: 끔 (켜져 있으면 챗봇을 연결할 수 없습니다)
· 채팅방 인사말 설정이 있으면 꺼 두세요 (챗봇 안내와 겹칩니다)채널 홈 주소(
http://pf.kakao.com/_xxxxx)를 메모장에 적어 둡니다. 채널 관리자센터 첫 화면에 있습니다.
카카오 챗봇 만들기 (빈 봇)
https://chatbot.kakao.com (챗봇 관리자센터)에 같은 카카오 계정으로 로그인.
오른쪽 위 봇 만들기 → 카카오톡 챗봇 → 봇 이름
검역감염병 신고지원 시연(20자 이내) → 확인.지금은 여기까지입니다. 스킬 연결과 배포는 Claude가 서버를 만든 뒤 주소를 알려 주면 합니다(10단계 표).
Claude Code 열기
Claude 앱 → Code 탭.
입력창 아래 줄 맨 왼쪽(환경) → Local 그룹 맨 위. Cloud는 고르지 마세요.
폴더 버튼 → Open folder… → 문서 → qc-demo.
권한 모드 → Accept edits (또는 보이면 Auto).
| 승인 창 버튼(예) | 언제 누르나 |
|---|---|
| Allow once / Yes | 기본으로 이걸 누르세요 |
| Always allow | npx, node, git으로 시작하는 명령이면 눌러도 됩니다 |
| Deny / No | 내용이 이상해 보일 때. 모르겠으면 "이 명령은 뭘 하는 거야?"라고 먼저 물어보세요 |
작업지시서를 Claude에게 주고 시작하기
아래 작업지시서 전체 복사 → Claude Code 입력창에 Ctrl + V → Enter.
중간에 Claude가 부탁할 일
| Claude가 이렇게 말하면 | 여러분이 할 일 |
|---|---|
메모장으로 .env를 열었으니 채워 달라 |
= 바로 뒤에 붙여 넣기: SUPABASE_ACCESS_TOKEN(supabase 토큰), SUPABASE_PROJECT_REF(20자), CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID → Ctrl + S → 메모장 닫기 → "저장했어". |
| 영어 별명을 알려 달라 | 영어 소문자로 짧게(예: minsu) → 웹 주소가 minsu-quarantine-chatbot.pages.dev가 됩니다. |
| 카카오 스킬 주소를 등록해 달라 |
챗봇 관리자센터(chatbot.kakao.com)에서 차례로: ① 왼쪽 스킬 → 생성 → 스킬명 quarantine-chatbot, URL에 Claude가 준 주소 붙여 넣기 → 저장② 시나리오 → 기본 시나리오의 웰컴 블록·폴백 블록·탈출 블록 각각: 파라미터 설정에서 스킬 quarantine-chatbot 선택 → 봇 응답을 스킬데이터 사용으로 → 기존 "안녕하세요. 무엇을 도와드릴까요?" 같은 텍스트 응답은 삭제 → 저장③ 설정 → 카카오톡 채널 연결 → 운영 채널에 7단계 채널 선택 ④ 배포 → 배포 (배포해야 실제 채팅방에 반영됩니다) ⑤ 폰 카카오톡에서 채널 채팅방에 "열이 나요"를 보내 보고 "보냈어"라고 알려 주기 |
| 채널 주소를 알려 달라 | 7단계에서 적어 둔 http://pf.kakao.com/_xxxxx |
| 미리보기 주소를 확인해 달라 | PC 브라우저로 열고 Claude가 알려 준 열람 계정으로 로그인해 체험해 봅니다. 이상하면 캡처해서 보여 주세요. |
| 프로덕션 배포를 승인해 달라 | 괜찮으면 아래 문장을 보냅니다. |
미리보기 확인했어. 프로덕션 배포 승인할게.
작업지시서 기준으로 지금까지 어디까지 했는지 확인하고, 다음 단계부터 이어서 진행해 줘.
계속해 줘.
완성된 챗봇 확인하기
폰 카카오톡: 채널 채팅방에
두바이 다녀왔고 3일 전 귀국했는데 열이 나고 설사를 해요→ "이렇게 이해했어요"가 나오면네→ 안내 등급과 감염병 카드가 나오면 성공. 카드를 옆으로 넘기고 자세히 보기도 눌러 봅니다.하나씩 대화:
코피가 나요→네 콩고요 10일 전에 왔어요→네→ 🚨 119 안내와 "즉시 상담 권장".말로 고치기: 확인 단계에서
설사는 없어요,아니 나라는 우간다예요, 결과 뒤에기침도 있어요.다시 들어온 사람처럼:
안녕하세요→ 사용법 안내가 나오면 성공.PC 웹: 사이트 주소를 열면 로그인 화면만 보여야 합니다. 열람 계정으로 로그인 → 체험하기·감염병 정보. 관리자 계정으로 로그인 → 관리자 → 대시보드, 변경 제안(예시 2건) 하나를 승인하고 적용 → 버전 이력에서 이 버전으로 되돌리기.
관리자 → 대시보드 → 데모 초기화 두 번 눌러 확정 → 처음 상태로.
시연할 때와 평소 관리
- 시연 전: 관리자 화면에서 데모 초기화.
- 웹 계정: 지인·동료에게는 열람 계정만 알려 주세요. 관리자 계정은 본인만.
- 7일 규칙: Supabase 무료 프로젝트는 7일 동안 안 쓰면 잠깁니다. 대시보드에서 Restore project. 시연 전날 한 번 접속해 두세요.
- 웰컴 메시지는 그 사람이 채널과 처음 대화할 때만 나옵니다. 다시 들어온 사람은 아무 말이나 보내면 됩니다(카카오 정상 동작).
매주 감염병 동향 반영하기 (선택)
Claude Code에서 qc-demo 폴더를 열고 아래 문장을 보내면, Claude가 공개 자료를 조사해 "규칙 바꾸기 제안"을 관리자 화면에 올립니다. 반영은 관리자 화면에서 승인해야만 됩니다.
이번 주 국내외 검역감염병 동향을 WHO 발생 소식과 질병관리청 공개 발표에서 조사해서, 지금 활성 룰셋과 다른 점을 변경 제안으로 등록해 줘. 항목마다 출처 링크를 붙이고, 출처가 없는 건 빼. 지난주 챗봇이 못 알아들은 표현이 있으면 별칭 추가 제안도 함께 해 줘.
막혔을 때
카카오톡 채팅방에 입력창이 없고 "채널 홈 바로가기"만 보여요
채널의 1:1 채팅이 꺼져 있습니다. 채널 관리자센터 → 채팅 설정에서 켜세요.
"안녕하세요. 무엇을 도와드릴까요?"만 나오고 챗봇 안내가 안 나와요
① 웰컴·폴백·탈출 블록에 기본 텍스트 응답이 남아 있는지 보고 지우세요. ② 챗봇 관리자센터에서 배포를 다시 누르세요(저장만으로는 반영 안 됨). ③ 운영 채널이 맞게 연결됐는지 보세요. ④ 채널 쪽 "인사말" 설정이면 채널 관리자센터에서 끄세요. 그래도 안 되면 Claude에게 "카카오에서 요청이 들어오는지 확인해 줘"라고 하세요.
카카오에서 답이 늦거나 가끔 안 와요
카카오는 5초 안에 답이 없으면 버립니다. 작업지시서에 대비책(먼저 답하기, 서버 깨워 두기)이 들어 있습니다. Claude에게 "카카오 응답 시간을 재 보고 5초 안에 들어오는지 확인해 줘"라고 하세요.
채널 이름을 바꾸려는데 막혀요
카카오 채널 이름은 변경 제한이 있습니다. 급하면 새 채널을 만들어 챗봇에 운영 채널로 다시 연결하고 배포한 뒤, Claude에게 새 채널 주소를 알려 주세요.
"이 시스템에서 스크립트를 실행할 수 없으므로…" 빨간 오류
Claude에게 "PowerShell 실행 정책 오류가 났어. npx.cmd나 Git Bash로 다시 해 줘"라고 보내세요.
웹사이트가 "연결할 수 없음"이에요
처음 만든 사이트는 주소가 준비되는 데 몇 분 걸립니다. 5~10분 뒤 다시 열어 보세요.
다 쓰고 정리하기 (선택)
Claude Code에서 qc-demo 폴더를 열고:
이 챗봇 데모를 폐기하려고 해. Cloudflare Pages 사이트, Edge Function과 시크릿, 서버 깨우기 예약 작업, 데모 계정, quarantine_chatbot 스키마를 순서대로 지워 줘. 지우기 전에 목록을 먼저 보여 주고 내 확인을 받아.
챗봇 관리자센터에서 봇의 채널 연결 해제 → 봇 삭제, 채널 관리자센터에서 채널 삭제.
Supabase·Cloudflare 토큰 삭제, Claude 구독 해지(필요하면).