Skip to main content

아키텍처 개요

📝 초안 (Draft)

이 문서는 검토 중입니다. 내용이 변경될 수 있습니다.

Multi-SaaS Kit의 전체 아키텍처를 설명합니다.

핵심 개념

멀티 레벨 구조

Platform (플랫폼)
└── SaaS (서비스)
└── Tenant (테넌트/고객사)
└── Organization (조직)
└── Workspace (워크스페이스)
└── Team (팀)
└── Member (사용자)

권한 시스템 (Level 0~6, ADR-058)

Level명칭역할
0Platform Admin플랫폼 전체 관리
1SaaS Admin특정 서비스 관리
2Tenant Admin테넌트/고객사 관리
3Org Admin조직 관리
4Workspace Admin워크스페이스 관리
5Team Leader팀 관리
6Member일반 사용자

기술 스택

┌─────────────────────────────────────────┐
│ Filament Admin Panel │
├─────────────────────────────────────────┤
│ Laravel 12 │
├─────────────────────────────────────────┤
│ PostgreSQL + RLS │
├─────────────────────────────────────────┤
│ Docker │
└─────────────────────────────────────────┘
계층기술
FrontendFilament 4, Livewire 3
BackendLaravel 12, PHP 8.3
DatabasePostgreSQL 17 + RLS
Cache/QueueRedis
ContainerDocker Compose

데이터 격리

Row-Level Security (RLS)

PostgreSQL RLS로 테넌트 데이터 완벽 격리:

-- 자동 필터링
SELECT * FROM orders;
-- → WHERE tenant_id = current_tenant_id 자동 적용

격리 수준

수준방식
논리적RLS (Row-Level Security)
물리적별도 DB 스키마 (옵션)

프로젝트 독립성

각 프로젝트는 완전 독립:

workspace/project-a/     # 독립 소스
workspace/project-b/ # 독립 소스

data/projects/project-a/ # 독립 데이터
data/projects/project-b/ # 독립 데이터
  • 별도 Docker 컨테이너
  • 별도 PostgreSQL 인스턴스
  • 별도 Redis 인스턴스
  • 별도 포트 매핑

배포 아키텍처

workspace/      # 개발 소스

releases/ # 릴리즈 스냅샷

live/ # 프로덕션 심볼릭 링크

nginx # 웹 서버

심볼릭 링크 전환으로 무중단 배포 및 즉시 롤백 지원.

다음 단계