# 📚 RAG: LLM에게 참고 자료를 주기

## 🚫 LLM의 한계

LLM은 똑똑하지만, 혼자서는 할 수 없는 일들이 많습니다.

### 📋 문제 상황 예시

|사용자 요청|LLM의 문제|필요한 해결책|
|---|---|---|
|"우리 회사 2024년 매출은?"|회사 내부 정보를 모름|회사 문서에 접근 필요|
|"지금 서울 날씨는?"|실시간 정보를 모름|날씨 API 호출 필요|
|"내 캘린더에 회의 등록해줘"|외부 도구를 사용 못함|캘린더 시스템 연동 필요|
|"최근 뉴스 요약해줘"|최신 정보가 없음|뉴스 검색 기능 필요|

## 💡 RAG란? (Retrieval-Augmented Generation)

LLM이 답변하기 전에 관련 문서나 정보를 먼저 찾아서 참고하도록 하는 기술입니다.

### 🤔 왜 필요한가?

**문제** ❌: LLM은 학습하지 않은 정보(회사 문서, 최신 자료 등)를 모릅니다.

**해결** ✅: 질문과 관련된 문서를 검색해서 LLM에게 보여주고, 그걸 참고해서 답변하게 합니다.

## ⚙️ 동작 원리

```
1. 사용자: "2024년 3분기 매출 보고서 내용은?"
   ↓
2. RAG 시스템: 문서 데이터베이스에서 "2024년 3분기 매출 보고서" 검색
   ↓
3. RAG 시스템: 관련 문서 내용을 찾아서 LLM에게 전달
   ↓
4. LLM: 받은 문서를 읽고 자연스러운 답변 생성
   ↓
5. 사용자: "3분기 매출은 120억원으로 전년 대비 15% 증가했습니다"
```

## 🎯 실생활 비유

**오픈북 시험** 📖을 생각하면 됩니다.

- 일반 LLM: 교과서 없이 머리로만 시험 보기
- RAG 적용 LLM: 시험 볼 때 교과서를 펼쳐서 찾아보며 답 쓰기

## ⚖️ 장점과 단점

### ✅ 장점

- **최신 정보 제공**: 문서만 업데이트하면 최신 정보 답변 가능
- **정확성 향상**: 실제 자료를 참고하므로 거짓말(환각) 감소
- **출처 명시**: "이 정보는 XX 문서에서 찾았습니다" 라고 알려줄 수 있음
- **전문 지식**: 회사 내부 문서, 매뉴얼, 법률 자료 등 특정 분야에 강함
- **비용 효율적**: LLM 재학습 없이 문서만 추가하면 됨

### ⚠️ 단점

- **검색 품질에 의존**: 검색이 잘못되면 답변도 틀림
- **응답 시간**: 검색하는 시간이 추가되어 조금 느림
- **초기 구축 비용**: 문서 DB, 검색 엔진 등 인프라 필요
- **정적 데이터**: 실시간 변화하는 정보에는 부적합

## 🎮 적합한 사용 사례

- **게임 패치 노트 챗봇** ⭐
- 사내 지식베이스 검색 챗봇
- 고객 지원 시스템 (FAQ, 매뉴얼)
- 법률/의료 상담 (전문 문서 참조)
- 제품 문서 검색
- 학술 논문 검색 및 요약

## 🎮 게임 패치 노트 챗봇 예시

**상황**: 롤(LoL) 패치 노트가 매번 너무 길고 복잡해서 유저들이 읽기 힘들어함 😵

### ❌ RAG 적용 전 (일반 LLM)

- 유저: "이번 패치에서 야스오 버프됐어?"
- LLM: "죄송합니다. 최신 패치 정보는 제 학습 데이터에 없어서 알 수 없습니다."
- ❌ **문제**: 최신 패치 노트를 모름

### ✅ RAG 적용 후

```
1. 유저: "이번 14.3 패치에서 야스오 변경사항 알려줘"
   ↓
2. RAG 시스템: 패치 노트 DB에서 "14.3 패치" + "야스오" 검색
   ↓
3. 검색 결과: "야스오 - Q 스킬 쿨다운 4초 → 3.5초, 
              E 스킬 대미지 60/70/80/90/100 → 70/80/90/100/110"
   ↓
4. LLM: 검색된 정보를 바탕으로 자연스럽게 답변 생성
   ↓
5. 챗봇: "14.3 패치에서 야스오가 버프되었습니다!
          - Q(강철 폭풍) 쿨다운이 4초에서 3.5초로 감소했어요
          - E(질풍검) 대미지가 모든 레벨에서 10씩 증가했습니다
          전반적으로 초반 라인전이 강화되는 버프네요!"
```

### 🌟 RAG의 장점 (게임 챗봇 관점)

- ✅ 매 패치마다 새로운 노트를 DB에 추가하기만 하면 됨
- ✅ "출처: 14.3 패치 노트" 같이 어디서 찾은 정보인지 보여줄 수 있음
- ✅ "이전 패치와 비교해줘" 같은 질문도 여러 패치 노트를 검색해서 답변 가능
- ✅ LLM 재학습 없이 계속 최신 정보 제공

## 📝 RAG가 필요한 경우

사용자가 **"알고 싶어하는"** 상황 🤔:

- ✅ 패치 노트 내용 검색
- ✅ 챔피언 스킬 정보, 아이템 효과 조회
- ✅ 과거 패치 히스토리 비교
- ✅ 메타 변화 분석 문서
- ✅ 사내 규정이나 정책 문의
- ✅ 고객 FAQ 자동 응답

**게임 챗봇 예시 질문들** 💬:

- "14.3 패치에서 야스오 변경사항은?"
- "지난 5개 패치에서 원딜 버프 내역 정리해줘"
- "도란 검 패시브 효과가 뭐였지?"