26-8110.AI가빠뜨린10개
AI로 만든 앱, 공개 전에 AI가 안 챙긴 10가지
폰 화면부터 방문자 통계까지, AI한테 그대로 붙여 넣는 점검 문장 10개와 항목별로 직접 확인하는 법을 공식 문서 기준으로 정리했어요.
이 자료의 내용
AI는 시킨 것만 만들어요. 가입 화면을 시키면 가입 화면을 만들고, 배포를 시키면 배포를 해요. 그런데 사람들이 실제로 쓰기 시작하면 터지는 일은 안 시키면 안 챙겨요. 공개 버튼을 누르기 전에 아래 10가지를 한 번만 확인하세요.
데이터베이스·백업·무료 한도는 Supabase, 되돌리기는 Vercel, 결제 심사는 토스페이먼츠 공식 안내를 기준으로 썼어요. 다른 서비스를 쓴다면 그 서비스에서 같은 기능(이름은 조금 달라요)을 찾으면 돼요.
한눈에 보기
| # | 항목 | 안 챙기면 | 확인하는 곳 |
|---|---|---|---|
| 1 | 폰 화면 | 폰에서 가입 버튼이 화면 밖으로 밀려남 | 브라우저 개발자 도구의 폰 화면 보기 |
| 2 | 비밀 키 | 남이 내 키로 AI를 쓰고 요금은 내가 냄 | 브라우저 개발자 도구에서 키 검색 |
| 3 | 데이터베이스 잠금 | 다른 사람 이메일까지 누구나 봄 | Supabase 표마다 잠금 규칙(RLS) 켜짐 |
| 4 | 가입 제한 | 봇이 가짜 계정을 찍어 냄 | Supabase Authentication > Rate Limits |
| 5 | 비밀번호 재설정 | 비밀번호 잊은 사람이 전부 나한테 연락 | 로그인 화면의 '비밀번호 찾기' 직접 해 보기 |
| 6 | 환불 정책·사업자 정보 | 카드 결제 심사에서 막힘 | 홈페이지 하단·환불 정책 페이지 |
| 7 | 되돌리기 | 작은 수정 하나로 앱 전체가 멈춤 | Vercel 프로젝트 개요의 Instant Rollback |
| 8 | 백업 | 데이터가 지워지면 되살릴 게 없음 | Supabase Database > Backups 또는 db dump |
| 9 | 무료 한도 | 1주 안 쓰면 멈춤, 한도 넘으면 제한 | Supabase 가격표·사용량 화면 |
| 10 | 방문자 통계 | 사람들이 어디서 떠났는지 모름 | 통계 도구 화면에 내 방문이 찍히는지 |
제일 빠른 방법: 한 번에 붙여 넣기
AI 코딩 도구(클로드 코드, 커서 등)에 아래 문장을 그대로 붙여 넣으세요. 고치기 전에 먼저 점검 결과만 받는 게 안전해요.
이 앱을 곧 공개하려고 해. 아래 10가지를 점검해서, 항목마다 '괜찮음 / 문제 있음 / 확인 못 함'과 이유를 표로 알려 줘. 아직 고치지는 말고, 문제 있는 항목은 어떻게 고칠지 계획만 적어 줘.
1. 폰 화면(가로 390px)에서 잘리거나 화면 밖으로 밀려나는 버튼·글자가 있는지
2. 브라우저로 내려가는 코드에 API 키·비밀 키가 들어 있는지
3. 데이터베이스의 모든 표에 잠금 규칙(Supabase면 RLS)이 켜져 있고, 로그인 안 한 사람이 남의 정보를 읽거나 쓸 수 없는지
4. 가입·로그인 요청 횟수 제한이 걸려 있는지
5. 비밀번호를 잊었을 때 메일로 재설정하는 흐름이 있는지
6. 결제를 붙였다면 환불 정책 페이지와 홈페이지 하단 사업자 정보가 있는지
7. 배포가 잘못됐을 때 이전 버전으로 되돌리는 방법
8. 데이터베이스 백업이 되고 있는지, 안 되면 직접 내보내는 방법
9. 지금 쓰는 서비스의 무료 요금제 한도와 넘으면 생기는 일
10. 방문자 통계가 설치돼 있는지아래는 항목별로 하나씩 볼 때 쓰는 설명이에요.
1. 폰 화면
한 줄로: 컴퓨터에서만 확인하면, 폰에서 버튼이 잘리거나 화면 밖으로 밀려난 걸 몰라요. 원래 용어는 반응형 레이아웃(화면 크기에 맞춰 배치가 바뀌게 만드는 것)이에요.
왜: 가게 문을 큰 차 기준으로만 만든 것과 같아요. 작은 차(폰)로 온 손님은 못 들어와요. AI한테 화면을 만들게 하고 컴퓨터로만 확인하면 놓치기 쉬워요.
따라 하기
- 크롬에서 내 사이트를 열고
F12(맥은Cmd + Option + I)를 눌러 개발자 도구를 열어요. - 개발자 도구 왼쪽 위의 폰·태블릿 모양 아이콘(기기 툴바)을 눌러요.
- 위쪽 기기 목록에서 아이폰 같은 작은 폰을 골라 가입·결제·로그인 화면을 끝까지 내려 봐요.
이 앱을 폰 화면(가로 390px)과 작은 폰(가로 360px)으로 봤을 때 잘리거나 화면 밖으로 밀려나는 버튼·글자·입력칸을 전부 찾아서 목록으로 알려 줘. 특히 가입·로그인·결제 버튼은 꼭 확인해 줘.확인하는 법: 실제 폰으로 내 주소를 열어 가입을 끝까지 해 봐요. 막히면: 고친 뒤에도 그대로면 브라우저 캐시 때문일 수 있어요. 폰에서 새로고침하거나 시크릿 창으로 열어 보세요.
2. 비밀 키
한 줄로: OpenAI 같은 AI 서비스의 API 키(서비스 비밀번호)를 브라우저 쪽 코드에 넣으면, 누구나 개발자 도구로 꺼내 갈 수 있어요.
왜: 현관 비밀번호를 문 앞에 붙여 둔 것과 같아요. OpenAI 공식 도움말 「Best practices for API key safety」 3번에 "키를 브라우저나 모바일 앱 같은 곳에 절대 넣지 말라, 남이 가져가 예상 못 한 요금이 나올 수 있다"고 나와요. 4번에는 "키를 저장소(깃허브 등)에 올리지 말라"고도 나와요.
따라 하기
- 내 사이트를 열고
F12→Sources(소스) 탭에서Ctrl + Shift + F(맥은Cmd + Option + F)로 전체 검색을 열어요. sk-,key,secret,api같은 글자로 검색해 봐요.- 키처럼 생긴 긴 글자가 보이면 그 키는 이미 공개된 거예요.
브라우저로 내려가는 코드(프론트엔드)에 API 키나 비밀 키가 들어 있는지 전부 찾아 줘. 있으면 그 키를 서버 쪽(백엔드나 서버리스 함수)으로 옮기고, 브라우저는 내 서버를 거쳐서만 AI를 부르도록 바꾸는 계획을 알려 줘. .env 파일이 깃허브에 올라가지 않게 되어 있는지도 확인해 줘.확인하는 법: 고친 뒤 위 1~2번 검색을 다시 해서 키가 안 나오면 돼요. 막히면: 이미 공개됐던 키는 지우는 것만으로 부족해요. 그 서비스 관리 화면에서 키를 폐기하고 새로 발급하세요. Supabase의 공개용 키(anon·publishable)는 브라우저에 있어도 되지만, 3번 잠금 규칙이 켜져 있을 때만 안전해요.
3. 데이터베이스 잠금
한 줄로: 데이터베이스는 회원 정보를 모아 둔 창고이고, 잠금 규칙은 누가 그 창고를 열 수 있는지 정하는 자물쇠예요. Supabase에서는 **Row Level Security(RLS)**라고 불러요.
왜: Supabase 공식 문서 첫 부분에 "RLS가 없는 표는 권한이 있는 누구나 읽고 쓸 수 있다(readable and writable by any role)"고 나와요. 자물쇠 없는 창고와 같아요.
따라 하기
- Supabase 대시보드에서 표 목록을 열어요.
- 표마다 RLS가 켜져 있는지 봐요. 하나라도 꺼져 있으면 켜고, 그 표에 맞는 규칙(정책)을 넣어야 해요. 화면 메뉴가 헷갈리면 아래 문장으로 AI한테 확인을 맡기세요.
- 같은 문서에 "정책을 넣어도 기본으로 붙은 권한(grant)은 안 없어진다, 필요 없는 권한은 회수하라"고 나와요. AI한테 이것까지 같이 시키세요.
Supabase의 모든 표에 Row Level Security(RLS)가 켜져 있는지 확인해 줘. 꺼진 표가 있으면 켜고, 로그인한 사람은 자기 데이터만 읽고 쓸 수 있게 정책을 만들어 줘. 로그인 안 한 사람(anon)에게 필요 없는 권한(grant)이 남아 있으면 회수하는 SQL도 같이 만들어 줘. 바꾸기 전에 어떤 표에 무엇을 바꿀지 먼저 보여 줘.확인하는 법: 로그아웃한 상태(또는 다른 계정)로 남의 데이터를 불러오는 화면을 열어 봐요. 안 보여야 정상이에요. 막히면: RLS를 켜자마자 내 앱에서도 데이터가 안 보이면, 정책이 없어서 다 막힌 거예요. 정상이에요. 정책을 추가하면 돼요.
4. 가입 제한
한 줄로: 한 사람(같은 인터넷 주소)이 짧은 시간에 몇 번까지 가입·로그인할 수 있는지 정하는 것. 원래 용어는 **요청 속도 제한(Rate limit)**이에요.
왜: 문 앞에 줄 세우는 사람 없이 문을 열어 둔 것과 같아요. 봇이 가입창을 찾으면 밤새 가짜 계정을 만들 수 있어요.
따라 하기 (Supabase)
- Supabase 대시보드 →
Authentication > Rate Limits로 가요. - 가입·로그인(Sign-ups and sign-ins) 제한 값을 봐요. 공식 문서 기준 기본값은 같은 IP 주소당 5분에 30번이고, 넘으면
429 Too Many Requests오류로 막혀요(2026-11-02 확인). - 내 서비스에 맞게 줄이거나, 봇을 막는 확인 상자(CAPTCHA)와 이메일 인증을 같이 켜는 걸 AI한테 물어보세요.
이 앱의 가입·로그인 요청에 횟수 제한이 걸려 있는지 확인해 줘. Supabase를 쓰고 있다면 Authentication > Rate Limits 설정값을 어떻게 두면 좋을지, 내가 직접 만든 가입 API가 있다면 거기에도 횟수 제한을 거는 방법을 알려 줘. 봇 가입을 막는 CAPTCHA와 이메일 인증도 필요한지 같이 알려 줘.확인하는 법: 내 앱에 짧은 시간 가입을 여러 번 시도해 보면 어느 순간 막혀야 해요(테스트 계정으로). 막히면: Supabase 외에 직접 만든 가입 기능(서버리스 함수 등)이 있으면 Supabase 설정이 그 기능까지 막아 주지 않아요. 그 기능에 따로 걸어야 해요.
5. 비밀번호 재설정
한 줄로: 비밀번호를 잊은 사람이 메일로 링크를 받아 새 비밀번호를 만드는 흐름(Password reset).
왜: 이게 없으면 비밀번호 잊은 사람이 전부 나한테 연락해요. 손님이 열쇠를 잃어버릴 때마다 사장님이 직접 문을 열어 줘야 하는 가게가 돼요.
따라 하기
- 로그인 화면에 '비밀번호 찾기'(또는 '비밀번호를 잊으셨나요?')가 있는지 봐요.
- 테스트 계정으로 직접 눌러서 메일이 오는지, 메일의 링크로 새 비밀번호를 만들 수 있는지, 새 비밀번호로 로그인되는지 끝까지 해 봐요.
로그인 화면에 '비밀번호 찾기'를 만들어 줘. 이메일을 입력하면 재설정 링크가 담긴 메일이 가고, 링크를 누르면 새 비밀번호를 정하는 화면이 나오고, 바꾼 뒤 로그인 화면으로 돌아오게 해 줘. 링크는 한 번만 쓸 수 있게 해 줘.확인하는 법: 위 2번을 실제 메일 주소로 끝까지 해 봐요. 막히면: 메일이 안 오면 스팸함을 보고, 링크를 눌렀는데 엉뚱한 주소(localhost 등)로 가면 '재설정 후 돌아갈 주소' 설정이 개발용으로 남아 있는 거예요. AI한테 실제 사이트 주소로 바꿔 달라고 하세요.
6. 환불 정책·사업자 정보
한 줄로: 카드 결제를 받으려면 카드사 심사를 거치는데, 이때 홈페이지에 환불 정책과 사업자 정보가 있는지 봐요. 원래 용어는 PG 카드사 심사예요.
왜: 토스페이먼츠 블로그 「카드사 심사 통과 체크리스트」(2026-10-06 게시)에 "상품 배송 안내와 환불 정책을 홈페이지에 적어주세요", 하단에 "사업자등록번호가 나와있어야 해요"라고 나와요.
따라 하기 (토스페이먼츠 안내 기준)
- 바로 살 수 있는 상품이 하나 이상 있고, 상품 배송 안내(서비스면 제공 기간)와 환불 정책이 홈페이지에 있어야 해요.
- 홈페이지 하단에 사업자등록번호, 상호명·사업장 주소·대표자 이름(사업자등록증과 같게), 고객센터 연락처와 이메일, 통신판매업 신고번호가 있어야 해요. (간이과세자·비영리기관·공공기관은 통신판매업 신고번호가 없어도 된다고 나와요.)
- 하단 상호명은 사업자등록증의 상호명 그대로 적어요. 다르면 반려될 수 있어요.
- 심사는 계약 완료 후 최대 10~14영업일이 걸린다고 나와요. 상품권·게임처럼 일부 상품·업종은 금액 제한이나 추가 심사가 있어요.
이 사이트에 카드 결제를 붙이려고 해. 카드사 심사 준비로 (1) 환불 정책 페이지와 (2) 모든 페이지 하단의 사업자 정보 칸(상호명, 대표자, 사업장 주소, 사업자등록번호, 통신판매업 신고번호, 고객센터 연락처·이메일)을 만들어 줘. 실제 값은 내가 넣을 테니 [상호명] 같은 빈칸으로 두고, 환불 정책은 [환불 가능 기간]·[환불 방법]을 내가 정할 수 있게 틀만 만들어 줘.확인하는 법: 아무 페이지나 맨 아래로 내려 사업자 정보가 다 보이는지, 환불 정책 페이지가 메뉴나 하단에서 바로 열리는지 봐요. 막히면: 카드사별 세부 기준은 결제대행사마다 다를 수 있어요. 계약한 결제대행사 안내를 꼭 같이 보세요.
7. 되돌리기
한 줄로: 배포가 잘못됐을 때 직전에 잘 돌아가던 버전으로 바로 돌리는 기능. Vercel에서는 Instant Rollback이라고 불러요.
왜: 밤에 버튼 색 하나 바꿨다가 앱 전체가 멈추면, 원인을 찾느라 손으로 고치는 동안 계속 멈춰 있어요. 되돌리기는 '어제 저장한 게임 파일 불러오기'예요. Vercel 공식 문서에 "이전 프로덕션 배포로 빠르게 되돌린다(quickly revert to a previous production deployment)"고 나와요.
따라 하기 (Vercel)
- Vercel 대시보드 → 프로젝트 개요(Overview) 화면의 Production Deployment 칸에서
Instant Rollback을 눌러요. - 되돌릴 배포를 고르고
Continue→ 내용을 확인하고Confirm Rollback을 눌러요. - 또는
Deployments목록에서 배포 줄 오른쪽⋮→Instant Rollback도 돼요.
무료(Hobby) 요금제는 바로 직전 배포로만 되돌릴 수 있어요. Pro·Enterprise는 예전 배포 중에서 고를 수 있어요. 그리고 되돌려도 환경 변수는 그 예전 빌드 기준으로 돌아가요(2026-11-02 확인).
이 앱이 배포된 곳(예: Vercel)에서 배포가 잘못됐을 때 이전 버전으로 되돌리는 방법을 단계별로 알려 줘. 그리고 앞으로 고칠 때마다 깃에 커밋을 남겨서, 배포 되돌리기와 코드 되돌리기를 둘 다 할 수 있게 해 줘.확인하는 법: 급할 때 처음 해 보지 말고, 조용한 시간에 한 번 연습해 두세요(되돌린 뒤 다시 최신 배포로 돌아오는 것까지). 막히면: 데이터베이스 구조를 바꾼 배포는 화면만 되돌려도 데이터 쪽은 그대로예요. 그래서 8번 백업이 같이 필요해요.
8. 백업
한 줄로: 데이터베이스 내용을 파일로 떠 두는 것. 지워지거나 망가졌을 때 되살릴 유일한 방법이에요.
왜: AI한테 데이터베이스 정리를 시켰다가 다 지워질 수도 있어요. Supabase 공식 문서에 "Pro·Team·Enterprise는 매일 자동 백업, 무료 요금제는 Supabase CLI의 db dump 명령으로 정기적으로 내보내고 다른 곳에 보관하라"고 나와요.
따라 하기
- 유료 요금제: Supabase 대시보드 →
Database > Backups에서 백업 목록과 복원을 볼 수 있어요(Pro 7일, Team 14일, Enterprise 최대 30일). - 무료 요금제: Supabase CLI로 직접 내보내요. 프로젝트 연결 방법은 AI한테 물어보세요.
supabase db dump -f backup.sqlSupabase 무료 요금제를 쓰고 있어. supabase db dump 명령으로 데이터베이스를 파일로 내보내는 방법을 단계별로 알려 주고, 일주일에 한 번 자동으로 내보내서 내 컴퓨터나 다른 저장소에 보관하는 방법도 알려 줘. 데이터를 지우거나 바꾸는 작업을 할 때는 항상 먼저 백업하라고 기억해 줘.확인하는 법: 내보낸 파일을 열어 내 표 이름과 데이터가 들어 있는지 봐요. 막히면: 공식 문서 기준 Storage에 올린 파일(사진 등)은 데이터베이스 백업에 안 들어가요. 따로 받아 두세요. 그리고 프로젝트를 지우면 백업도 같이 영구 삭제돼요.
9. 무료 한도
한 줄로: 무료 요금제에도 끝이 있어요. 안 쓰면 멈추고, 넘으면 제한이 걸려요.
왜: Supabase 가격표에 "무료 프로젝트는 1주 동안 활동이 없으면 일시정지되고, 활성 프로젝트는 2개까지"라고 나와요. 요금 안내(Billing FAQ)에는 무료 한도를 넘으면 먼저 알림이 오고, 계속 넘으면 서비스 제한(Fair Use Policy)이 걸린다고 나와요. 제한은 프로젝트 일시정지, 데이터베이스 읽기 전용, 모든 요청에 402 오류 응답 같은 것이에요.
Supabase 무료 요금제 한도 (2026-11-02 공식 문서 기준)
| 항목 | 무료 한도 |
|---|---|
| 데이터베이스 크기 | 프로젝트당 500MB |
| 월간 활성 사용자(MAU) | 50,000명 |
| 내보내는 데이터(Egress) | 5GB |
| 파일 저장(Storage) | 1GB |
| 일시정지 | 1주 동안 활동이 없으면 |
| 활성 프로젝트 | 2개까지 |
이 앱이 쓰는 서비스들(데이터베이스, 배포, AI API 등)의 무료 요금제 한도를 표로 정리하고, 지금 사용량이 어느 정도인지 확인하는 화면이 어디 있는지 알려 줘. 한도를 넘거나 일시정지되면 앱에서 무슨 일이 생기는지도 알려 줘.확인하는 법: Supabase 대시보드의 사용량(Usage) 화면에서 지금 숫자를 봐요. 막히면: 공개 직후 사람이 몰릴 것 같으면 유료 요금제로 올릴 시점을 미리 정해 두세요. Billing FAQ에는 한도 제한이 다음 결제 주기에 쿼터가 다시 차면 풀리고, 유료로 올리면 바로 풀린다고 나와요.
10. 방문자 통계
한 줄로: 사람들이 어디로 들어와서 어디서 떠나는지 보여 주는 도구(웹 분석).
왜: 통계가 없으면 '왜 가입을 안 하지?'를 감으로만 추측해요. 가게에 손님 수를 세는 계수기가 없는 것과 같아요. 처음부터 달아 둬야 공개 첫날 기록부터 남아요.
따라 하기
- 통계 도구를 하나 고르세요. Vercel로 배포했다면 Vercel의 Web Analytics, 아니면 구글 애널리틱스(GA4) 같은 도구가 있어요.
- AI한테 설치를 시키고, 배포한 뒤 내 폰으로 사이트를 한 번 열어 보세요.
이 앱에 방문자 통계를 달아 줘. 지금 배포 환경에 맞는 도구를 하나 추천하고 설치해 줘. 첫 화면 → 가입 화면 → 가입 완료까지 각 단계에 몇 명이 왔는지 볼 수 있게 해 줘. 개인정보 처리방침에 통계 도구 사용을 적어야 하는지도 알려 줘.확인하는 법: 통계 도구 화면에 방금 내 방문이 찍히면 돼요(도구에 따라 몇 분 걸려요). 막히면: 광고 차단 프로그램이 켜진 브라우저에서는 내 방문이 안 찍힐 수 있어요. 다른 브라우저나 폰으로 확인하세요.
공개 전 체크리스트 (인쇄용)
- 1. 폰 화면에서 가입·로그인·결제 버튼이 다 보인다
- 2. 브라우저 코드에 비밀 키가 없다 (있었던 키는 폐기·재발급했다)
- 3. 모든 표에 잠금 규칙(RLS)이 켜져 있고, 로그아웃 상태로 남의 정보가 안 보인다
- 4. 가입·로그인 횟수 제한을 확인했다
- 5. 비밀번호 찾기를 실제 메일로 끝까지 해 봤다
- 6. (결제가 있다면) 환불 정책 페이지와 하단 사업자 정보가 있다
- 7. 이전 버전으로 되돌리는 법을 한 번 연습했다
- 8. 백업이 있다 (무료면
db dump로 직접 내보냈다) - 9. 무료 한도와 넘으면 생기는 일을 안다
- 10. 방문자 통계에 내 방문이 찍힌다
출처 (확인 날짜)
- OpenAI Help: Best practices for API key safety — 3번·4번 (2026-10-30 확인. 2026-11-02에는 봇 확인 화면이라 다시 열지 못함)
- Supabase: Row Level Security — 첫 부분, Grants and policies (2026-11-02 확인)
- Supabase: Rate limits —
Authentication > Rate Limits, 기본값 표, 429 (2026-11-02 확인) - 토스페이먼츠 블로그: 카드사 심사 통과 체크리스트 — 2026-10-06 게시 (2026-11-02 확인)
- Vercel: Instant Rollback — 대시보드 위치, Hobby 조건, 환경 변수 (2026-11-02 확인)
- Supabase: Database Backups — 요금제별 자동 백업,
db dump, Storage 제외 (2026-11-02 확인) - Supabase Pricing · About billing · Billing FAQ — 무료 한도, 일시정지, 한도 초과 시 제한 (2026-11-02 확인)
복사해서 쓰는 것 모음 · 12개
제일 빠른 방법: 한 번에 붙여 넣기
이 앱을 곧 공개하려고 해. 아래 10가지를 점검해서, 항목마다 '괜찮음 / 문제 있음 / 확인 못 함'과 이유를 표로 알려 줘. 아직 고치지는 말고, 문제 있는 항목은 어떻게 고칠지 계획만 적어 줘.
1. 폰 화면(가로 390px)에서 잘리거나 화면 밖으로 밀려나는 버튼·글자가 있는지
2. 브라우저로 내려가는 코드에 API 키·비밀 키가 들어 있는지
3. 데이터베이스의 모든 표에 잠금 규칙(Supabase면 RLS)이 켜져 있고, 로그인 안 한 사람이 남의 정보를 읽거나 쓸 수 없는지
4. 가입·로그인 요청 횟수 제한이 걸려 있는지
5. 비밀번호를 잊었을 때 메일로 재설정하는 흐름이 있는지
6. 결제를 붙였다면 환불 정책 페이지와 홈페이지 하단 사업자 정보가 있는지
7. 배포가 잘못됐을 때 이전 버전으로 되돌리는 방법
8. 데이터베이스 백업이 되고 있는지, 안 되면 직접 내보내는 방법
9. 지금 쓰는 서비스의 무료 요금제 한도와 넘으면 생기는 일
10. 방문자 통계가 설치돼 있는지1. 폰 화면
이 앱을 폰 화면(가로 390px)과 작은 폰(가로 360px)으로 봤을 때 잘리거나 화면 밖으로 밀려나는 버튼·글자·입력칸을 전부 찾아서 목록으로 알려 줘. 특히 가입·로그인·결제 버튼은 꼭 확인해 줘.2. 비밀 키
브라우저로 내려가는 코드(프론트엔드)에 API 키나 비밀 키가 들어 있는지 전부 찾아 줘. 있으면 그 키를 서버 쪽(백엔드나 서버리스 함수)으로 옮기고, 브라우저는 내 서버를 거쳐서만 AI를 부르도록 바꾸는 계획을 알려 줘. .env 파일이 깃허브에 올라가지 않게 되어 있는지도 확인해 줘.3. 데이터베이스 잠금
Supabase의 모든 표에 Row Level Security(RLS)가 켜져 있는지 확인해 줘. 꺼진 표가 있으면 켜고, 로그인한 사람은 자기 데이터만 읽고 쓸 수 있게 정책을 만들어 줘. 로그인 안 한 사람(anon)에게 필요 없는 권한(grant)이 남아 있으면 회수하는 SQL도 같이 만들어 줘. 바꾸기 전에 어떤 표에 무엇을 바꿀지 먼저 보여 줘.4. 가입 제한
이 앱의 가입·로그인 요청에 횟수 제한이 걸려 있는지 확인해 줘. Supabase를 쓰고 있다면 Authentication > Rate Limits 설정값을 어떻게 두면 좋을지, 내가 직접 만든 가입 API가 있다면 거기에도 횟수 제한을 거는 방법을 알려 줘. 봇 가입을 막는 CAPTCHA와 이메일 인증도 필요한지 같이 알려 줘.5. 비밀번호 재설정
로그인 화면에 '비밀번호 찾기'를 만들어 줘. 이메일을 입력하면 재설정 링크가 담긴 메일이 가고, 링크를 누르면 새 비밀번호를 정하는 화면이 나오고, 바꾼 뒤 로그인 화면으로 돌아오게 해 줘. 링크는 한 번만 쓸 수 있게 해 줘.6. 환불 정책·사업자 정보
이 사이트에 카드 결제를 붙이려고 해. 카드사 심사 준비로 (1) 환불 정책 페이지와 (2) 모든 페이지 하단의 사업자 정보 칸(상호명, 대표자, 사업장 주소, 사업자등록번호, 통신판매업 신고번호, 고객센터 연락처·이메일)을 만들어 줘. 실제 값은 내가 넣을 테니 [상호명] 같은 빈칸으로 두고, 환불 정책은 [환불 가능 기간]·[환불 방법]을 내가 정할 수 있게 틀만 만들어 줘.7. 되돌리기
이 앱이 배포된 곳(예: Vercel)에서 배포가 잘못됐을 때 이전 버전으로 되돌리는 방법을 단계별로 알려 줘. 그리고 앞으로 고칠 때마다 깃에 커밋을 남겨서, 배포 되돌리기와 코드 되돌리기를 둘 다 할 수 있게 해 줘.8. 백업
supabase db dump -f backup.sql8. 백업
Supabase 무료 요금제를 쓰고 있어. supabase db dump 명령으로 데이터베이스를 파일로 내보내는 방법을 단계별로 알려 주고, 일주일에 한 번 자동으로 내보내서 내 컴퓨터나 다른 저장소에 보관하는 방법도 알려 줘. 데이터를 지우거나 바꾸는 작업을 할 때는 항상 먼저 백업하라고 기억해 줘.9. 무료 한도
이 앱이 쓰는 서비스들(데이터베이스, 배포, AI API 등)의 무료 요금제 한도를 표로 정리하고, 지금 사용량이 어느 정도인지 확인하는 화면이 어디 있는지 알려 줘. 한도를 넘거나 일시정지되면 앱에서 무슨 일이 생기는지도 알려 줘.10. 방문자 통계
이 앱에 방문자 통계를 달아 줘. 지금 배포 환경에 맞는 도구를 하나 추천하고 설치해 줘. 첫 화면 → 가입 화면 → 가입 완료까지 각 단계에 몇 명이 왔는지 볼 수 있게 해 줘. 개인정보 처리방침에 통계 도구 사용을 적어야 하는지도 알려 줘.