모듈 분류 체계
📝 초안 (Draft)
이 문서는 검토 중입니다. 내용이 변경될 수 있습니다.
Core 모듈의 분류 체계와 관리 원칙을 설명합니다.
개요
Multi-SaaS Kit의 모듈은 필수성, 활성화 시점, 수익화 여부에 따라 세 가지 계층으로 분류됩니다.
┌─────────────────────────────────────────────────────────────┐
│ 모듈 분류 체계 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Core Base (15개) │ │
│ │ • 필수: 모든 프로젝트에 반드시 필요 │ │
│ │ • 비활성화 불가 │ │
│ │ • 수익화 대상 아님 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Extensions (4개) │ │
│ │ • 선택적: 프로젝트별로 활성화 │ │
│ │ • 프로젝트 생성 시 결정 │ │
│ │ • 수익화 대상 아님 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Plugins (18개) │ │
│ │ • 완전 선택: 런타임에 토글 가능 │ │
│ │ • 독립 패키지 │ │
│ │ • 수익화 대상 (유료 판매) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
분류 비교
| 구분 | Core Base | Extensions | Plugins |
|---|---|---|---|
| 위치 | packages/core/Base/ | packages/core/Extensions/ | packages/plugins/ |
| 필수 여부 | 필수 | 선택적 | 완전 선택 |
| 활성화 시점 | 항상 | 프로젝트 생성 시 | 런타임 |
| 비활성화 | 불가 | 가능 (설정) | 가능 (토글) |
| 수익화 | 불가 | 불가 | 가능 |
| 개수 | 15개 | 4개 | 18개 |
Core Base (15개)
모든 프로젝트에 필수적인 시스템 기반 기능입니다.
1. Native Core (3개)
자체 개발한 독자 기술로, 특허 출원 가능한 핵심 기술입니다.
| 모듈 | 설명 | 특징 |
|---|---|---|
| 권한 시스템 (Level 0~6, ADR-058) | Level 0-6 계층 구조 | 플랫폼~멤버까지 7단계 |
| PostgreSQL RLS 통합 | DB 레벨 자동 테넌트 격리 | SQL Injection에도 안전 |
| Dual Redis 전략 | Auth(AOF) + Cache(LRU) 분리 | 인증 데이터 보존, 캐시 효율 |
// 권한 분류 (Level 0~6)
Level 0: Platform Admin // 플랫폼 전체 관리
Level 1: SaaS Admin // SaaS 제품 관리
Level 2: Tenant Admin // 테넌트 관리
Level 3: Organization Admin
Level 4: Workspace Admin
Level 5: Group Leader
Level 6: Member
// PostgreSQL RLS
CREATE POLICY tenant_isolation ON orders
USING (tenant_id = current_setting('app.tenant_id')::uuid);
2. Integrated Core (3개)
Laravel 생태계의 검증된 패키지를 통합합니다.
| 모듈 | 패키지 | 용도 |
|---|---|---|
| 인증 | Laravel Sanctum | API 토큰, SPA 인증 |
| 테넌시 | Stancl/Tenancy v4 | 멀티테넌트 기반 |
| 어드민 | Filament v4 | 관리자 UI |
Spatie Permission 미사용
spatie/laravel-permission은 사용하지 않습니다. Level 0~6 계층 시스템과 RLS 통합에 부적합하며, UserPermission 모델로 대체합니다.