# 스킬 레벨 시스템 재구성

**작성일**: 2025-08-30  
**작성자**: 51123 서버 관리자  
**상태**: ✅ 구현 완료  
**목표**: 레벨별 스킬 시스템을 현실적이고 단계적으로 재구성

---

## 1. 개요

기존 혼재된 스킬 시스템을 명확한 단계별 진행 구조로 재정의합니다.
소수 레벨(Prime number)을 기준으로 주요 스킬이 해금되는 구조입니다.

---

## 2. 레벨별 스킬 최종 배치

| 레벨 | 스킬명 | 설명 | 백엔드 연결 |
|------|--------|------|------------|
| **1** | 기본 대화 | 일상 대화, 인사, 간단한 질문 응답 | `/api/chat` → rb8001 |
| **2** | 이메일 읽기 | Gmail 메시지 조회, 받은 편지함 확인 | `/api/gmail/messages` → skill-email |
| **3** | Slack 대화 | Slack 채널에서 대화 참여, 메시지 읽기/쓰기 | `/api/slack/messages` → rb8001 |
| **4** | 이메일 전송 | Gmail로 메일 작성 및 발송, 답장 기능 | `/api/gmail/send` → skill-email |
| **5** | 데일리 브리핑 | 매일 아침 종합 브리핑 (날씨, 뉴스, 일정) | `/api/briefing` → skill-news |
| **7** | 일정 관리 | 캘린더 연동, 일정 추가/수정/알림 | `/api/calendar` → (미구현) |
| **11** | 문서 작성/편집 | Google Docs 연동, 문서 생성 및 편집 | `/api/docs` → (미구현) |
| **13** | 데이터 분석/차트 | 데이터 시각화, 통계 분석, 리포트 생성 | `/api/analytics` → (미구현) |
| **17** | 프로젝트 관리 | 태스크 관리, 진행상황 추적, 팀 협업 | `/api/project` → (미구현) |
| **19** | AI 인사이트/예측 | 패턴 분석, 예측 모델, 추천 시스템 | `/api/insights` → (미구현) |
| **23** | 자동화 워크플로우 | 반복 작업 자동화, 커스텀 워크플로우 | `/api/automation` → (미구현) |

---

## 3. Frontend 수정 사항

**파일**: `/home/admin/frontend-customer/src/components/skills-items-panel.tsx`

### 3.1 수정 위치
- **라인 138-229**: `allSkills` 배열 전체 교체

### 3.2 변경 내용
✅ **구현 완료** (2025-08-30):
```typescript
const allSkills = [
  { id: 'basic-chat', name: '기본 대화', level: 1, icon: '💬' },
  { id: 'email-read', name: '이메일 읽기', level: 2, icon: '📧' },
  { id: 'slack-chat', name: 'Slack 대화', level: 3, icon: '💼' },
  { id: 'email-send', name: '이메일 전송', level: 4, icon: '✉️' },
  { id: 'daily-briefing', name: '데일리 브리핑', level: 5, icon: '📰' },
  { id: 'calendar', name: '일정 관리', level: 7, icon: '📅' },
  { id: 'docs-edit', name: '문서 작성/편집', level: 11, icon: '📝' },
  { id: 'data-analysis', name: '데이터 분석/차트', level: 13, icon: '📊' },
  { id: 'project-mgmt', name: '프로젝트 관리', level: 17, icon: '🎯' },
  { id: 'ai-insights', name: 'AI 인사이트/예측', level: 19, icon: '🔮' },
  { id: 'automation', name: '자동화 워크플로우', level: 23, icon: '⚡' }
];
```

---

## 4. 백엔드 연결 방법

### 4.1 Gateway 라우팅 구조
```
Frontend → nginx(/gateway/) → Gateway(8100) → 각 서비스
```

### 4.2 서비스별 연결

#### 기본 대화 (레벨 1)
- **현재**: `/api/chat` → rb8001:8001 ✅ 구현됨
- **참고**: `/home/admin/DOCS/troubleshooting/250826_frontend_rb8001_채팅연결_계획.md`

#### 이메일 읽기/전송 (레벨 2, 4)
- **현재**: `/api/gmail/*` → skill-email:8501 ✅ 구현됨
- **인증**: Gmail 패스포트 시스템 사용
- **참고**: `/home/admin/DOCS/troubleshooting/250820_happybell80_Gmail패스포트시스템완성.md`

#### Slack 대화 (레벨 3)
- **계획**: `/api/slack/messages` → rb8001:8001
- **인증**: Slack 패스포트 시스템 (구현 중)
- **참고**: `/home/admin/DOCS/plans/250828_slack_integration_level3_plan.md`

#### 데일리 브리핑 (레벨 5)
- **현재**: `/api/briefing` → skill-news:8501 ✅ 구현됨
- **스케줄**: 매일 오전 6시 자동 실행
- **참고**: `/home/admin/DOCS/300_architecture/sequences/daily_briefing_sequences.md`

### 4.3 Gateway 프록시 패턴
```python
# robeing-gateway/app/main.py
@app.get("/api/{path:path}")
async def proxy_request(path: str, current_user: dict = Depends(get_current_user)):
    # JWT 검증 → user_id 추출 → 서비스 라우팅
    if path.startswith("gmail/"):
        return proxy_to_skill_email(path, current_user)
    elif path.startswith("slack/"):
        return proxy_to_rb8001(path, current_user)
    # ...
```

---

## 5. 데이터베이스 연동

### 5.1 스킬 해금 상태 관리
- **테이블**: `robeing_stats`
  - `level`: 현재 레벨
  - `experience`: 경험치
  - `skills_unlocked`: JSONB (해금된 스킬 목록)

### 5.2 스킬 사용 로그
- **테이블**: `skill_usage_logs` (추가 필요)
  - `user_id`: UUID
  - `skill_id`: 스킬 ID
  - `used_at`: 사용 시간
  - `result`: 성공/실패

---

## 6. 구현 우선순위

1. **즉시**: Frontend UI 변경 (스킬 목록 재배치)
2. **단기**: Slack 대화 백엔드 연결 (Phase 3)
3. **중기**: 일정 관리 (레벨 7) 구현
4. **장기**: 레벨 11+ 고급 기능 구현

---

## 7. 테스트 시나리오

1. 각 레벨별 스킬 해금 확인
2. 스킬 아이콘 및 설명 표시 확인
3. 백엔드 API 연결 테스트
4. 레벨업 시 새 스킬 활성화 확인

---

## 8. 참고 문서

- [Gateway 프록시 패턴](/home/admin/DOCS/300_architecture/gateway_proxy_patterns.md)
- [Gmail 패스포트 시스템](/home/admin/DOCS/troubleshooting/250820_happybell80_Gmail패스포트시스템완성.md)
- [Slack 통합 계획](/home/admin/DOCS/plans/250828_slack_integration_level3_plan.md)
- [데일리 브리핑 시퀀스](/home/admin/DOCS/300_architecture/sequences/daily_briefing_sequences.md)