SESSION 03 · 심화 교안RAG 챗봇 시스템 매뉴얼
01 / 16

우리 데이터로 답하는
RAG 챗봇 시스템

사내 지식을 안전하게 검색·응답·연동하는 운영자 가이드 · 예시: 수유리 우동집

OVERVIEW교안 한 장 요약
02 / 16

7개 챕터, 한 줄짜리 파이프라인으로 흘러요

지식 등록 → 권한 → 응답 → 외부 채널 연동 → 운영 점검까지. 도구를 배우는 게 아니라, 우리 회사 챗봇이 어떤 구조로 돌아가는지 한 번에 잡습니다.

CH 1
RAG 챗봇이란?
환각 vs 근거 기반
CH 2
사내 지식 DB
/admin/rag
CH 3
권한 · 보안
본사 vs 점주
CH 4
블로그 연동
4가지 방법
CH 5
Firebase 동기화
데모 주입
CH 6
자가진단
체크리스트
CH 7
이수 퀴즈
3문항
+ EXTRA
현장 코칭
1:1 운영 점검
대상: 🏢 본사 임직원 · 🔑 가맹점주 · 🌐 외부 블로그 담당자 — 역할별로 봐야 할 챕터가 슬라이드 우측 상단에 표시돼요.
CH 1RAG 챗봇이란?
03 / 16
🏢 본사🔑 점주🌐 블로그

AI가 '지어내지' 않게 만드는 단 하나의 방법

😵

일반 ChatGPT — 환각(Hallucination)

우리 회사의 멸치 육수 비법이나 이사회 회의록을 모릅니다. 그래서 모르는 걸 그럴듯하게 지어내요. 고객에게 잘못 나가면 사고로 직결됩니다.

🎯

RAG 챗봇 — 근거 기반 응답

Retrieval-Augmented Generation. 답하기 전에 사내 문서를 먼저 검색하고, 그 내용을 인용해서 답합니다. 본사가 등록한 사실만 근거가 됩니다.

💡
AI가 똑똑해서 잘 답하는 게 아니에요. 우리가 등록한 문서가 좋아서 잘 답하는 거예요. → 챗봇 품질 = 문서 등록자(여러분)의 손에 달려 있습니다.
CH 1작동 흐름
04 / 16

질문 한 번 → 3단계로 답합니다

STEP 1📥질문 입력고객 / 점주
STEP 2🔍사내 문서 검색Firebase 색인
STEP 3✍️답변 생성검색 결과를 인용
핵심 1: "AI가 안다/모른다"가 아니라 "문서가 있다/없다"의 문제예요. 답이 부실하면 99%는 문서를 안 올렸기 때문입니다.
핵심 2: STEP 2에서 접근 권한이 없는 문서는 미리 걸러집니다. 점주가 본사 기밀을 물어봐도 검색 단계에서 차단돼요.
CH 2사내 지식 DB · /admin/rag
05 / 16
🏢 본사 전용

문서는 3개의 드라이브로 나눠서 등록해요

드라이브대표 용도RAG 검색 포함 여부
🌐 외부 공개일반 매뉴얼, 대외용 회의록, FAQ — 누구나 봐도 되는 내용✅ 항상 포함
🔒 사내 기밀멸치 육수 비법, 물류 단가 회의록, 이사회 안건✅ 포함 (권한자만 열람)
📁 임시 보관함초안(Draft), 작성 중 문서, 검토 전 자료검색에서 제외
운영 팁: "이거 챗봇한테 검색되면 안 되는데…" 싶으면 일단 📁 임시 보관함에 두세요. 검토가 끝난 뒤에 외부 공개 / 사내 기밀로 옮기면 됩니다.
CH 2두 가지 혁신 뷰
06 / 16

파일 뷰만으로는 부족해요 — 2가지 뷰를 더 써요

Calendar Mode — 일정도 지식이에요

달력 날짜를 클릭해 일정을 추가하면 자동으로 RAG 색인에 들어가요. 챗봇에게 "6월 3일에 무슨 일정 있어?"라고 물으면 달력 데이터로 답합니다.

🌐

Graph Mode — 온톨로지 노드 그래프

문서 ↔ 부서 ↔ 작성자 ↔ 키워드 관계를 네트워크로 시각화해요. 노드를 클릭하면 우측에 해당 노드 전용 미니 챗봇이 열려서, 그 주제에 한정해서만 답합니다.

🧠
왜 이걸 쓰나요? 폴더 트리만으로는 "이 문서가 누구·어떤 일정과 엮여 있나"를 모릅니다. Calendar/Graph는 관계와 시점까지 챗봇이 알게 해주는 장치예요.
CH 2문서 등록 양식
07 / 16

문서 위에 메타데이터 6줄만 붙이세요

제대로 검색되려면 본문보다 상단 frontmatter가 더 중요해요. 점주 모드에서도 잘 잡히려면 access_level·tags가 정확해야 합니다.

YAML — 문서 상단 Frontmatter--- title: "멸치 육수 황금 비율 매뉴얼" drive: "internal" # external | internal | draft access_level: "store_owner" # hq_only | store_owner | public tags: ["레시피", "육수", "주방"] department: "R&D" author: "본사 R&D팀" updated: "2026-05-28" ---
가장 잘 틀리는 줄: access_level. 점주가 봐야 할 문서를 hq_only로 잘못 적으면 점주 챗봇에서 안 나옵니다. → 등록 전 한 번 더 확인하세요.
CH 3권한 · 보안 페르소나
08 / 16
🏢 본사🔑 점주

같은 챗봇, 두 얼굴로 답해요

🏢 본사 임직원 모드

Amber Theme · #f59e0b
  • 본사 행정 임직원 · SV(수퍼바이저) 전용
  • 이사회 회의록 요약본 열람 가능
  • 가맹점 단속 · 검열 규정 검색 가능
  • 사내 사규 · 재무 자료 접근 가능

🔑 지점 점주 모드

Emerald Theme · #10b981
  • 전국 가맹점주 · 주방 조리 실무원
  • 멸치 육수 조리 비율 확인
  • 식자재 발주 · 배송 주기 확인
  • 매장 위생 클레임 대응 매뉴얼
UI도 다르게 보입니다. 본사는 앰버 톤, 점주는 에메랄드 톤 — 운영자가 한눈에 "지금 어느 모드인지" 알 수 있도록 설계됐어요.
CH 3실시간 보안 필터
09 / 16

권한 없는 질문은 검색 단계에서 차단돼요

⚠ 표준 차단 응답 (점주 모드)
🔒 [보안 안내 — 접근 불가 문서]
점주님, 죄송합니다. 요청하신 내용은 본사 공식 RAG 지식 문서에 포함되어 있으나, 해당 문서는 [본사 임직원 및 담당 수퍼바이저] 전용 보안 등급으로 지정되어 있습니다. 지점 점주 및 현장 주방 조리원 계정으로는 열람 권한이 제한되오니 가맹영업본부로 문의 바랍니다.
왜 답을 안 주는 게 더 안전한가요? 차단 메시지 자체가 "그런 문서가 있긴 하다"는 단서를 흘립니다. 그래서 정형화된 표준 문구를 쓰고, 운영자에게는 ACCESS_DENIED 로그가 남도록 했어요.
// 챗봇 응답 전 권한 게이트 function checkAccess(userRole, document) { const HQ_ONLY = ["hq_only"]; const STORE_BLOCKED = userRole === "store_owner" && HQ_ONLY.includes(document.access_level); if (STORE_BLOCKED) { return { blocked: true, message: BLOCKED_RESPONSE_TEMPLATE, logEvent: "ACCESS_DENIED" }; } return { blocked: false }; }
CH 4외부 블로그 · 웹사이트 연동
10 / 16
🌐 블로그 담당🏢 본사 운영

채널 4종 — 한 장으로 정리

📝
티스토리
iframe · HTML 모드
기본모드에 코드 붙이면 글자로 나옵니다. 반드시 HTML 모드로 전환 후 붙여넣기.
🟦
워드프레스
사용자 정의 HTML 블록
구텐베르크에서 [+] → HTML 블록 생성 후 같은 iframe 코드 붙여넣기.
🟢
네이버 블로그
배너 + 하이퍼링크
iframe·스크립트 완전 금지. 이미지 배너 + fullscreen URL 우회.
🍜
플로팅 위젯
</body> 직전 스크립트
사이트 전 영역 우측 하단 동그란 버튼. 본문이 아니라 레이아웃 파일에 넣어요.
🚨
가장 흔한 실수 90%: "코드가 글자로 그대로 나와요" — 100% 에디터 모드 실수입니다. HTML 모드로 전환했는지 먼저 확인하세요.
CH 4티스토리 · 워드프레스
11 / 16

실무 복붙 코드 — iframe 한 덩어리

① 에디터 모드 전환티스토리 우측 상단 [기본모드] → [HTML]. 워드프레스 [+] → [사용자 정의 HTML]. 어두운 코드 창이 떠야 정상.
② 아래 코드를 본문 위치에 붙여넣기위치는 글 본문 어디든 좋아요. 단, 구획선 같은 디자인 요소 안에 넣지 마세요 — 너비가 깨질 수 있어요.
③ 다시 [기본모드]로 복귀챗봇 창이 미리보기에 떠 있으면 성공. 안 보이면 코드를 다시 확인하세요.
HTML — Tistory · WordPress 공용 iframe<!-- 수유리우동집 RAG 챗봇 임베드 (본문용) --> <iframe src="https://chatbot.suyuri-udon.co.kr/embed?persona=store&theme=emerald" width="100%" height="560" frameborder="0" allow="clipboard-write" style="border:1px solid #e5e7eb; border-radius:12px; max-width:720px;" title="수유리우동집 AI 비서"> </iframe>
CH 4네이버 · 플로팅 위젯
12 / 16

네이버는 우회, 사이트 전체는 위젯

🟢

네이버 블로그 — 배너 + 링크

네이버는 본문 내 iframe·script가 완전 금지예요. 그래서 챗봇 호출 배너 이미지를 본문에 넣고, 이미지에 fullscreen URL을 하이퍼링크로 겁니다.

https://chatbot.suyuri-udon.co.kr/embed?persona=store&fullscreen=true

방문자가 배너를 누르면 PC·모바일 최적화된 풀스크린 챗봇이 새 창으로 열려요.

🍜

플로팅 위젯 — 사이트 전체

우측 하단에 항상 떠다니는 동그란 우동그릇 버튼이에요. 본문이 아니라 레이아웃 파일(티스토리는 스킨 HTML, 워드프레스는 footer.php)에 넣습니다.

<!-- </body> 직전에 삽입 --> <script> window.SUYURI_CHATBOT_CONFIG = { persona: "store", position: "bottom-right", themeColor: "#f59e0b", icon: "🍜", autoOpen: false }; var s = document.createElement("script"); s.src = "https://chatbot.suyuri-udon.co.kr/widget/loader.js"; s.async = true; document.head.appendChild(s); </script>
설치 확인: 저장 후 시크릿 창에서 접속 → 🍜 버튼이 보이면 성공. 안 보이면 캐시 새로고침 Ctrl+Shift+R.
CH 5Firebase 동기화
13 / 16
🏢 본사👨‍💻 신임 관리자

새 관리자라면 데모 데이터 1클릭부터

시스템은 본사 Firebase 클라우드 DB와 실시간 동기화돼요. 신임 관리자는 처음에 비어있는 DB에 샘플 지식 17종을 한 번에 주입해서 빠르게 테스트할 수 있습니다.

① /admin/rag 접속좌측 사이드바 맨 아래로 스크롤.
② [데모 RAG 데이터 주입] 1회 클릭본사 매뉴얼·비법 레시피·이사회 회의록·물류 캘린더 등 17종이 자동 등록됩니다.
③ 챗봇이 즉시 학습주입 즉시 색인 → 챗봇이 답변 시작. 새로고침 안 해도 돼요.
// 데모 RAG 데이터 주입 함수 async function seedDemoRAG() { const batch = writeBatch(db); const ragRef = collection(db, "rag_documents"); DEMO_KNOWLEDGE_SET.forEach((item) => { const ref = doc(ragRef); batch.set(ref, { ...item, seeded: true, createdAt: new Date(), }); }); await batch.commit(); }
⚠ 프로덕션 주의: 중복 주입 시 기존 문서와 충돌 가능. seeded: true 플래그가 이미 있는 문서는 미리 정리하거나 중복 체크 로직을 추가하세요.
CH 6자가진단 체크리스트
14 / 16

발행 전 2분 점검 — 사고 90%를 막아요

🌐 외부 블로그 연동

  • 티스토리·워드프레스에서 [HTML 모드]로 전환했다
  • iframe의 src URL이 https://로 시작한다
  • 네이버는 본문 iframe 대신 배너+링크 방식을 썼다
  • 플로팅 위젯은 </body> 바로 윗줄에 넣었다
  • 점주 페이지는 persona=store 파라미터가 있다
  • 시크릿 창에서 챗봇이 정상 표시된다

🔒 보안 · 권한

  • 본사 기밀 문서는 access_level: "hq_only"로 표시돼 있다
  • 점주 모드 테스트에서 본사 기밀이 차단된다
  • 초안 문서가 📁 임시 보관함에 있다 (RAG 검색 제외)
  • 차단 로그 ACCESS_DENIED가 운영 콘솔에 남는다
  • 차단 응답 문구는 표준 문구를 그대로 쓴다
운영 룰: 발행 직전 이 체크리스트를 한 번 훑는 게, 발행 후 사고 한 건 처리하는 것보다 100배 쌉니다.
CH 7교육 이수 퀴즈
15 / 16

3문항 — 클릭하면 즉시 채점돼요

Q1. 티스토리에 챗봇 iframe을 붙였는데 코드가 글자로 나옵니다. 원인은?
Q2. 네이버 블로그에 챗봇을 연동하는 올바른 방법은?
Q3. 점주가 이사회 회의록(본사 기밀)을 챗봇에 질문하면 어떻게 되나요?
CLOSING다음 한 걸음
16 / 16

오늘 안 챗봇은,
내일 발행해도 돼요

CH1~3은 운영 원리 · CH4~5는 실무 복붙 · CH6~7은 발행 직전 점검 — 이 흐름을 익혔으면 우리 회사 채널에 그대로 옮기면 됩니다.

NEXT 1
우리 문서 5개 등록
/admin/rag
NEXT 2
점주 모드 테스트
차단 응답 확인
NEXT 3
블로그 1곳 임베드
티스토리 추천
NEXT 4
체크리스트 1회
발행 전 2분