관리자 대시보드 패턴
SaaS·플랫폼 앱에서 일반 사용자와 별개로 운영자가 모든 사용자·데이터·활동을 한눈에 보는 별도 뷰를 구축하는 설계 패턴. 4핵심요소 위에 권한 분리 레이어를 얹는 형태.
적용 사례
| 앱 유형 | 관리자 뷰의 핵심 정보 |
|---|---|
| SaaS 도구 | 전체 고객 + 결제 상태 + 사용량 |
| 온라인 교육 | 전체 학생 + 진도 + 제출물 |
| 파일 포털 (ClientVault) | 전체 클라이언트 + 업로드 파일 + 가입일 |
구현 단계 (Firebase 기준)
1. 관리자 계정 식별
- 첫 가입 계정을 관리자로 선언하는 것이 가장 단순
- → 앱 소유자는 장기 사용할 이메일·비밀번호로 첫 계정 생성해야 함
2. User ID 추출
Firebase 콘솔 → Authentication → Users → 첫 계정의 UID 복사
3. AI Studio에 관리자 권한 부여 요청
다음 User ID를 관리자로 설정하고, 관리자 전용 대시보드를 추가해 주세요.
관리자는 모든 사용자 목록, 각 사용자의 업로드 파일, 가입 날짜를 볼 수 있어야 합니다.
일반 사용자는 본인 데이터만 보입니다.
Admin User ID: <복사한 UID>
4. Firestore 보안 규칙 검증
match /users/{userId} {
allow read: if request.auth.uid == userId
|| request.auth.uid == "<admin_user_id>";
}
→ AI Studio가 보통 자동 업데이트. 안 되면 “Firebase 보안 규칙 업데이트 확인” 프롬프트.
5. Storage 보안 규칙 수동 동기화 ⚠️
가장 흔한 함정 — Firestore 규칙은 자동이지만 Storage는 수동.
Firebase 콘솔 → Storage → Rules → 가이드 규칙 붙여넣기 → UID 치환 → Publish.
이 단계를 빼먹으면 관리자 대시보드에 사용자는 표시되지만 그들의 파일은 열리지 않음.
핵심 보안 원칙
- 관리자 UID는 하드코딩 (환경 변수 X) — 보안 규칙 자체에 포함
- 일반 사용자는 자기 데이터만 보이는 기본 규칙 유지
- 관리자 UID 변경 시 보안 규칙 재배포 필요
권한 분리 검증
1. 관리자 계정 로그인 → 전체 사용자·파일 보임 ✓
2. 로그아웃 → 일반 사용자 신규 가입 + 파일 업로드
3. 일반 사용자 로그아웃 → 관리자 재로그인 → 신규 사용자가 목록에 추가됨 ✓
4. 일반 사용자 재로그인 → 본인 데이터만 보임, 관리자 뷰 접근 불가 ✓
관련 노트
- AI웹앱-백엔드-4핵심요소 — 이 패턴이 얹히는 기반
- Firebase — 보안 규칙 구현 위치
- yt-DC4nSUX9pCc-구글AI스튜디오-Firebase-실제웹앱구축