studio.soluta

먼저 볼 카드 — GitHub 코드를 Vercel 주소로 보내기

실습 Supabase

Supabase에 프로젝트 표 만들기

Supabase 데이터 보안은 브라우저에 공개하는 키와 RLS를 함께 사용하도록 설명합니다. 이번 표는 방문자에게 읽기만 허용하고, 로그인한 작업자는 Supabase Table Editor에서 행을 추가합니다.

projects 표의 한 행에는 제목, 이미지 설명, Cloudinary 주소, public_id와 등록 시각이 들어갑니다. 이미지 파일 자체는 Supabase 표에 넣지 않습니다.

실행 순서

  1. Supabase에서 새 프로젝트를 열고 SQL Editor로 이동합니다.

    Supabase Next.js 공식 안내

    확인Supabase 프로젝트 이름와 SQL Editor 화면이 보입니다.

  2. 예제 앱의 `supabase/schema.sql` 내용을 SQL Editor에 붙여넣고 실행합니다.

    이 프로젝트의 `supabase/schema.sql`을 읽고 어떤 표, 칸, 제약과 RLS 정책이 생기는지 쉬운 말로 설명해 주세요. SQL은 아직 바꾸지 마세요.

    확인projects 표의 여섯 칸과 공개 읽기 정책이 설명됩니다.

  3. Table Editor에서 `projects` 표가 생겼고 RLS가 켜졌는지 확인합니다.

    확인Table Editor의 목록에 `projects`가 보이고 RLS 상태가 켜져 있습니다.

  4. 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 공개 읽기 규칙은 방문자 화면이 그 행을 읽도록 허용합니다.

용어 풀이

전체 용어집 →
데이터베이스
정해진 칸에 정보를 저장하고 다시 찾는 저장소입니다.
RLS
데이터베이스의 행을 누가 읽거나 바꿀 수 있는지 정하는 규칙입니다.

2026-08-19 기준 · 출처 · Supabase — Next.js quickstart, Supabase — Secure data