# task-2119: InsuRo FeatureGate 이중 구조 통합 — 관리자 토글 실동작 보장

## ★ 프로젝트: `/home/jay/projects/InsuRo/`

## 문제 (task-2118 미해결 critical 2건)

### 1. FeatureGate vs useFeatureGate 이중 구조
- `FeatureGate` 컴포넌트: `planFeatureMap`의 최소 플랜만 확인 → 관리자 토글 무시
- `useFeatureGate` 훅: `subscription_plans.features` 값 확인 → 관리자 토글 반영
- 결과: 관리자가 토글 OFF해도 맥스 이상 사용자는 FeatureGate 기반 페이지에 접근 가능

### 2. 서버 require_feature가 DB features 미참조
- `server/main.py`의 `require_feature`: PLAN_FEATURE_MAP(최소 플랜)만 확인
- `subscription_plans.features[feature_key]` 값은 확인 안 함
- 관리자 토글 OFF가 서버 API 접근 제어에 반영 안 됨

## 수정 방향

### A. FeatureGate 통합
- FeatureGate 컴포넌트가 `useFeatureGate` 훅을 내부적으로 사용하도록 변경
- 또는 FeatureGate가 DB features 값도 확인하도록 확장
- 관리자 토글 OFF → 해당 플랜 사용자 접근 차단

### B. 서버 require_feature 개선
- require_feature에서 subscription_plans.features[feature_key] 값도 확인
- 값이 false이면 403 반환 (관리자 토글 OFF 반영)

## ★ 먼저 읽을 파일
- `/home/jay/projects/InsuRo/src/components/FeatureGate.tsx` — 프론트 접근 제어
- `/home/jay/projects/InsuRo/src/hooks/use-feature-gate.ts` — 훅
- `/home/jay/projects/InsuRo/src/config/planFeatureMap.ts` — 플랜별 기능 매핑
- `/home/jay/projects/InsuRo/server/main.py` — require_feature 함수

## 완료 시그니처
- 관리자에서 인포키워드 토글 OFF → 맥스 플랜에서도 접근 차단
- 서버 API도 토글 OFF 시 403 반환
- `npm run build` 성공

## 레벨
- critical

## 프로젝트
- insuro