// 이 파일이 하는 일: React 앱의 진입점. index.html의 #root에 앱 전체를 붙인다.
// 학습 포인트: BrowserRouter를 여기(최상단)에서 한 번만 감싸면
// 하위 어디서든 useNavigate/Link 같은 라우터 훅을 쓸 수 있다.
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import App from './App.jsx';
import { AuthProvider } from './AuthContext.jsx';
import './styles/global.css';

ReactDOM.createRoot(document.getElementById('root')).render(
  // 학습 포인트: StrictMode는 개발 중에만 동작하는 안전 점검 모드다.
  // useEffect를 일부러 두 번 실행해 "정리(cleanup)를 빠뜨린 코드"를 드러낸다.
  // 개발 서버에서 API가 두 번 호출되는 것처럼 보이는 건 버그가 아니라 이것 때문.
  <React.StrictMode>
    <BrowserRouter>
      {/* 학습 포인트: AuthProvider가 라우터 안쪽에 있어야
          로그인/로그아웃 시 페이지 이동(useNavigate)이 가능하다. */}
      <AuthProvider>
        <App />
      </AuthProvider>
    </BrowserRouter>
  </React.StrictMode>
);
