권한 (Entitlement) 시스템
문서 정보
- 작성일: 2026-02-27
- 최종 업데이트: 2026-02-27
- 버전: v1.0.0
TL;DR
Entitlement 테이블은 사용자 1명당 1개의 레코드로 현재 멤버십 권한을 관리합니다. API 요청 시 이 테이블 하나만 조회하면 O(1)으로 권한 판단이 완료되며, 구독/체험/관리자 부여 등 어떤 경로로 권한을 받았든 동일한 방식으로 처리합니다.
목차
- 왜 Entitlement 테이블이 필요한가
- Entitlement 테이블 구조
- 권한 부여 소스
- 권한 판별 흐름
- Guard 기반 접근 제어
- Entitlement 라이프사이클
- 만료 처리 스케줄러
- 기능별 접근 권한 정리
- FAQ
왜 Entitlement 테이블이 필요한가
기존 방식의 문제
Entitlement 도입 이전에는 사용자의 PLUS 권한을 확인하려면 여러 테이블을 동시에 조회해야 했습니다.
| 문제 | 설명 |
|---|---|
| 느린 응답 | 매 요청마다 2~3개 테이블을 조회해야 함 |
| 복잡한 로직 | 구독 상태, 체험 기간, 관리자 부여를 모두 종합해서 판단 |
| 확장 어려움 | 새로운 권한 부여 방식이 생길 때마다 판단 로직 수정 필요 |