import React from 'react'; import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; import './App.css'; import Login from './pages/Login'; import Register from './pages/Register'; import NotFound from './pages/NotFound'; import NavBar from './components/NavBar'; import Index from './pages/Index'; import AuthContextWrapper from './contexts/AuthContext'; import { Toaster } from './components/ui/toaster'; import ProfileManagement from './pages/ProfileManagement'; import Transactions from './pages/Transactions'; import SecurityPrivacySettings from './pages/SecurityPrivacySettings'; import NotificationSettings from './pages/NotificationSettings'; import HelpSupport from './pages/HelpSupport'; import ForgotPassword from './pages/ForgotPassword'; import Analytics from './pages/Analytics'; import PaymentMethods from './pages/PaymentMethods'; import Settings from './pages/Settings'; import { BudgetProvider } from './contexts/BudgetContext'; // 전역 오류 핸들러 const handleError = (error: any) => { console.error('앱 오류 발생:', error); }; // 오류 경계 컴포넌트 class ErrorBoundary extends React.Component< { children: React.ReactNode }, { hasError: boolean; error: Error | null } > { constructor(props: { children: React.ReactNode }) { super(props); this.state = { hasError: false, error: null }; } static getDerivedStateFromError(error: Error) { return { hasError: true, error }; } componentDidCatch(error: Error, errorInfo: React.ErrorInfo) { handleError({ error, errorInfo }); } render() { if (this.state.hasError) { return (

오류가 발생했습니다

앱에서 예상치 못한 오류가 발생했습니다. 페이지를 새로고침하거나 나중에 다시 시도해주세요.

              {this.state.error?.message}
            
); } return this.props.children; } } function App() { return (
} /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } />
); } export default App;