6-1 바이브 코딩 프로젝트 ⏱ 약 15분

Antigravity로 관리자 페이지 만들기

사이트의 글을 코드 수정 없이 화면에서 쓰고 고치고 지우는 관리자 페이지를 만들어요. 핵심은 "나만 관리자"를 데이터베이스가 지키게 하는 거예요.

🎯 이번 레슨을 마치면
  • 관리자 페이지가 왜 필요한지 설명할 수 있다
  • 일반 회원과 관리자를 역할(role)로 나누는 방법을 안다
  • Antigravity에게 관리자 페이지를 맡기고 권한을 검수할 수 있다

가게의 “직원 전용” 공간

5-4 레슨에서 배운 인증(누구인지)과 권한(무엇을 할 수 있는지)을 떠올려 보세요. 관리자 페이지는 권한을 두 단계로 나누는 거예요.

역할할 수 있는 일
방문자 (로그인 안 함)공개된 글 보기
일반 회원공개된 글 보기 + 방명록 쓰기
관리자위의 모든 것 + 사이트 글 쓰기·고치기·지우기, 방명록 정리

관리자는 어떻게 정할까?

회원 정보 옆에 역할(role) 칸을 하나 두고, 내 계정만 admin으로 적어 두는 방법이 가장 쉬워요.

회원역할 (role)
minji@example.com (나)admin
friend@example.commember

1단계: Antigravity에게 계획 받기

AI 코딩 도구에게 이렇게 말해 보세요
내 사이트에 관리자 페이지(/admin)를 만들고 싶어. 로그인은 이미 Supabase로 붙어 있어.
- 사이트에 보여 줄 "글(posts)"을 관리할 거야. 제목, 내용, 공개 여부, 작성 시각이 있으면 돼.
- 회원마다 역할(role)을 두고, admin인 사람만 글을 쓰고 고치고 지울 수 있게 해 줘.
- 방문자와 일반 회원은 "공개"로 표시된 글만 볼 수 있어.
- 관리자가 아니면 /admin에 들어왔을 때 안내 문구와 함께 홈으로 보내 줘.
- 역할은 화면에서 바꿀 수 없게 하고, 첫 관리자는 내가 Supabase 화면에서 직접 정할게.
코드를 바꾸기 전에 1) 테이블 구조 2) RLS 규칙 3) 화면 구성을 먼저 설명해 줘.

2단계: 만들고 첫 관리자 정하기

  1. 계획대로 진행하고, 데이터베이스 SQL이 나오면 Supabase SQL Editor에서 실행해요.
  2. Supabase Table Editor에서 회원 역할 테이블을 열고, 내 계정의 역할을 admin으로 바꿔요.
  3. 사이트에 다시 로그인한 뒤 /admin으로 들어가 보세요.

3단계: 권한 검수하기

권한 검사를 AI에게도 맡기기
관리자 기능의 권한을 점검해 줘. 코드는 아직 바꾸지 말고 보고만 해 줘.
1) 일반 회원이 자기 역할을 admin으로 바꿀 수 있는 방법이 있는지
2) 관리자가 아닌 사람이 글을 쓰거나 지울 수 있는 경로가 있는지 (화면이 아니라 데이터베이스 기준으로)
3) 비공개 글이 방문자에게 노출되는 곳이 있는지
퀴즈

첫 관리자를 정하는 가장 안전한 방법은?

📝 정리해 볼까요?

  • 관리자 페이지가 있으면 코드를 고치지 않고도 화면에서 글을 쓰고(Create), 보고(Read), 고치고(Update), 지울(Delete) 수 있어요.
  • 관리자인지는 데이터베이스에 적힌 역할(role)로 정하고, RLS가 "관리자만 쓰고 고치기"를 지켜요.
  • 첫 관리자는 Supabase 화면에서 내가 직접 정해요. 화면에서 스스로 관리자가 되는 기능은 만들지 않아요.

📖 새로 나온 용어

권한 Authorization
로그인한 사람이 "무엇을 할 수 있는지" 정하는 것이에요. 예: 일반 회원은 글쓰기만, 관리자는 삭제까지. 비유: 출입증 등급 (일반 / 직원 전용)
RLS Row Level Security
데이터베이스의 한 줄 한 줄마다 "누가 보고 고칠 수 있는지" 정하는 보안 규칙이에요. 비유: 사물함마다 주인만 여는 자물쇠
CRUD
데이터를 만들기(Create), 읽기(Read), 고치기(Update), 지우기(Delete)의 앞글자예요.
용어 사전 전체 보기 →