강의장에서 설문·진단 앱을 열었는데, 30명이 다 답했다는데 강사 화면엔 0명. 바이브 코딩으로 만든 앱에서 가장 흔한 사고입니다. 원인은 하나 — 답이 각자의 휴대폰에만 저장됐기 때문입니다. 이번 편은 그 답들을 한 권의 장부(데이터베이스)에 모으는 법입니다. 설명은 제가 2026년 9월 28일 «HRD × AI 게이미피케이션 데이» 행사에서 실제로 쓴 «HRD 7 Roles 자가진단» 앱과 그 장부를 그대로 열어 보여 드립니다.
AI에게 «설문 앱 만들어줘»라고만 하면, AI는 가장 간단한 방법을 고릅니다 — 그 휴대폰의 브라우저에 저장하는 것. 혼자 쓰는 체크리스트라면 문제없지만, 여러 사람의 답을 모아야 하면 이렇게 됩니다.

| 만들려는 것 | 추천 장부 | 이유 |
|---|---|---|
| 교육 신청서·만족도 조사 하루 수십 건, 나중에 엑셀로 정리 | 구글 시트 | 평소 쓰던 시트에 바로 쌓여 담당자가 열어 보기 편함 |
| 강의장 실시간 진단·퀴즈 30명이 1분 안에 동시에 | Supabase | 동시에 몰려도 빠르고, 강사 화면에 실시간 집계 |
| 로그인 있는 사내 앱 | Supabase 또는 Firebase | 로그인 기능이 장부와 한 세트로 들어 있음 |
| 채팅·실시간 게임 | Firebase 또는 Supabase | 둘 다 «실시간» 기능이 강함 — 익숙한 쪽으로 |
| 혼자 쓰는 계산기·체크리스트 | 브라우저 저장 | 장부가 필요 없음 |
구글 시트는 익숙하지만, 강의장처럼 한꺼번에 몰리는 순간엔 느려지고 실시간 집계가 어렵습니다. Supabase는 화면이 엑셀처럼 생겨서 처음 보는 분도 금방 읽을 수 있습니다. 구글 시트 방식은 아래에 따로 정리했습니다.
9월 28일 행사에서 참가자들이 휴대폰으로 21문항에 답하면, 무대 화면에 «지금 이 자리의 HRD 지도»가 실시간으로 그려지던 앱입니다. 1편의 식당 비유로 보면 세 부분입니다.


supabase.com 에 GitHub 계정으로 가입(«Continue with GitHub»)하고 New project를 누르면 아래 화면이 나옵니다. 채울 곳은 세 칸뿐입니다.

| 칸 | 쉬운 말 | 이렇게 |
|---|---|---|
| Project name | 책장 이름 | 영어로 알아보기 쉽게(예: lecture-apps) |
| Database password | 책장 열쇠(관리자용) | Generate a password를 눌러 자동 생성 → 비밀번호 관리 앱에 보관. 앱에는 넣지 않습니다 |
| Region | 책장을 둘 도시 | 참가자가 한국에 있으면 Asia-Pacific(서울 가까운 곳) — 응답이 빨라집니다 |
| Compute size 등 | 책장 크기 | 그대로(가장 작은 것으로 충분) |
무료 요금제는 만들 수 있는 프로젝트(책장) 수에 제한이 있습니다. 그래서 저는 앱마다 책장을 새로 사지 않고, 책장 하나에 앱별 장부를 이름 앞머리로 구분해 넣습니다(예: hrd_로 시작하는 장부는 진단 앱, bm_은 보드게임 앱). AI에게 «기존 Supabase 프로젝트에 이 앱 전용 표를 hrd_ 앞머리로 만들어줘»라고 하면 됩니다.
장부(표)를 만든다는 건 «칸 머리글을 정한다»는 뜻입니다. 칸은 AI가 만들어 주지만, 무엇을 적고 무엇을 적지 않을지는 교육 담당자가 정해야 합니다.

| 칸 이름 | 쉬운 말 | 왜 이렇게 |
|---|---|---|
| id | 줄 번호 | 자동으로 1, 2, 3… 붙음 |
| created_at | 적힌 시각 | 자동 기록 — «몇 시에 몰렸나»를 볼 수 있음 |
| scores | 역할 7개 점수 | 21문항 원답 대신 계산된 점수 7개만 저장 |
| stage | HRD 단계 | 무대 화면의 «평균 HRD 단계»용 |
| event | 행사 이름표 | 같은 장부를 다음 행사에도 쓰고, 행사별로 나눠 보기 |
| (없음) | 이름·소속·이메일 | 일부러 칸을 만들지 않음 — 처음부터 받지 않으면 지킬 개인정보도 없습니다 |
장부를 인터넷에 연결하면 이런 걱정이 듭니다 — «누가 남의 답을 고치거나 통째로 지우면?» 그걸 막는 게 RLS(행 단위 보안), 쉬운 말로 장부 규칙입니다. 규칙에 적힌 행동만 허락되고, 적히지 않은 행동은 전부 막힙니다.


| 행동 | 화면의 영어 | 진단 앱 규칙 | 왜 |
|---|---|---|---|
| 새 줄 쓰기 | INSERT | ✅ 누구나 | 참가자가 로그인 없이 답을 내야 하니까 |
| 읽기 | SELECT | ✅ 누구나 | 무대 화면이 집계를 보여 줘야 하니까(이름이 없는 점수뿐) |
| 고치기 | UPDATE | ⛔ 규칙 없음 = 아무도 | 남의 답을 바꾸면 안 되니까 |
| 지우기 | DELETE | ⛔ 규칙 없음 = 아무도 | 장부를 통째로 날리면 안 되니까 |
Supabase는 «Disable RLS»(규칙 끄기) 버튼 하나로 규칙을 끌 수 있습니다. 꺼진 장부는 앱 주소를 아는 누구나 읽고, 고치고, 통째로 지울 수 있습니다. AI가 «일단 되게 하려고» 규칙을 끄는 경우가 있으니, 다 만든 뒤 «RLS가 켜져 있는지, 어떤 규칙이 있는지 표로 보여줘»라고 꼭 확인하세요. 새 프로젝트를 만들 때 «Enable automatic RLS»(새 장부에 자동으로 규칙 켜기)에 체크해 두면 더 안전합니다.
앱이 장부에 접근하려면 열쇠(API 키)가 필요합니다. Supabase는 열쇠를 두 종류 줍니다. 앱(화면)에 넣는 건 공개 열쇠뿐입니다.

제 홈페이지의 «교육 문의» 폼은 구글 시트에 쌓입니다. 시트에 붙은 작은 자동화 프로그램(Apps Script)이 응답을 받아 한 줄씩 적고, 담당자에게 알림 메일까지 보냅니다. AI에게 «구글 시트에 쌓이게 해줘»라고 하면 Apps Script 코드와 붙이는 순서를 알려 줍니다.
| 구글 시트 + Apps Script | Supabase | |
|---|---|---|
| 보는 곳 | 평소 쓰는 구글 시트 | Supabase 표 화면(엑셀과 비슷) |
| 잘하는 것 | 알림 메일, 담당자 공유, 엑셀 정리 | 동시 접속, 실시간 집계, 로그인 |
| 약한 것 | 30명이 같은 1분에 몰리면 느림 | 처음 화면이 낯섦 |
| 꼭 챙길 것 | 스팸 막기, «=»로 시작하는 입력 막기(아래 요령) | RLS 장부 규칙 |
강의장에서 참가자 30명이 휴대폰으로 진단에 답하고, 강사 화면에 실시간으로 평균과 분포가 보이는 앱을 만들고 싶어. 응답은 한곳에 모아야 해. 장부(데이터베이스)에 어떤 칸이 필요한지 먼저 표로 제안해줘. 이름·소속·이메일처럼 개인을 알아볼 수 있는 칸은 만들지 말고, 강사 화면에 필요한 것만 남겨줘.
위 설계대로 Supabase에 표를 만들고 앱을 연결해줘. - 기존 Supabase 프로젝트를 쓰고, 이 앱 전용 표는 이름 앞에 diag_ 를 붙여줘 - 장부 규칙(RLS)을 켜고, 누구나 새 응답 쓰기와 읽기만 되게 하고 고치기·지우기는 막아줘 - 앱에는 공개 열쇠(publishable key)만 넣고, 비밀 열쇠는 절대 코드에 넣지 마 내가 Supabase 화면에서 직접 해야 하는 일이 있으면 순서대로 알려줘.
이 앱이 쓰는 Supabase 표마다 RLS가 켜져 있는지, 어떤 규칙이 있는지 표로 보여줘. 로그인 안 한 사람이 고치기나 지우기를 할 수 있는 표가 있으면 알려주고 막아줘. 점검 중에 열쇠 값은 화면에 보여주지 마.
이 신청서의 응답이 내 구글 시트에 한 줄씩 쌓이고, 접수될 때마다 나에게 알림 메일이 오게 해줘. Apps Script를 쓰고, 시트에 붙이는 순서를 화면 기준으로 알려줘. 같은 사람이 여러 번 누르는 것과 스팸을 막고, =, +, -, @ 로 시작하는 입력은 글자로만 저장되게 해줘.
| 편 | 내용 |
|---|---|
| 바이브 01 · 지도 | 각 서비스가 어디서 무슨 일을 하는지 한 장으로 |
| 바이브 02 · 배포 | GitHub에 저장하고 Vercel로 내 주소에 올리기 |
| 바이브 03 · 장부 (지금 글) | 여러 사람의 응답을 Supabase·구글 시트에 모으기 |
| 바이브 04 · 열쇠와 보안 | 키 유출·공개 저장소·보안 규칙 — 실제 점검 사례로 배우기 |
2026년 10월 8일, 제 Supabase 계정에서 «HRD 7 Roles 자가진단» 앱이 쓰는 실제 표와 규칙, 열쇠 화면을 찍었습니다(열쇠 값은 가림). 새 프로젝트 화면은 입력하지 않고 화면만 찍었고, 어떤 표나 규칙도 바꾸지 않았습니다. 서비스 화면 구성은 바뀔 수 있습니다.