이 단원의 카드 3개
- Supabase에 프로젝트 표 만들기
- Cloudinary에 이미지 한 장 올리기
- Cloudinary 주소를 Supabase 한 행에 적기
먼저 볼 카드 — GitHub 코드를 Vercel 주소로 보내기
실습 Supabase
Supabase에 프로젝트 표 만들기
Supabase 데이터 보안은 브라우저에 공개하는 키와 RLS를 함께 사용하도록 설명합니다. 이번 표는 방문자에게 읽기만 허용하고, 로그인한 작업자는 Supabase Table Editor에서 행을 추가합니다.
projects 표의 한 행에는 제목, 이미지 설명, Cloudinary 주소, public_id와 등록 시각이 들어갑니다. 이미지 파일 자체는 Supabase 표에 넣지 않습니다.
실행 순서
-
Supabase에서 새 프로젝트를 열고 SQL Editor로 이동합니다.
Supabase Next.js 공식 안내확인Supabase 프로젝트 이름와 SQL Editor 화면이 보입니다.
-
예제 앱의 `supabase/schema.sql` 내용을 SQL Editor에 붙여넣고 실행합니다.
이 프로젝트의 `supabase/schema.sql`을 읽고 어떤 표, 칸, 제약과 RLS 정책이 생기는지 쉬운 말로 설명해 주세요. SQL은 아직 바꾸지 마세요.
확인projects 표의 여섯 칸과 공개 읽기 정책이 설명됩니다.
-
Table Editor에서 `projects` 표가 생겼고 RLS가 켜졌는지 확인합니다.
확인Table Editor의 목록에 `projects`가 보이고 RLS 상태가 켜져 있습니다.
-
Table Editor에서 `projects`를 열어 `title`, `alt`, `image_url`, `cloudinary_public_id` 칸이 비어 있는지 확인합니다.
확인빈 표에 `title`, `alt`, `image_url`, `cloudinary_public_id` 칸이 나란히 보입니다.
직접 해보기
이 Supabase 스키마에서 공개 방문자가 할 수 있는 일과 할 수 없는 일을 RLS 정책 기준으로 설명해 주세요. 각 칸에 어떤 값이 들어가는지도 표로 정리해 주세요.
대괄호 안은 실제 값으로 바꿔서 붙여넣습니다.
제 프로젝트 카드에는 [필요한 정보]가 들어갑니다. 현재 projects 표의 칸으로 충분한지 검토하고, 새 칸이 꼭 필요할 때만 SQL 변경안을 보여 주세요.
projects 표의 `title`, `alt`, `image_url`, `cloudinary_public_id` 중 하나가 비어 있으면 공개 카드에서 무엇이 사라지는지 칸별로 설명해 주세요.
Table Editor에서 각 칸의 이름을 보고 이미지 카드 한 장의 정보가 어느 칸에 들어갈지 적습니다.
헷갈리기 쉬운 것
이미지 파일을 Supabase 표에 넣지 않습니다. 표에는 다음 단계에서 Cloudinary가 돌려준 이미지 주소와 public_id를 글과 함께 적습니다.
왜 이렇게 작동하나요
빈 스프레드시트에 제목, 설명, 이미지 주소 칸을 먼저 만들어 두는 것과 비슷합니다.
Supabase의 projects 표는 프로젝트 하나를 행 하나로 묶습니다. RLS 공개 읽기 규칙은 방문자 화면이 그 행을 읽도록 허용합니다.
용어 풀이
전체 용어집 →2026-08-19 기준 · 출처 · Supabase — Next.js quickstart, Supabase — Secure data