피드로 돌아가기
I'm building an invoicing SaaS for South African freelancers & small agencies — here's where I am so far
Dev.toDev.to
Backend

Organization-based Multi-tenancy 및 중앙 집중형 Permission 설계

I'm building an invoicing SaaS for South African freelancers & small agencies — here's where I am so far

Rolina Vorster2026년 5월 26일2intermediate

Context

단일 사용자 기반의 CRUD 구조로 시작하여 소규모 에이전시의 협업 요구사항을 수용하지 못하는 한계 직면. 팀 단위의 데이터 공유와 역할별 접근 제어가 필요한 Multi-tenancy 환경으로의 전환 필요성 대두.

Technical Solution

  • User 중심 모델에서 Organization 중심 모델로 데이터 스키마 전면 Refactoring을 통한 Tenant Isolation 구현
  • Permission Logic을 개별 컨트롤러에서 분리하여 단일 Method로 관리하는 중앙 집중식 권한 검증 아키텍처 설계
  • 부정형 조건 검사(Role != Employee)를 명시적 긍정 검사(Positive Check) 방식으로 전환하여 권한 상속으로 인한 보안 취약점 차단
  • Yoco Checkout API 연동을 통해 각 Tenant가 개별 결제 계정을 보유하는 분산 결제 처리 구조 채택
  • Azure SQL과 EF Core를 활용하여 Organization ID 기반의 데이터 쿼리 필터링 적용

1. SaaS 설계 초기 단계부터 User가 아닌 Organization 단위의 Multi-tenancy 모델 채택 여부 검토

2. 권한 검증 시 신규 역할 추가에 따른 사이드 이펙트를 방지하기 위해 명시적 허용 리스트(Allow-list) 방식 적용

3. 비즈니스 로직 내 분산된 권한 체크 코드를 단일 진입점(Single Point of Truth)으로 통합하여 유지보수성 확보

원문 읽기