# 상수/설정값 구조 원칙

**작성일**: 2025-12-06
**목적**: 코드 중복 방지, 일관성 유지

---

## 스킬 레벨 구조 원칙

- 레벨은 점진적으로 증가하는 구조
- 낮은 레벨: 기본 기능
- 높은 레벨: 고급 기능
- 레벨 간격은 의미 있는 기능 차이를 반영

**참고**: 실제 레벨 값은 코드/README 참조, `DOCS/journey/troubleshooting/250830_skill_level_system_restructure.md`

---

## 스킬 타입 구조

| 타입 | 설명 | 사용 위치 |
|------|------|-----------|
| `EMAIL` | 이메일 스킬 | `rb8001/app/services/brain/decision_engine.py:76` |
| `NEWS` | 뉴스 스킬 | 동일 |
| `SLACK` | Slack 스킬 | 동일 |
| `LLM` | LLM 처리 | 동일 |
| `CALENDAR` | 캘린더 스킬 | 동일 |
| `TOOL` | 도구 스킬 | 동일 |

**참고**: `rb8001/app/services/brain/decision_engine.py:76-108`

---

## 감정 분류 구조

| 감정 | 설명 |
|------|------|
| `fear` | 두려움 |
| `surprise` | 놀람 |
| `anger` | 분노 |
| `sadness` | 슬픔 |
| `neutral` | 중립 |
| `happiness` | 행복 |
| `disgust` | 혐오 |

**참고**: `rb8001/app/services/emotion_classifier.py`

---

## 스탯 요구사항 구조 원칙

- 각 스킬은 Memory, React, Compute, Empathy 중 필요한 스탯만 요구
- 스탯 요구사항은 스킬의 특성에 맞게 설계
- 실제 값은 코드에서 관리

**참고**: `rb8001/app/services/brain/decision_engine.py:560-565`

---

## HTTP 상태 코드 사용 원칙

| 코드 | 의미 | 사용 예시 |
|------|------|-----------|
| 200 | 성공 | 정상 응답 |
| 401 | 인증 실패 | JWT 만료 |
| 403 | 권한 없음 | 레벨 부족 |
| 404 | 없음 | 리소스 없음 |
| 500 | 서버 오류 | 내부 에러 |

---

## 상수 관리 원칙

### 코드에서 관리
- 상수 값은 코드의 변수/설정으로 관리
- 각 서비스 README.md에 현재 값 참조

### 문서 역할
- 구조/패턴만 문서화
- 실제 값은 코드/README 참조

---

**업데이트**: 구조 변경 시 즉시 반영

