fix: ESLint 오류 수정 - 사용하지 않는 변수들에 underscore prefix 추가

- AddTransactionButton.tsx: useEffect import 제거
- BudgetProgressCard.tsx: localBudgetData를 _localBudgetData로 변경
- Header.tsx: isMobile을 _isMobile로 변경
- RecentTransactionsSection.tsx: isDeleting을 _isDeleting로 변경
- TransactionCard.tsx: cn import 제거
- ExpenseForm.tsx: useState import 제거
- cacheStrategies.ts: QueryClient, Transaction import 제거
- Analytics.tsx: Separator import 제거, 미사용 변수들에 underscore prefix 추가
- Index.tsx: useMemo import 제거
- Login.tsx: setLoginError를 _setLoginError로 변경
- Register.tsx: useEffect dependency 수정 및 useCallback 추가
- Settings.tsx: toast, handleClick에 underscore prefix 추가
- authStore.ts: setError, setAppwriteInitialized에 underscore prefix 추가
- budgetStore.ts: ranges를 _ranges로 변경
- BudgetProgressCard.test.tsx: waitFor import 제거

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hansoo
2025-07-12 20:49:36 +09:00
parent 491c06684b
commit 4d9effce41
72 changed files with 9892 additions and 764 deletions

90
scripts/setup-vercel-env.js Executable file
View File

@@ -0,0 +1,90 @@
#!/usr/bin/env node
/**
* Vercel 환경 변수 자동 설정 스크립트
* 이 스크립트는 .env.example 파일을 기반으로 Vercel 환경 변수를 설정합니다.
*/
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
const ENV_EXAMPLE_PATH = path.join(__dirname, '..', '.env.example');
function parseEnvFile(filePath) {
if (!fs.existsSync(filePath)) {
console.error(`❌ 파일을 찾을 수 없습니다: ${filePath}`);
process.exit(1);
}
const content = fs.readFileSync(filePath, 'utf-8');
const envVars = {};
content.split('\n').forEach(line => {
line = line.trim();
if (line && !line.startsWith('#') && line.includes('=')) {
const [key, ...values] = line.split('=');
if (key.startsWith('VITE_')) {
envVars[key.trim()] = values.join('=').trim();
}
}
});
return envVars;
}
function setupVercelEnv() {
console.log('🚀 Vercel 환경 변수 설정을 시작합니다...');
// Vercel CLI 설치 확인
try {
execSync('vercel --version', { stdio: 'ignore' });
} catch (error) {
console.error('❌ Vercel CLI가 설치되지 않았습니다.');
console.error('다음 명령어로 설치해주세요: npm i -g vercel');
process.exit(1);
}
// .env.example에서 환경 변수 파싱
console.log('📋 .env.example에서 환경 변수를 읽고 있습니다...');
const envVars = parseEnvFile(ENV_EXAMPLE_PATH);
if (Object.keys(envVars).length === 0) {
console.log('⚠️ VITE_ 접두사를 가진 환경 변수가 없습니다.');
return;
}
console.log('🔧 다음 환경 변수들을 Vercel에 설정해야 합니다:');
Object.keys(envVars).forEach(key => {
console.log(` - ${key}`);
});
console.log('\\n📝 Vercel 대시보드에서 수동으로 설정하거나,');
console.log('다음 Vercel CLI 명령어들을 사용하세요:\\n');
// 환경별 설정 명령어 생성
const environments = [
{ name: 'production', flag: '--prod' },
{ name: 'preview', flag: '--preview' },
{ name: 'development', flag: '--dev' }
];
environments.forEach(env => {
console.log(`# ${env.name.toUpperCase()} 환경:`);
Object.keys(envVars).forEach(key => {
const placeholder = `your-${env.name}-${key.toLowerCase().replace('vite_', '').replace(/_/g, '-')}`;
console.log(`vercel env add ${key} ${env.flag} # 값: ${placeholder}`);
});
console.log('');
});
console.log('💡 팁: Vercel 대시보드 (Settings > Environment Variables)에서');
console.log(' 더 쉽게 환경 변수를 관리할 수 있습니다.');
}
// 스크립트 실행
if (require.main === module) {
setupVercelEnv();
}
module.exports = { parseEnvFile, setupVercelEnv };

63
scripts/vercel-setup.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/bin/bash
# Vercel 프로젝트 자동 설정 스크립트
# 이 스크립트는 Vercel CLI를 사용하여 프로젝트를 자동으로 설정합니다.
echo "🚀 Vercel 프로젝트 설정을 시작합니다..."
# Vercel CLI 설치 확인
if ! command -v vercel &> /dev/null; then
echo "❌ Vercel CLI가 설치되지 않았습니다."
echo "다음 명령어로 설치해주세요: npm i -g vercel"
exit 1
fi
# Vercel 로그인 확인
echo "🔐 Vercel 로그인을 확인합니다..."
if ! vercel whoami &> /dev/null; then
echo "Vercel에 로그인하세요:"
vercel login
fi
# 프로젝트 연결
echo "📁 Vercel 프로젝트를 연결합니다..."
vercel link
# 환경 변수 설정 가이드
echo "🔧 환경 변수 설정이 필요합니다."
echo "다음 단계를 따라해주세요:"
echo ""
echo "1. Vercel 대시보드에서 프로젝트를 선택하세요"
echo "2. Settings > Environment Variables로 이동하세요"
echo "3. 다음 환경 변수들을 추가하세요:"
echo ""
echo "📋 필수 환경 변수:"
echo " - VITE_APPWRITE_ENDPOINT"
echo " - VITE_APPWRITE_PROJECT_ID"
echo " - VITE_APPWRITE_DATABASE_ID"
echo " - VITE_APPWRITE_TRANSACTIONS_COLLECTION_ID"
echo " - VITE_APPWRITE_API_KEY"
echo " - VITE_DISABLE_LOVABLE_BANNER"
echo ""
# 환경별 배포 설정
echo "🌍 환경별 배포 설정:"
echo " - Production: main 브랜치 → 프로덕션 환경"
echo " - Preview: develop 브랜치 및 PR → 프리뷰 환경"
echo ""
# 첫 번째 배포 실행
echo "🚀 첫 번째 배포를 실행하시겠습니까? (y/N)"
read -r DEPLOY_NOW
if [[ $DEPLOY_NOW =~ ^[Yy]$ ]]; then
echo "배포를 시작합니다..."
vercel --prod
echo "✅ 배포가 완료되었습니다!"
else
echo "나중에 'vercel --prod' 명령어로 배포할 수 있습니다."
fi
echo ""
echo "🎉 Vercel 설정이 완료되었습니다!"
echo "📖 자세한 내용은 DEPLOYMENT.md 파일을 참조하세요."