Add: 260_아이템시스템 문서 추가 - 외부도구 통합과 권한관리

- 200_core_design에 아이템 시스템 문서 추가
- 4가지 아이템 유형 정의 (API, 도구, 데이터, 강화)
- 인벤토리 관리 시스템 설계
- 외부 도구 통합 예시 (GenSpark, Notion 등)
- README.md와 프로젝트 종합 문서 업데이트
This commit is contained in:
Claude-51124 2025-07-31 21:32:03 +09:00
parent af4f64e0ff
commit bd91a55963
3 changed files with 240 additions and 0 deletions

View File

@ -253,6 +253,7 @@ class RobeingMemory:
2. **Part 2: 핵심 설계** (200_core_design)
- 스탯과 성장 시스템
- 기억 모듈과 감정 엔진
- 아이템 시스템과 외부 도구
3. **Part 3: 기술 아키텍처** (300_architecture)
- 마이크로서비스와 컨테이너

View File

@ -0,0 +1,238 @@
# 260. 아이템 시스템: 외부도구 통합과 권한 관리
## 개요
로빙의 능력을 확장하는 "아이템" 개념은 게임의 장비 시스템처럼 작동합니다. 각 아이템은 로빙에게 새로운 능력을 부여하거나 기존 능력을 강화하며, 레벨과 스탯에 따라 사용 가능 여부가 결정됩니다.
> "도구를 장착하고 해제하는 것처럼, 로빙은 필요에 따라 능력을 확장할 수 있다."
## 아이템 유형과 분류
### 1. API 아이템 (외부 서비스 접근권)
```python
class APIItem:
name: str # "Google Calendar API"
type: str = "api" # 아이템 유형
level_req: int # 최소 요구 레벨
stat_req: Dict # 최소 요구 스탯
cooldown: int # 재사용 대기시간
usage_limit: int # 일일 사용 제한
```
**예시 아이템:**
- **Gmail API** (Lv.3): 이메일 읽기/쓰기
- **Notion API** (Lv.5): 문서 관리 및 데이터베이스 조작
- **OpenAI GPT-4** (Lv.8): 고급 텍스트 생성
- **Google Cloud Vision** (Lv.10): 이미지 분석
### 2. 도구 아이템 (실행 가능한 외부 프로그램)
```python
class ToolItem:
name: str # "Code Executor"
execute_method: str # "api" | "webhook" | "script"
endpoint: str # 실행 엔드포인트
permissions: List # 필요 권한 목록
```
**예시 아이템:**
- **GenSpark Runner** (Lv.7): AI 코드 생성 및 실행
- **Replit Executor** (Lv.6): 온라인 코드 실행 환경
- **Jupyter Notebook** (Lv.9): 데이터 분석 환경
- **Docker Container** (Lv.12): 격리된 실행 환경
### 3. 데이터 아이템 (특수 지식 베이스)
```python
class DataItem:
name: str # "법률 지식 팩"
data_type: str # "vector_db" | "graph" | "structured"
size_mb: int # 데이터 크기
memory_cost: int # Memory 스탯 소모량
```
**예시 아이템:**
- **도메인 전문 지식** (Lv.4): 특정 산업 용어집
- **회사 내부 문서** (Lv.5): 프라이빗 데이터
- **코드 스니펫 라이브러리** (Lv.6): 재사용 가능 코드
- **규제 컴플라이언스 DB** (Lv.10): 법규 데이터베이스
### 4. 강화 아이템 (임시 능력치 부스트)
```python
class BuffItem:
name: str # "집중력 부스터"
stat_boost: Dict # {"compute": +10, "memory": +5}
duration: int # 지속시간 (초)
stack_limit: int # 중첩 가능 횟수
```
**예시 아이템:**
- **카페인 부스트** (Lv.1): Compute +5 (30분)
- **명상 모드** (Lv.3): Empathy +10 (1시간)
- **하이퍼 포커스** (Lv.7): 모든 스탯 +3 (15분)
- **플로우 상태** (Lv.15): Leadership +20 (10분)
## 아이템 관리 시스템
### 인벤토리 구조
```python
class Inventory:
max_slots: int = 20 # 레벨에 따라 증가
equipped: Dict[str, Item] # 현재 장착 아이템
storage: List[Item] # 보관 중인 아이템
def can_equip(self, item: Item, robing_stats: Stats) -> bool:
"""아이템 장착 가능 여부 확인"""
return (
robing_stats.level >= item.level_req and
all(robing_stats[stat] >= req for stat, req in item.stat_req.items())
)
```
### 장착/해제 메커니즘
1. **장착 전 검증**
- 레벨 요구사항 확인
- 스탯 요구사항 확인
- 슬롯 가용성 확인
- 충돌하는 아이템 확인
2. **장착 효과**
- 즉시 능력 활성화
- 스탯 보너스 적용
- 새로운 명령어 해금
3. **해제 조건**
- 수동 해제
- 시간 만료 (임시 아이템)
- 스탯 하락으로 인한 강제 해제
### 아이템 획득 방법
1. **레벨업 보상**: 특정 레벨 달성 시 자동 지급
2. **퀘스트 완료**: 특정 작업 수행 시 획득
3. **구매**: 크레딧이나 경험치로 구매
4. **사용자 제공**: 관리자가 직접 부여
## 외부 도구 통합 예시
### GenSpark 통합 (코드 생성 및 실행)
```python
class GenSparkItem(ToolItem):
def __init__(self):
super().__init__(
name="GenSpark Code Runner",
level_req=7,
stat_req={"compute": 30, "memory": 25}
)
async def execute(self, prompt: str) -> str:
"""GenSpark API를 통한 코드 실행"""
# 1. 코드 생성 요청
# 2. 샌드박스에서 실행
# 3. 결과 반환
pass
```
### Notion 통합 (문서 관리)
```python
class NotionItem(APIItem):
async def create_page(self, title: str, content: str):
"""Notion 페이지 생성"""
pass
async def update_database(self, db_id: str, data: Dict):
"""Notion 데이터베이스 업데이트"""
pass
```
## 권한과 보안
### OAuth 기반 인증
```python
class OAuthManager:
async def authorize(self, service: str, user_id: str):
"""OAuth 플로우 시작"""
# 1. 인증 URL 생성
# 2. 사용자 승인 대기
# 3. 토큰 저장
pass
```
### API 키 암호화 저장
```python
from cryptography.fernet import Fernet
class SecureStorage:
def __init__(self):
self.cipher = Fernet(settings.ENCRYPTION_KEY)
def store_api_key(self, item_id: str, api_key: str):
"""API 키 암호화 후 저장"""
encrypted = self.cipher.encrypt(api_key.encode())
# PostgreSQL에 저장
```
### 사용량 제한과 모니터링
```python
class UsageTracker:
daily_limits = {
"gpt-4": 100,
"gmail_api": 1000,
"notion_api": 500
}
async def check_limit(self, item_id: str, user_id: str) -> bool:
"""일일 사용 한도 확인"""
usage = await self.get_daily_usage(item_id, user_id)
return usage < self.daily_limits.get(item_id, float('inf'))
```
## 아이템 시너지와 콤보
### 시너지 예시
1. **연구원 세트**
- Notion API + GenSpark + Jupyter = 연구 속도 +50%
- 자동으로 코드 실행 결과를 문서화
2. **커뮤니케이터 세트**
- Gmail API + Calendar API + Slack = 소통 효율 +100%
- 일정 기반 자동 이메일 발송
3. **분석가 세트**
- BigQuery + Tableau API + GPT-4 = 인사이트 품질 +75%
- 데이터 분석 후 자동 시각화
## 미래 확장 가능성
### 아이템 진화 시스템
- 사용 빈도에 따른 아이템 레벨업
- 아이템 간 합성으로 새로운 아이템 생성
- 사용자 커스텀 아이템 제작
### 아이템 거래소
- 사용자 간 아이템 공유
- 아이템 대여 시스템
- 희귀 아이템 경매
### AI 추천 시스템
- 사용 패턴 분석 기반 아이템 추천
- 작업 유형별 최적 아이템 세트 제안
- 시너지 효과 예측 및 제안
## 구현 로드맵
### Phase 1 (현재)
- 기본 API 아이템 5개 구현
- 간단한 인벤토리 시스템
- 수동 장착/해제
### Phase 2 (2개월 내)
- 20+ 아이템 추가
- 자동 장착 추천
- 사용량 모니터링
### Phase 3 (6개월 내)
- 아이템 시너지 시스템
- 커스텀 아이템 제작
- 아이템 거래소 베타
---
*"아이템은 로빙의 가능성을 무한대로 확장한다. 마치 스마트폰의 앱처럼."*

View File

@ -21,6 +21,7 @@
- [230. 감정윤리 필터: LLM 후처리와 정체성](./200_core_design/230_감정윤리_필터_LLM후처리와_정체성.md)
- [240. 스킬 시스템: 함수형 자동화와 컨텍스트](./200_core_design/240_스킬시스템_함수형_자동화와_컨텍스트.md)
- [250. 스킬 사례 분석: PDF, 뉴스, 회의](./200_core_design/250_스킬_사례_분석_PDF_뉴스_회의.md)
- [260. 아이템 시스템: 외부도구 통합과 권한 관리](./200_core_design/260_아이템시스템_외부도구_통합과_권한관리.md)
#### Part 3: 기술 아키텍처 (300_architecture)
- [310. 전체 시스템 구조: 컨테이너와 마이크로서비스](./300_architecture/310_전체_시스템_구조_컨테이너와_마이크로서비스.md)