# 스킬 레벨 시스템 재구성 **작성일**: 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)