피드로 돌아가기
Dev.toBackend
원문 읽기
DDD 기반 Multi-tenant SaaS 구조의 표준화 및 모듈형 추상화
I open-sourced my SaaS starter — here's the part I didn't
AI 요약
Context
반복적인 SaaS 초기 구축 단계에서 발생하는 공통 기능 구현의 비효율성 해결 필요. 단순한 보일러플레이트를 넘어 확장 가능한 도메인 모델과 권한 체계의 표준 아키텍처 정립을 목표로 함.
Technical Solution
- Bounded Context, Repository, UnitOfWork, EventBus를 적용한 DDD 레이어드 아키텍처 설계를 통한 도메인 복잡도 제어
- Workspace를 Root Primitive로 설정하고 PBAC(Policy-Based Access Control) 기반의 Workspace/Team 이중 스코프 권한 검증 미들웨어 구현
- Framework 간 최저 공통 분모 추상화를 배제하고 TanStack Start와 Next.js App Router 각각의 관용적 코드 구조를 유지하는 전략 채택
- BillingProvider, FileStorage, Mailer 등 인터페이스 포트를 정의하여 Stripe, UploadThing, Resend 등 외부 어댑터를 유연하게 교체하는 구조 설계
- Prisma를 기본으로 하되 Repository 인터페이스 공유를 통해 Drizzle로의 ORM 전환이 가능한 추상화 계층 구축
실천 포인트
- SaaS 설계 시 Workspace를 최상위 엔티티로 설정하여 Multi-tenancy 격리 수준 정의 - 외부 서비스 의존성을 제거하기 위해 Port-Adapter 패턴을 적용한 인프라 계층 분리 - 프론트엔드 프레임워크 변경 가능성을 고려하여 UI 라이브러리와 비즈니스 로직의 물리적 분리 검토 - 복잡한 권한 제어를 위해 서버 미들웨어와 클라이언트 훅(useCan) 간의 권한 동기화 메커니즘 구축