웹 개발

📌 React `index.js` - React 앱이 실행되는 과정 이해하기

Blue_bull 2025. 2. 10. 19:57

다음은 React 애플리케이션의 진입점인 index.js 파일에 대한 깔끔하고 정돈된 설명입니다.


1. React 및 기타 모듈 불러오기

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
// import App from './App';
import App from './example/App_arrow_function';
import reportWebVitals from './reportWebVitals';
  • import React from 'react';
    React 라이브러리를 사용하기 위해 기본적으로 불러옵니다.
  • import ReactDOM from 'react-dom/client';
    React 요소를 웹 페이지에 렌더링하기 위한 ReactDOM의 최신 API를 사용합니다.
  • import './index.css';
    CSS 스타일을 적용하기 위해 외부 스타일 시트를 불러옵니다.
  • import App from './example/App_arrow_function';
    애플리케이션의 최상위 컴포넌트인 App을 다른 경로(예, example 폴더 내의 파일)에서 불러옵니다.
    (원래는 ./App 경로에서 가져오지만, 현재는 다른 위치에서 컴포넌트를 불러오도록 수정되어 있습니다.)
  • import reportWebVitals from './reportWebVitals';
    웹 성능 측정과 관련된 함수로, 필요에 따라 애플리케이션의 성능 데이터를 기록할 수 있습니다.

2. 렌더링 영역(root) 생성

const root = ReactDOM.createRoot(document.getElementById('root'));
  • document.getElementById('root')
    HTML 파일(보통 public/index.html)에 있는 <div id="root"></div> 요소를 선택합니다.
  • ReactDOM.createRoot()
    선택된 요소를 React 애플리케이션의 렌더링 영역(root)으로 설정합니다.
    이를 통해 React 컴포넌트가 해당 영역 내에 렌더링됩니다.

3. App 컴포넌트 렌더링

root.render(
  // <React.StrictMode>
    <App />
  // </React.StrictMode>
);
  • root.render(<App />);
    최상위 컴포넌트인 App을 렌더링 영역에 출력합니다.
    <App />은 사용자가 작성한 모든 컴포넌트의 시작점으로, 애플리케이션 전체를 구성합니다.
  • <React.StrictMode> (주석 처리됨)
    개발 환경에서 잠재적인 문제를 미리 감지할 수 있도록 App 컴포넌트를 두 번 렌더링합니다.
    배포(build) 시에는 한 번만 렌더링되며, 초보 개발자라면 주석 처리된 상태로 사용해도 무방합니다.

4. 웹 성능 측정

reportWebVitals();
  • reportWebVitals();
    웹 성능 측정 기능을 실행합니다.
    성능 데이터를 console.log()로 출력하거나, Google Analytics 등 외부 분석 도구로 전송할 수 있습니다.
    기본적으로는 선택 사항이며, 나중에 최적화 작업을 진행할 때 활용할 수 있습니다.

최종 요약

코드 역할
import React from 'react'; React 라이브러리 불러오기
import ReactDOM from 'react-dom/client'; React 요소를 웹 페이지에 렌더링하는 기능 제공
import './index.css'; CSS 스타일 적용
import App from './example/App_arrow_function'; 애플리케이션의 최상위 컴포넌트인 App 불러오기
ReactDOM.createRoot(document.getElementById('root')) HTML의 root 요소를 React 렌더링 영역으로 설정
root.render(<App />); App 컴포넌트를 실행하여 화면에 출력
<React.StrictMode> (주석 처리됨) 개발 중 오류를 미리 감지하기 위해 렌더링을 두 번 수행 (배포 시 한 번 렌더링)
reportWebVitals(); 웹 성능 측정 (필수 사항은 아님)

결론:
이 코드는 React 애플리케이션을 실행하고, 최상위 컴포넌트인 App을 웹 페이지에 렌더링하는 역할을 합니다. 각 부분은 애플리케이션의 초기 설정 및 성능 측정 기능을 제공하며, React의 기본적인 동작 방식을 이해하는 데 중요한 역할을 합니다.

'웹 개발' 카테고리의 다른 글

리액트 import, from, export 사용법  (0) 2025.02.10
React 컴포넌트란?  (0) 2025.02.10
JavaScript - 화살표 함수란?  (0) 2025.02.10
리액트 사용 환경구성  (0) 2025.02.10
JavaScript 데이터 타입 & JSON 관련 메서드  (1) 2025.02.10