목차
  1. 00이 책은 무엇을 약속하는가
  2. 01설치, 한 시간이면 끝난다
  3. 02첫 대화, 그리고 권한 창
  4. 03AI에도 종류가 있다
  5. 04챗봇과 무엇이 다른가
  6. 05작업 공간 만들기, CLAUDE.md와 Skill 🔒
  7. 06지도, 왜 코드보다 설계가 먼저인가 🔒
  8. 07무엇을 만들고, 무엇을 안 만들까 🔒
  9. 08모으고, 견주고, 갈림길을 고른다 🔒
  10. 09PRD, 설계 문서로 굳히기 🔒
  11. 10화면 시안 고르기, 웹 넷 앱 넷 🔒
  12. 11PRD 고쳐 쓰기, 왜 바뀌었는지 남긴다 🔒
  13. 12지도, 오늘 진짜로 만드는 것은 설계 문서 🔒
  14. 13설계 문서 완성하기, 이것만 보고 만들 수 있게 🔒
  15. 14만들 자리, 개발 환경과 빈 화면 🔒
  16. 15웹 첫 화면, 네 바퀴 — 문서 먼저 화면 나중 🔒
  17. 16웹 둘째 화면과 간판 시안 🔒
  18. 17앱을 내 폰에 띄우기 🔒
  19. 18앱 화면과 간판, 문서대로 하나씩 🔒
  20. 19갈림길, 저장되게 만들기 또는 화면 더 🔒
  21. 20GitHub 가입, 열쇠부터 만든다
  22. 21Supabase, 데이터를 둘 창고 만들기
  23. 22웹과 앱을 창고에 잇기 🔒
  24. 23설계 문서 고쳐 쓰기, 누가 만들어도 똑같이 🔒
  25. 24올리기 전에, Vercel 가입
  26. 25인터넷에 올리기, GitHub 창고와 Vercel 주소 🔒
  27. 26빠진 것 마저 만들기, 한 바퀴에 하나씩 🔒
  28. 27메뉴 더하기, 문서에 없던 것을 넣는 순서 🔒
  29. 28앱 회원 로그인, 이메일로 받은 코드 🔒
  30. 29구글 플레이에 올리기, 비공개 테스트까지 🔒

Supabase 가입 방법 · 웹 · 앱 만들기용

5부 — 갈림길과 고쳐 쓰기 · 21장 · 약 10분

Supabase, 데이터를 둘 창고 만들기

Supabase 가입 방법과 프로젝트 만들기 — 웹과 앱이 같은 데이터를 보려면 창고가 하나 있어야 한다. Supabase가 무엇인지, 가입해서 주소와 열쇠를 받아 오는 법.

만들고, 올린다 — Claude로 웹 · 앱을 만들어 올리는 책30장 중 21장 · 공개 8장은 무료로 읽어요 · 가이드북 전체 보기

21.1 웹과 앱이 서로 모르는 이유

지금 웹과 앱은 각자 가짜 데이터 파일을 한 벌씩 들고 있습니다(15장·18장).

  • 웹 폴더 안에 한 벌 — 사장님 화면이 읽는다
  • 앱 폴더 안에 한 벌 — 손님 폰이 읽는다

손님이 폰에서 신청을 누르면 폰 안의 파일에만 적힙니다. 사장님 웹은 자기 파일을 읽으니 그 신청을 모릅니다. 그리고 둘 다 새로고침하면 처음으로 돌아갑니다. 칠판에 적은 것이니까요(16장).

둘이 같은 걸 보려면 방법은 하나입니다. 둘 다 들여다볼 수 있는 공책을 하나 두고, 거기에 적고 거기서 읽는 것.

그림 21-1: 지금과 연결한 뒤. 지금은 웹과 앱이 각자 가짜 데이터 파일을 들고 있어 서로 모른다. 연결하면 둘 다 인터넷에 있는 창고 하나(Supabase)를 읽고 쓴다. 폰에서 신청하면 창고에 적히고, 웹은 그 창고를 읽어 명단에 보여준다

📖 데이터베이스(database) — 데이터 창고

데이터를 정리해서 오래 보관해 두는 곳. 가게 장부나 도서관 서가와 같습니다. 칸이 정해진 표에 한 줄씩 적어 두고, 필요할 때 꺼내 봅니다. 화면을 껐다 켜도, 폰을 바꿔도 장부는 그대로 남아 있습니다.

이 책에서는 쉽게 창고라고 부릅니다. 9장에서 본 데이터(화면 뒤에서 기억해 두는 내용 전부)가 여기에 담깁니다.


21.2 Supabase는 무엇인가

창고를 내 컴퓨터에 둘 수도 있습니다. 그런데 그러면 폰이 내 컴퓨터를 찾아와야 합니다. 17장에서 겪은 와이파이 문제가 또 생깁니다. 그리고 내 컴퓨터를 끄면 창고도 닫힙니다.

그래서 창고를 인터넷에 하나 빌립니다. 인터넷에 있으면 폰이든 컴퓨터든 그냥 붙습니다. 그 창고를 빌려주는 서비스가 Supabase입니다.

📖 Supabase(수파베이스)

인터넷에 데이터 창고를 빌려주는 서비스. 가입하면 내 창고가 하나 생기고, 웹과 앱이 주소와 열쇠만 있으면 거기에 붙어서 읽고 씁니다. 무료로 시작할 수 있습니다.

창고를 직접 짓고 관리하는 대신 창고 임대 회사를 쓰는 것과 같습니다. 청소·경비· 전기는 임대 회사가 맡고, 우리는 물건만 넣고 꺼냅니다.

수업에서 Claude는 이렇게 설명합니다.

“웹이랑 앱이 같은 데이터를 보려면 둘 다 들여다볼 공용 창고가 하나 있어야 합니다. 그 창고를 인터넷에 하나 빌리는 거예요. 공짜입니다.”

왜 가입까지 시키나

가입이 번거로워 보이지만 오히려 쉬운 길입니다. 내 컴퓨터에 창고를 두면 와이파이· 주소·방화벽 같은 문제가 줄줄이 따라옵니다. 인터넷 창고는 가입 10분이면 끝납니다.

들어갈 때는 20장에서 만든 GitHub 계정을 씁니다. 새 아이디와 비밀번호를 만들지 않습니다. GitHub 계정이 아직 없으면 20장부터 하고 오세요.

오늘 쓰지 않는 기능

Supabase에는 기능이 많습니다. 오늘은 창고에 표를 만들고, 읽고, 쓰는 것만 씁니다.

안 쓴다왜
실시간 알림(구독)실패하는 곳이 는다. 화면에 들어올 때 다시 읽는 것으로 충분하다
창고 안의 계산 기능오늘 수준엔 과하다
로그인 기능로그인은 3단계에서 다룬다
별도 서버웹도 앱도 창고에 직접 붙는다

21.3 가입하기 — 한 번에 하나씩

아래 문장을 Claude에 입력하세요. (참고 16-①)

지금은 웹이랑 앱이 각자 가짜 데이터를 들고 있는 것 같아.
둘이 같은 데이터를 보게 하고 싶어. 어떻게 하면 되는지 알려줘.

Claude가 21.1~21.2절의 이야기를 짧게 하고, 가입하자고 합니다. 아래 문장을 Claude에 입력하세요. (참고 16-②)

가입할게. 뭘 눌러야 하는지 하나씩 알려줘. 한 번에 하나씩만.

Claude는 절차를 한꺼번에 늘어놓지 않습니다. 한 줄 말하고, 됐다는 답을 받고, 다음 줄로 갑니다. 영어 화면이라 버튼 글씨를 그대로 불러 줍니다. 10분쯤 걸립니다.

번호Claude가 말하는 것우리 답
1supabase.com 을 열고 오른쪽 위 Start your project 를 눌러 주세요열었어
2Continue with GitHub 를 눌러 주세요눌렀어
3GitHub 로그인 화면이 뜨면 Continue with Google 로 로그인해 주세요(20장). 이미 로그인돼 있으면 이 줄은 건너뜁니다했어
4Authorize supabase 가 나오면 눌러 주세요. Supabase가 GitHub 계정으로 들어가도 되는지 묻는 겁니다됐어
5New project 를 누르고, 이름은 아무거나 넣어 주세요했어
6Database password 칸 아래 Generate a password 를 누르고, 옆의 Copy 로 복사해 꼭 어디 적어 두세요적었어
7★ Region 을 열고 목록을 아래로 내려 Northeast Asia (Seoul) 을 꼭 골라 주세요. 맨 위 Asia-Pacific 이 아닙니다골랐어
—그 아래 Security 칸은 그대로 둡니다
8맨 아래 Create new project 를 누르면 2분쯤 걸립니다. 기다려 주세요됐어

그림 21-2: supabase.com 첫 화면. ① 오른쪽 위 Start your project

그림 21-3: 가입 화면. ① Continue with GitHub — 여기를 누른다. 아래 이메일 칸은 쓰지 않는다

그림 21-4: 새 프로젝트 만들기. ① Project name ② Database password — Generate a password 로 만들어 적어 둔다 ③ Region — 목록 아래쪽에서 Northeast Asia (Seoul) ④ Security — 기본값 그대로. 맨 아래 Create new project 를 누른다

2~4번 — 왜 GitHub으로 들어가나

이메일로 따로 가입해도 됩니다. 그런데 그러면 나중에 GitHub과 Vercel에 또 가입하고, 아이디와 비밀번호가 세 벌이 됩니다. GitHub 계정 하나로 세 곳에 들어가면 기억할 게 한 벌입니다. 3단계에서 Vercel이 GitHub에서 코드를 가져가고 Supabase 주소를 읽을 때도, 같은 계정끼리라 잇기가 쉽습니다.

4번의 Authorize 는 처음 한 번만 나옵니다. “Supabase가 내 GitHub 이름과 이메일을 봐도 되나요?” 라는 확인입니다. 코드를 가져가는 권한이 아닙니다.

6번 — 비밀번호는 적어 두기만

여기서 정하는 비밀번호는 창고 관리자용입니다. 오늘은 쓸 일이 없습니다. 그래도 나중에 필요할 수 있으니 어딘가 적어 둡니다. 까먹어도 괜찮습니다. 설정 화면에서 다시 정할 수 있습니다.

7번 — 지역은 되돌릴 수 없다

⚠️ 지역은 만든 뒤에 못 바꿉니다

창고가 어느 나라의 컴퓨터에 놓일지 고르는 칸입니다. 한 번 만들면 바꿀 수 없습니다. 바꾸려면 창고를 새로 만들어야 합니다.

목록 맨 위에는 Asia-Pacific 처럼 넓은 지역이 먼저 나오고 「추천」 딱지가 붙어 있습니다. 그걸 고르면 서울이 아닌 곳에 놓일 수 있습니다. 목록을 내려서 Northeast Asia (Seoul) 을 직접 고릅니다.

멀리 잡으면(미국 등) 폰에서 신청을 누르고 웹에 뜨기까지 눈에 띄게 느려집니다. 22장의 “누르면 바로 뜬다” 가 살지 않습니다. 그래서 여기만은 Claude가 확인하고 넘어갑니다 — Northeast Asia (Seoul).

8번 뒤에 — 창고는 일주일 안 쓰면 잠든다

만들기를 누르고 기다리는 동안 Claude가 한 가지를 말해 둡니다.

“이 창고는 일주일 넘게 안 들어가면 잠자기로 들어갑니다. 다음 작업 전에 한 번 열어보시면 됩니다.”

무료 창고는 7일 동안 아무도 안 쓰면 스스로 멈춥니다. 멈춘 창고는 깨우는 데 몇 분이 걸립니다. 다시 열었을 때 “어제까지 됐는데 안 돼요” 가 되지 않게, 작업 전에 supabase.com 에 한 번 들어가 보면 됩니다.

💡 되돌릴 수 없는 것과 조용히 멈추는 것

가입 절차 중 대부분은 틀려도 나중에 고칠 수 있습니다. 이름은 바꾸면 되고, 비밀번호는 다시 정하면 됩니다. 그런데 두 가지는 다릅니다.

지역은 되돌릴 수 없습니다. 잠자기는 아무 경고 없이 조용히 일어납니다. 강사가 준비하면서 따로 적어 둔 두 가지이고, 그래서 PRD 10장 「만들 때 지킬 것」 에도 들어가 있습니다. 틀리면 비싼 것만 확인하고, 나머지는 빨리 지나갑니다.


21.4 주소와 열쇠 받아 오기

창고가 만들어졌습니다. 이제 웹과 앱이 이 창고를 찾아오고 들어올 수 있게 두 가지를 받아 옵니다. 아래 문장을 Claude에 입력하세요. (참고 16-③)

가입 끝났어. 이제 뭘 복사해서 주면 돼?

“왼쪽 아래 톱니바퀴(Project Settings) → API Keys 를 눌러 주세요. Publishable key 옆 복사 버튼을 눌러 저한테 붙여 주세요. 맨 위 초록 Connect 를 누르면 나오는 https://….supabase.co 주소도 같이요.”

그림 21-5: Project Settings → API Keys. ① Connect — 누르면 Project URL 이 보인다 ② Publishable key ③ 복사 버튼 ④ Secret keys — 쓰지 않는다

받아 오는 것무엇비유
Project URL내 창고의 인터넷 주소창고의 번지수
Publishable key웹과 앱이 창고에 말을 거는 데 쓰는 키. 예전 이름은 anon public창고 초인종

📖 API 키(key) — 초인종과 진짜 열쇠

프로그램이 창고에 들어갈 때 내미는 긴 암호 글씨. Supabase는 두 종류를 줍니다.

Publishable key — 누구나 누를 수 있는 초인종입니다. 앱에 넣어 손님 폰에 들어가도 괜찮게 만들어져 있습니다. 초인종을 눌러도 문을 여는 건 창고의 규칙이 정합니다. 예전에는 anon public 이라고 불렀습니다.

Secret key — 모든 문을 여는 진짜 열쇠입니다(예전 이름 service_role). 이건 앱에 넣으면 안 됩니다. 오늘은 쓰지 않습니다.

“이거 남한테 보여도 돼요?” 라고 물으면 Claude는 이렇게 답합니다.

“이건 보여도 되는 열쇠예요. 문을 여는 열쇠가 아니라 초인종에 가깝습니다. 진짜 열쇠(Secret key)는 안 씁니다.”

붙여 주면 Claude가 웹 폴더와 앱 폴더에 적어 둡니다. 우리에게 파일을 만들라고 하지 않습니다.

📖 .env(닷엔브) 파일 — 설정 쪽지

주소와 열쇠처럼 프로그램 바깥에서 넣어 주는 설정값을 모아 두는 작은 파일. 이름이 점(.)으로 시작해서 탐색기에서는 잘 안 보입니다.

코드 안에 주소를 직접 박지 않고 이 쪽지에 따로 적어 두면, 나중에 창고가 바뀌어도 쪽지만 바꾸면 됩니다.

Claude가 이렇게 말하고 멈춥니다.

“창고가 생겼습니다. 이제 담을 칸을 만듭니다. 17단계 상자를 붙여넣어 주세요.”


21.5 가입 중에 하지 않는 것

안 한다왜
이메일로 따로 가입나중에 GitHub · Vercel 까지 계정이 세 벌이 된다. GitHub 하나로 묶는다
Secret key 복사모든 문을 여는 열쇠. 앱에 들어가면 안 된다
요금제 고르기무료로 충분하다. 요금 이야기는 꺼내지 않는다
화면 캡처를 보고 알아서 찾기Claude가 한 줄씩 말로 안내한다

21.6 정리

  • 웹과 앱이 같은 걸 보려면 둘 다 들여다볼 창고 하나가 필요하다
  • 창고를 인터넷에 빌려주는 서비스가 Supabase. 무료로 시작한다
  • GitHub 계정으로 들어간다(나중에 Vercel도 같은 계정). 한 번에 한 줄씩. 지역은 Seoul — 되돌릴 수 없다
  • 무료 창고는 7일 안 쓰면 잠든다. 다음 작업 전에 한 번 열어 본다
  • 받아 오는 건 둘 — Project URL(번지수) · Publishable key(초인종). 진짜 열쇠(Secret key)는 안 쓴다

이 장에서 나온 말

말쉬운 뜻
데이터베이스 · 창고데이터를 표로 정리해 오래 보관하는 곳. 가게 장부
Supabase인터넷에 데이터 창고를 빌려주는 서비스
Authorize다른 서비스가 내 GitHub 계정으로 들어가도 되는지 묻는 확인
프로젝트(Supabase)Supabase 안에 만든 내 창고 하나
지역(Region)창고가 놓일 나라. 만든 뒤 못 바꾼다. 우리는 Seoul
일시정지(잠자기)무료 창고가 7일 동안 안 쓰이면 스스로 멈추는 것
Project URL내 창고의 인터넷 주소
API 키 · Publishable key프로그램이 창고에 말을 걸 때 내미는 암호. 초인종. 예전 이름 anon public
Secret key모든 문을 여는 진짜 열쇠(예전 이름 service_role). 오늘은 안 쓴다
.env 파일주소·열쇠 같은 설정값을 모아 두는 쪽지 파일

21.7 안 될 때

증상이렇게
GitHub 계정이 없다20장으로 가서 Google 계정으로 먼저 만듭니다. 5분이면 됩니다
GitHub 로그인 화면에서 막힌다비밀번호 칸이 아니라 아래 Continue with Google 을 누릅니다
영어라 뭘 눌러야 할지 모르겠다어디를 눌러야 되는지 그림으로 알려줘
창고 비밀번호를 까먹었다괜찮습니다. 오늘은 쓸 일이 없습니다
지역을 Seoul로 안 골랐다지역을 잘못 골랐어 — 창고를 새로 만들어야 합니다. 지금 바로 말하세요
5분 넘게 막힌다강사·조교에게 손을 드세요. 전체가 멈추지 않게 따로 봅니다
며칠 뒤 “어제까지 됐는데 안 돼요”창고가 잠든 겁니다. supabase.com 에 들어가 깨우면 됩니다