Vite로 React 앱 만들기
1. Vite 설치 및 프로젝트 생성
절차
- 터미널을 onebite-react 폴더로 이동합니다.
- 다음 명령어를 입력합니다:
- npm create vite@latest
- 프로젝트 이름을 묻는 창이 나오면 원하는 이름을 입력합니다.
(예시: section_custom) - "Select a framework" 질문에서는 방향키로 React를 선택합니다.
- "Select a variant" 질문에서는 JavaScript를 선택합니다.
- 프로젝트 폴더(section_custom)로 이동한 후, 의존성 설치를 위해 다음 명령어를 실행합니다:
- npm install
- 설치가 완료되면 node_modules 폴더와 다수의 라이브러리들이 추가됩니다.
Tip: 직접 React 설정을 구성하려면 번거로운 작업(webpack 설정, babel 설정, 환경구성 등)이 필요한데, Vite는 이를 자동으로 설정해주어 빠른 개발 환경 구성이 가능합니다.
2. 폴더 구조 이해
public 폴더
- HTML에서 직접 접근할 수 있는 정적 파일(Static Assets)을 저장하는 곳입니다.
- 예시: .png, .jpg, .svg, .mp4, .woff (폰트) 등
- 접근 방식:(※ 슬래시 /를 붙여 public 루트 기준으로 경로를 지정합니다.)
- <img src="/logo.png" />
src 폴더
- "source"의 약자로 애플리케이션의 실제 코드가 들어갑니다.
- 여기서 작성하는 코드들은 Vite가 번들링(묶어주기)해 브라우저에 전달합니다.
src 주요 폴더:
- assets/: 정적 파일 보관소 (이미지, 스타일시트 등). 단, 이 파일들은 코드에서 import하여 사용합니다. (※ public과의 차이점은 나중에 자세히 다룹니다.)
- components/: React 컴포넌트 보관소
3. package.json 이해 및 스크립트 실행
역할
- 프로젝트 메타정보(이름, 버전, 의존성 목록 등)를 담고 있습니다.
- 주요 스크립트 항목:
- { "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" } }
명령어
- 개발 서버 실행
- 실행 후 콘솔에 http://localhost:5173/ 같은 주소가 표시됩니다.
- 해당 URL을 클릭해 가동 중인 리액트 앱을 브라우저에서 확인할 수 있습니다.
- npm run dev
- 단축키(h)
- 터미널에 h 입력 → 개발 서버 관련 핫키(재시작, 종료 등) 안내.
4. React 앱 구동 원리
요약
- npm run dev를 실행하면 Vite가 내장된 개발 서버를 가동시킵니다.
- 기본적으로 localhost:5173 (포트 번호는 상황에 따라 다를 수 있음)에서 웹 서버가 실행됩니다.
흐름
- 브라우저가 localhost:5173에 접속하면 public/index.html을 받아옵니다.
- index.html 안에는 다음과 같은 스크립트가 있습니다:
- <script type="module" src="/src/main.jsx"></script>
- 이 스크립트가 src/main.jsx 파일을 불러옵니다.
5. React 요소 렌더링 과정
main.jsx 분석
파일 내용:
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.jsx'
createRoot(document.getElementById('root')).render(
<StrictMode>
<App />
</StrictMode>,
)
주요 개념
- createRoot()
- document.getElementById('root')를 찾아서 React의 루트 노드로 설정합니다.
- .render()
- 루트 노드에 React 요소를 실제로 렌더링합니다.
- <StrictMode>
- React의 개발 모드에서 잠재적인 문제를 감지해주는 래퍼입니다. 실제 DOM에 영향을 주진 않습니다.
- <App />
- App.jsx 파일에서 import된 React 컴포넌트입니다.
- 컴포넌트란 여러 요소를 하나로 묶어 재사용할 수 있는 UI 단위입니다.
실제 화면 연결 과정 요약
- index.html이 기본 구조 제공
- main.jsx가 루트 엘리먼트에 React 렌더링
- App.jsx가 첫 화면 컴포넌트를 정의하고 렌더링
✅ 실무 팁
- Vite는 기본적으로 **핫 리로딩(Hot Reloading)**을 지원합니다. 코드 수정 시 브라우저가 자동으로 갱신됩니다.
- public 폴더에 저장하는 파일은 빌드 시 그대로 복사되며 최적화되지 않습니다.
반면, src/assets에 저장하고 import하는 방식은 번들링 및 최적화 대상이 됩니다. - package.json 관리에 익숙해지면, 직접 다양한 개발 스크립트를 추가해 자동화할 수 있습니다.
반응형
'Programming > React' 카테고리의 다른 글
Vite 기본 설정 및 실무 예제 + App.jsx 구조 분석 + useState 심화 개념 정리 (2) | 2025.05.02 |
---|---|
[React] React 기초부터 모듈 시스템까지 (2) | 2025.04.29 |
[React] npm이란?(npx와 간단 비교) (0) | 2024.09.12 |
[생활코딩] React 06. state (0) | 2024.01.31 |
[생활코딩] React 05. 이벤트 event (0) | 2024.01.23 |