docs: [plans] 이용현황 통합 계획에 과금정책 반영
- customer-pricing.md 6장 기준 확정: AI 토큰 월 100만, 저장공간 100GB - 한도 초과 시 실비 과금, 80%/100% 알림 정책 반영 - API 응답에 limit, percentage, warning_threshold 추가
This commit is contained in:
@@ -94,7 +94,21 @@ ai_pricing_configs
|
||||
|
||||
## 3. 목표 설계
|
||||
|
||||
### 3.1 통합 페이지 구성
|
||||
### 3.1 과금 정책 기준 (customer-pricing.md 6장)
|
||||
|
||||
> **출처**: `rules/customer-pricing.md` — 사용량 기반 추가 과금
|
||||
|
||||
| 항목 | 기본 제공 | 초과 과금 | 비고 |
|
||||
|------|----------|----------|------|
|
||||
| 파일 저장 공간 | **100GB** | 100GB당 **5만원/월** | `tenant.storage_limit` 기본값 반영 |
|
||||
| AI 토큰 | **월 100만 토큰** | 1,000토큰 단위 **실비 과금** | 매월 1일 리셋, 이월 없음 |
|
||||
|
||||
**알림 정책**:
|
||||
- 기본 제공량의 **80%** 소진 시 → 경고 알림
|
||||
- 기본 제공량의 **100%** 소진 시 → 한도 초과 알림
|
||||
- 미사용 잔여 토큰은 이월되지 않음 (매월 1일 갱신)
|
||||
|
||||
### 3.2 통합 페이지 구성
|
||||
|
||||
```
|
||||
이용현황 (/usage)
|
||||
@@ -109,15 +123,16 @@ ai_pricing_configs
|
||||
│ [2] 리소스 사용량 │
|
||||
│ ┌──────────────────────────────────────┐ │
|
||||
│ │ 사용자 ████████░░ 5 / 10명 │ │
|
||||
│ │ 저장공간 ███░░░░░░░ 1.2GB / 10GB │ │
|
||||
│ │ 저장공간 ███░░░░░░░ 1.2GB / 100GB │ │
|
||||
│ └──────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ [3] AI 토큰 사용량 (이번 달) │
|
||||
│ [3] AI 토큰 사용량 (2026년 3월) │
|
||||
│ ┌──────────────────────────────────────┐ │
|
||||
│ │ 총 토큰 12,345 tokens │ │
|
||||
│ │ 총 비용 ₩1,234 (입력/출력 구분) │ │
|
||||
│ │ ██████░░░░ 620,000 / 1,000,000 │ │
|
||||
│ │ 총 비용 ₩1,234 │ │
|
||||
│ │ 모델별: Gemini 80% | Claude 20% │ │
|
||||
│ │ [상세 보기 →] │ │
|
||||
│ │ ⚠️ 80% 소진 시 경고, 100% 초과 시 실비│ │
|
||||
│ │ [상세 내역 보기 →] │ │
|
||||
│ └──────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ [4] 서비스 관리 버튼 │
|
||||
@@ -126,7 +141,7 @@ ai_pricing_configs
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 3.2 통합 API 설계
|
||||
### 3.3 통합 API 설계
|
||||
|
||||
기존 `/subscriptions/usage` API를 확장하여 AI 토큰 정보를 포함한다.
|
||||
|
||||
@@ -142,29 +157,33 @@ ai_pricing_configs
|
||||
"storage": {
|
||||
"used": 1288490189,
|
||||
"used_formatted": "1.2 GB",
|
||||
"limit": 10737418240,
|
||||
"limit_formatted": "10 GB",
|
||||
"percentage": 12.0
|
||||
"limit": 107374182400,
|
||||
"limit_formatted": "100 GB",
|
||||
"percentage": 1.2
|
||||
},
|
||||
"ai_tokens": {
|
||||
"period": "2026-03",
|
||||
"total_requests": 156,
|
||||
"total_tokens": 12345,
|
||||
"prompt_tokens": 8200,
|
||||
"completion_tokens": 4145,
|
||||
"total_tokens": 620000,
|
||||
"prompt_tokens": 412000,
|
||||
"completion_tokens": 208000,
|
||||
"limit": 1000000,
|
||||
"percentage": 62.0,
|
||||
"cost_usd": 0.95,
|
||||
"cost_krw": 1234,
|
||||
"warning_threshold": 80,
|
||||
"is_over_limit": false,
|
||||
"by_model": [
|
||||
{
|
||||
"model": "gemini-2.0-flash",
|
||||
"requests": 120,
|
||||
"total_tokens": 9800,
|
||||
"total_tokens": 496000,
|
||||
"cost_krw": 987
|
||||
},
|
||||
{
|
||||
"model": "claude-3-haiku",
|
||||
"requests": 36,
|
||||
"total_tokens": 2545,
|
||||
"total_tokens": 124000,
|
||||
"cost_krw": 247
|
||||
}
|
||||
]
|
||||
@@ -182,8 +201,13 @@ ai_pricing_configs
|
||||
|
||||
**변경점**:
|
||||
- `api_calls` 섹션 → `ai_tokens` 섹션으로 교체
|
||||
- `ai_tokens`에 월별 토큰 합계, 비용, 모델별 내역 포함
|
||||
- `subscription`에 `monthly_fee` 추가
|
||||
- `ai_tokens.limit`: 월 100만 토큰 (정책 기반)
|
||||
- `ai_tokens.percentage`: 한도 대비 사용율
|
||||
- `ai_tokens.warning_threshold`: 경고 기준 80%
|
||||
- `ai_tokens.is_over_limit`: 한도 초과 여부
|
||||
- `ai_tokens.cost_krw`: 초과 시 실비 과금 금액 계산에 활용
|
||||
- `storage.limit`: 100GB (정책 기본값)
|
||||
- `subscription.monthly_fee` 추가
|
||||
- 하드코딩 제거 (10,000 상한 등)
|
||||
|
||||
---
|
||||
@@ -279,16 +303,26 @@ Phase 3: 메뉴 정리
|
||||
|
||||
---
|
||||
|
||||
## 7. 확인 필요 사항
|
||||
## 7. 정책 기반 확정 사항
|
||||
|
||||
작업 시작 전 확인이 필요한 항목:
|
||||
`rules/customer-pricing.md` 6장에 따라 확정:
|
||||
|
||||
| # | 항목 | 확정 내용 |
|
||||
|---|------|----------|
|
||||
| D1 | AI 토큰 월별 한도 | **100만 토큰/월** (매월 1일 리셋, 이월 없음) |
|
||||
| D2 | 초과 과금 | 1,000토큰 단위 **실비** (ai_pricing_configs 단가 기반) |
|
||||
| D3 | 알림 기준 | 80% 경고, 100% 한도 초과 알림 |
|
||||
| D4 | 저장공간 기본 한도 | **100GB** (초과 시 100GB당 5만원/월) |
|
||||
| D5 | 비용 노출 | 토큰 비용(KRW) 고객에게 표시 (customer-pricing에 명시) |
|
||||
|
||||
### 7.1 추가 확인 필요 사항
|
||||
|
||||
| # | 질문 | 영향 |
|
||||
|---|------|------|
|
||||
| Q1 | AI 토큰 사용량에 월별 한도가 필요한가? (무제한 vs 플랜별 상한) | `ai_tokens.limit` 필드 추가 여부 |
|
||||
| Q2 | AI 토큰 비용을 고객에게 보여줘도 되는가? (원화 금액 노출) | UI 표시 항목 결정 |
|
||||
| Q3 | 이용현황 페이지 접근 권한은? (관리자만 vs 모든 사용자) | 권한 설정 |
|
||||
| Q4 | 저장공간의 실제 사용량이 정확히 갱신되고 있는가? | 파일 업로드/삭제 시 `incrementStorage`/`decrementStorage` 호출 여부 |
|
||||
| Q1 | 100만 토큰 한도를 `tenant.ai_token_limit` 필드로 관리할 것인가? (플랜별 차등 가능성) | 테넌트 테이블 컬럼 추가 여부 |
|
||||
| Q2 | 이용현황 페이지 접근 권한은? (관리자만 vs 모든 사용자) | 권한 설정 |
|
||||
| Q3 | 저장공간의 실제 사용량이 정확히 갱신되고 있는가? | 파일 업로드/삭제 시 `incrementStorage`/`decrementStorage` 호출 여부 |
|
||||
| Q4 | `tenant.storage_limit` 기본값이 현재 10GB인데 100GB로 변경 필요 | 마이그레이션 또는 데이터 수정 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user