feat: Clerk + Supabase 통합 시스템 구현 완료

주요 변경사항:
• Clerk 인증 시스템 통합 및 설정
• Supabase 데이터베이스 스키마 설계 및 적용
• JWT 기반 Row Level Security (RLS) 정책 구현
• 기존 Appwrite 인증을 Clerk로 완전 교체

기술적 개선:
• 무한 로딩 문제 해결 - Index.tsx 인증 로직 수정
• React root 마운팅 오류 수정 - main.tsx 개선
• CORS 설정 추가 - vite.config.ts 수정
• Sentry 에러 모니터링 통합

추가된 컴포넌트:
• AuthGuard: 인증 보호 컴포넌트
• SignIn/SignUp: Clerk 기반 인증 UI
• ClerkProvider: Clerk 설정 래퍼
• EnvTest: 개발환경 디버깅 도구

데이터베이스:
• user_profiles, transactions, budgets, category_budgets 테이블
• Clerk JWT 토큰 기반 RLS 정책
• 자동 사용자 프로필 생성 및 동기화

Task Master:
• Task 11.1, 11.2, 11.4 완료
• 프로젝트 관리 시스템 업데이트

Note: ESLint 정리는 별도 커밋에서 진행 예정

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hansoo
2025-07-13 14:01:27 +09:00
parent e72f9e8d26
commit c231d5be65
59 changed files with 5974 additions and 751 deletions

92
deploy-help.md Normal file
View File

@@ -0,0 +1,92 @@
# 🚨 Vercel 배포 오류 해결 가이드
## 문제 상황
```
Environment Variable "VITE_APPWRITE_ENDPOINT" references Secret "vite_appwrite_endpoint", which does not exist.
```
## 해결 방법
### 1. Vercel 대시보드에서 환경 변수 설정
**🔗 URL:** https://vercel.com/hansoohas-projects/zellyy-finance/settings/environment-variables
**📝 설정해야 할 환경 변수들:**
#### Production 환경
| 변수명 | 값 | 설명 |
| ------------------------------------------ | ------------------------------ | ---------------------------- |
| `VITE_APPWRITE_ENDPOINT` | `https://cloud.appwrite.io/v1` | Appwrite 클라우드 엔드포인트 |
| `VITE_APPWRITE_PROJECT_ID` | `YOUR_PROJECT_ID` | Appwrite 프로젝트 ID |
| `VITE_APPWRITE_DATABASE_ID` | `default` | 데이터베이스 ID |
| `VITE_APPWRITE_TRANSACTIONS_COLLECTION_ID` | `transactions` | 컬렉션 ID |
| `VITE_APPWRITE_API_KEY` | `YOUR_API_KEY` | Appwrite API 키 |
| `VITE_DISABLE_LOVABLE_BANNER` | `true` | Lovable 배너 비활성화 |
#### Preview 환경 (동일한 값 또는 테스트용 값)
- 위와 동일한 변수들을 Preview 환경에도 설정
### 2. CLI로 환경 변수 설정 (대안)
```bash
# Production 환경
vercel env add VITE_APPWRITE_ENDPOINT production
vercel env add VITE_APPWRITE_PROJECT_ID production
vercel env add VITE_APPWRITE_DATABASE_ID production
vercel env add VITE_APPWRITE_TRANSACTIONS_COLLECTION_ID production
vercel env add VITE_APPWRITE_API_KEY production
vercel env add VITE_DISABLE_LOVABLE_BANNER production
# Preview 환경
vercel env add VITE_APPWRITE_ENDPOINT preview
# ... 기타 변수들
```
### 3. 환경 변수 설정 후 재배포
```bash
# 환경 변수 설정 확인
vercel env ls
# 재배포
vercel --prod
```
## Appwrite 설정 가이드
1. **Appwrite 클라우드 계정 생성**
- https://cloud.appwrite.io 접속
- 계정 생성/로그인
2. **프로젝트 생성**
- 새 프로젝트 생성
- 프로젝트 ID 복사
3. **데이터베이스 설정**
- Database 메뉴에서 새 데이터베이스 생성 (이름: default)
- Collection 생성 (이름: transactions)
4. **API 키 생성**
- Settings > API Keys에서 새 API 키 생성
- 필요한 권한 부여
5. **도메인 설정**
- Settings > Platforms에서 Web 플랫폼 추가
- Vercel 도메인 추가 (예: https://zellyy-finance.vercel.app)
## 주의사항
⚠️ **보안 주의사항:**
- API 키는 절대 코드에 하드코딩하지 마세요
- 환경 변수만 사용하세요
- `.env` 파일은 `.gitignore`에 포함되어 있는지 확인하세요
**성공 확인:**
- 환경 변수 설정 후 `vercel env ls`로 확인
- 재배포 후 브라우저에서 정상 동작 확인
- 개발자 도구 Console에서 에러 메시지 확인