관리자 대시보드 패턴

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. 일반 사용자 재로그인 → 본인 데이터만 보임, 관리자 뷰 접근 불가 ✓

관련 노트