반응형

React의 실행 과정 자세히 살펴보기

여러분 혹시 React 앱이 '딱 실행되는 순간'에 무슨 일이 일어나는지 궁금해본 적 있으세요?
우리가 매일 쓰는 이 프레임워크가 브라우저에서 어떻게 돌아가는지 안다면,
디버깅도 훨씬 쉬워지고 성능 최적화도 감이 잡히기 시작해요!

안녕하세요!

오늘은 React 앱의 실행 흐름에 대해 차근차근 뜯어보는 시간을 가져보려 해요.

React를 처음 접했을 때 가장 헷갈리는 부분 중 하나가 바로 "대체 어떤 순서로 실행되고 렌더링되는 거지?"라는 거잖아요.

그래서 준비했습니다. index.html부터 컴포넌트 렌더링, 가상 DOM과 diffing 알고리즘까지!

이미지를 곁들여 시각적으로도 쉽게 이해할 수 있도록 구성했으니까, React를 막 배우는 분들이라면 꼭! 끝까지 읽어주세요 😊

 

 

 

1. React 앱의 초기 로딩 🚀

React 앱은 단순한 HTML 문서처럼 보이지만, 사실 정교한 번들링 시스템렌더링 흐름을 포함하고 있어요. 앱을 브라우저에서 처음 실행할 때는 다음과 같은 단계가 순차적으로 이뤄집니다.

① HTML 파일 로드 📄

  • React 프로젝트는 index.html이 기본 진입점입니다.
  • 해당 HTML 파일은 매우 간단하지만 React 앱의 기반 DOM 요소를 담고 있어요.
<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>React App</title>
  </head>
  <body>
    <div id="root"></div>
    <script src="/static/js/bundle.js"></script>
  </body>
</html>

이 중에서 <div id="root">가 가장 중요해요! React가 여기 안에 모든 UI를 렌더링하거든요.

② JavaScript 번들 로드 📦

이제 HTML을 다 불러왔으면, 본격적으로 JavaScript 번들 파일이 등장합니다. React 앱에서 작성한 모든 JS 코드들은 Webpack이나 Vite 같은 번들러를 통해 bundle.js로 합쳐져요.

  • 이 파일은 모든 React 컴포넌트, 상태 관리 코드, 라우팅 로직 등을 포함하고 있어요.
  • 브라우저가 이 JS 번들을 실행하면서 React 앱이 동작을 시작하죠.

🔎 정리: 초기 로딩 순서

단계 설명
1 index.html 로드 (root div 포함)
2 bundle.js 로딩 (JS 번들 실행)
3 React 앱 구동 시작

이 모든 일이 단 0.몇 초 안에 일어난다는 사실, 진짜 놀랍지 않나요? 😮

이제 다음으로 넘어가서 실제 React 컴포넌트가 DOM에 어떻게 렌더링되는지 확인해볼게요!

 

2. ReactDOM을 사용한 렌더링 🖥️

HTML이 모두 로드되고, JavaScript 번들이 실행되면 드디어 ReactDOM이 등장해요.

이 녀석이 하는 일은, 우리가 만든 React 컴포넌트를 브라우저의 DOM에 실제로 "마운트"하는 것입니다.

즉, 눈에 보이게 만들어주는 거죠!

① createRoot 사용법 (React 18 기준)

예전에는 ReactDOM.render를 썼지만, 이제는 React 18부터는 createRoot가 표준이 되었어요.

이건 동시성 기능(concurrent rendering)을 제대로 활용하기 위해 도입된 변화랍니다.

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);

 

이 코드에서 createRoot는 브라우저 DOM에서 id가 root인 요소를 찾아 React 앱을 거기에 렌더링하겠다고 선언하는 거예요.

② App 컴포넌트는 왜 항상 위에 있을까?

  • App 컴포넌트는 React 앱의 진입점이자 최상위 컴포넌트입니다.
  • 이 안에서 다른 모든 컴포넌트들이 트리 구조로 하위에 배치되어요.

이 구조는 마치

HTML의 <body> 안에 섹션들이 있는 것

처럼 생각하면 돼요.

모든 페이지와 기능은 결국 이 App 컴포넌트 안에서 시작됩니다.

📌 실전 포인트 요약

항목 설명
createRoot React 18의 렌더링 시작점. 동시성 지원
App 컴포넌트 모든 컴포넌트 트리의 최상단 위치
root div 실제 HTML에서 React가 렌더링되는 공간

여기까지 오면 이제 화면에 React가 "짠!" 하고 나타나는 거죠.

다음 단계에서는 App 안에서 어떻게 컴포넌트들이 그려지는지 더 깊이 들어가 볼게요 🎨

 

3. 컴포넌트 구조와 JSX 변환 🎨

React의 진짜 매력은 바로 컴포넌트 기반 아키텍처에 있어요.

컴포넌트를 쌓고 연결하고 조립해서 하나의 앱을 완성하는 방식은 정말 직관적이고, 마치 레고 블록을 조립하는 것 같죠.

① 함수형 컴포넌트의 기본 구조

function App() {
  return (
    <div>
      <h1>Hello, React!</h1>
      <MyComponent />
    </div>
  );
}

 

이건 React 앱에서 가장 기본적인 구조예요.

<MyComponent />처럼 다른 컴포넌트를 끼워넣는 것도 엄청 간단하죠?

② JSX: JavaScript + XML?

React에서 사용하는 문법인 JSX는 말 그대로 JavaScript 안에서 HTML을 작성하는 느낌이에요.

근데 사실 이건

 

브라우저가 직접 해석할 수 없어요

 

  • Babel이 JSX를 JavaScript 코드로 변환해줘요.
  • JSX는 결국 React.createElement() 호출로 바뀌어요.

🧪 JSX 변환 예시

JSX 코드 JS 코드 (변환 결과)
<h1>Hello</h1> React.createElement('h1', null, 'Hello')
<div className="box"></div> React.createElement('div', { className: 'box' })

즉, JSX는 편하게 작성하기 위한 껍데기고, 진짜 중요한 건 React의 내부 함수들이라는 거예요.

🧩 정리: React 컴포넌트 핵심 요약

  1. React는 컴포넌트 단위로 UI를 구성
  2. JSX를 이용해 컴포넌트 작성
  3. JSX는 Babel을 통해 JS로 변환

다음 챕터에서는, 이 JSX로 만들어진 컴포넌트가 어떻게 가상 DOM을 만들고, 최종 화면으로 이어지는지 볼 거예요.

진짜 React의 마법이 시작되는 순간이죠! 🌳✨

 

4. 가상 DOM과 리렌더링 과정 🌳

React의 핵심을 단 하나만 꼽으라면, 단연 Virtual DOM(가상 DOM)이에요.

그냥 DOM을 쓰지 왜 굳이 가상을 만들었을까요?

그 이유는 바로... 성능입니다.

① Virtual DOM이란?

  • 메모리 상에 존재하는 DOM의 복사본이에요.
  • 실제 DOM을 직접 건드리지 않고, 변경 내용을 먼저 Virtual DOM에 적용해봐요.

왜 이렇게 하냐구요?

DOM 조작은 무겁고 느리니까요

React는 효율적으로 비교하고 최소한의 변경만 실제 DOM에 반영하려는 거예요.

② 리렌더링 흐름 정리 🔄

  1. 컴포넌트 상태(state)나 props가 변경됨
  2. 변경된 상태를 기반으로 새 Virtual DOM을 생성
  3. 이전 Virtual DOM과 새 Virtual DOM을 비교 (Diffing)
  4. 변경이 필요한 최소한의 실제 DOM 조작만 수행

📊 성능 비교 예시

방식 DOM 조작 범위 성능
기존 방식 전체 DOM 새로 그리기 느림
React 방식 변경된 부분만 반영 빠름

🔍 Diffing 알고리즘의 핵심

React는 O(n) 복잡도의 효율적인 알고리즘으로 이전 가상 DOM과 새 가상 DOM을 비교해요.

동일한 컴포넌트는 key를 기준으로 비교하고, 재사용 가능한 건 살리고 아닌 건 새로 생성하죠.

 

이 과정을 통해 React는 실제 DOM 변경을 최소화하면서도 UI를 항상 최신 상태로 유지해주는 거예요.

정말 효율적이죠?

다음은 상태(state)와 props가 이 흐름에 어떻게 영향을 주는지 알아봅시다 ⚙️

 

5. 상태(State)와 Props 흐름 ⚙️

React를 제대로 이해하려면 반드시 알아야 할 두 가지가 있어요.

바로 stateprops입니다.

이 둘이 어떻게 흐르고, 변경되며, UI를 업데이트시키는지 알면 React는 거의 마스터했다고 봐도 무방해요!

① Props: 외부로부터 받는 데이터

  • 부모 컴포넌트가 자식 컴포넌트에 전달하는 값이에요.
  • 읽기 전용이며 컴포넌트 내부에서 수정할 수 없어요.
function Welcome(props) {
  return <h1>안녕하세요, {props.name}님!</h1>;
}

② State: 내부에서 바뀌는 값

  • 컴포넌트 내부에서 생성되고 관리되는 데이터입니다.
  • useState 훅을 사용해서 선언하고 갱신해요.
import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>현재 카운트: {count}</p>
      <button onClick={() => setCount(count + 1)}>+1</button>
    </div>
  );
}

📌 Props vs State 요약 비교

구분 Props State
역할 부모 → 자식 데이터 전달 컴포넌트 내부 데이터 관리
변경 가능 여부 읽기 전용 변경 가능 (setState 또는 set 함수)
리렌더링 변경 시 자식만 렌더링 변경 시 해당 컴포넌트 리렌더링

즉, props는 위에서 아래로 흐르는 값이고, state는 컴포넌트 내부에서 변화하는 값이에요.

이걸 이해하면 이제 사용자 입력이나 이벤트에 따라 어떻게 UI가 바뀌는지도 훨씬 잘 이해되실 거예요 😊

 

6. 이벤트 처리와 최종 업데이트 🔁

자, 이제 우리가 만든 React 앱에 사용자가 클릭하거나, 입력하거나, 마우스를 올리는 등의 이벤트가 발생할 때 무슨 일이 벌어지는지를 알아볼 차례예요.

이건 React 앱이 ‘살아있다’는 걸 보여주는 아주 중요한 부분이에요!

① 이벤트 바인딩 방식

HTML처럼 onclick 이런 거 안 써요!

React에서는 카멜 표기법으로 이벤트를 정의하고, 함수도 함께 넘겨야 해요.

function ButtonClicker() {
  const handleClick = () => {
    alert('버튼이 클릭되었습니다!');
  };

  return (
    <button onClick={handleClick}>클릭해보세요</button>
  );
}

② 상태(state) 변화 → 리렌더링

사용자가 이벤트를 일으키면, 대부분은 내부 상태(state)에 변화가 생겨요.

그러면 React는 전체 컴포넌트를 다시 렌더링하는 게 아니라, 변경된 부분만 골라서 가상 DOM을 통해 업데이트해요.

📌 실전 예제 - 카운터 버튼

function Counter() {
  const [count, setCount] = React.useState(0);

  return (
    <div>
      <p>현재 숫자: {count}</p>
      <button onClick={() => setCount(count + 1)}>+ 증가</button>
    </div>
  );
}

 

여기서 버튼을 누를 때마다 count 값이 증가하고, 컴포넌트가 자동으로 다시 그려지는 거예요.

이게 React의 핵심 흐름이죠.

🔁 이벤트 → 상태 변화 → UI 반영 요약

  1. 사용자가 버튼 클릭 등 이벤트 발생
  2. 핸들러 함수 실행 → 상태 변화
  3. Virtual DOM이 새로운 UI 생성
  4. 변경된 부분만 DOM에 반영

📌 자주 쓰는 이벤트 목록

이벤트 종류 사용 예
onClick 버튼 클릭, 아이콘 클릭
onChange input, select 값 변경
onSubmit 폼 전송 시
onMouseEnter / Leave 호버 효과

이처럼 이벤트 처리 → 상태 변화 → 가상 DOM 생성 → DOM 업데이트까지!

이 모든 걸 React가 알아서 해준다는 거, 진짜 대단하지 않나요?

덕분에 우리는 비즈니스 로직에만 집중할 수 있죠! 🙌

 

🔚 React 실행 흐름, 이제 보이시나요?

지금까지 React 앱이 브라우저에서 실제로 어떻게 실행되는지, 그리고 그 속에서 어떤 로직이 일어나는지를 단계별로 살펴봤어요.

index.htmlbundle.jscreateRootJSX → 가상 DOM → 상태 변경 → 이벤트 → 리렌더링

이 전체 흐름이 머릿속에 하나의 선으로 연결되었다면,

여러분은 이제 진짜 React의 구조를 꿰뚫은 거예요! 🎉

 

처음엔 다소 복잡하게 느껴질 수도 있어요.

하지만 몇 번만 실습을 반복하면 자연스럽게 손이 기억하게 됩니다.

특히 상태와 props의 흐름, 그리고 가상 DOM의 작동 원리를 정확히 이해하면 훨씬 안정적인 코드와 성능 좋은 React 앱을 만들 수 있어요.

조금씩, 천천히, 꾸준히. React는 그렇게 여러분 편이 되어줄 거예요 😄

✅ 다음으로 하면 좋은 실습

  • React Developer Tools 확장 설치해서 Virtual DOM 직접 관찰해보기
  • 상태 변경에 따라 UI가 어떻게 변하는지 console.log로 추적해보기
  • 부모 → 자식 → 자식 → 다시 부모로 props/state 흐름 역추적해보기

 

반응형
반응형

GitHub Personal Access Token (PAT) 설정 가이드 🔐

GitHub API를 쓰거나 외부 도구와 연동하려다 막히신 적 있나요?
그럴 땐 바로 이것! PAT (Personal Access Token) 설정이 필요합니다. 😎

 

안녕하세요 여러분!

오늘은 GitHub에서 API 사용 시 필수로 필요한 인증 토큰Personal Access Token (PAT)에 대해 자세히 알아보겠습니다.

패스워드 인증은 이제 보안상 허용되지 않기 때문에, PAT 설정은 꼭 필요한 과정이에요.

지금부터 PAT이 무엇인지, 어떻게 생성하고 사용하는지 함께 알아볼게요! 🔧

Personal Access Token(PAT) 개념 🔍

Personal Access Token(PAT)은 GitHub 계정을 API, CLI 또는 기타 외부 도구와 안전하게 연동하기 위해 사용하는 비밀번호 대체용 인증 토큰입니다.

기존에는 사용자 계정 비밀번호로 인증이 가능했지만, 보안 강화를 위해 이제는 PAT을 사용해야 합니다.

  • 비밀번호보다 안전하고, 특정 권한만 부여할 수 있어 유연하게 사용 가능
  • 저장소 접근, 커밋, 워크플로우 트리거 등 다양한 작업에서 사용됨
  • GitHub Actions, GitHub API, GitHub CLI 등에서 필수 인증 수단

 

PAT 생성 및 사용 방법 ✏️

이제 실제로 Personal Access Token을 어떻게 만드는지 알아볼게요.

GitHub 웹사이트에서 몇 번의 클릭만으로 생성할 수 있고, 필요한 권한을 선택해 제한도 걸 수 있습니다. 🔐

  1. GitHub 로그인 후 우측 상단 프로필 → Settings 클릭
  2. 좌측 메뉴 맨 하단 Developer settings 선택
  3. Personal access tokens → Tokens (classic) 클릭
  4. Generate new token 버튼 클릭
  5. 설명(title), 만료 기간(expiration), 권한(scopes)을 선택 후 생성
  6. 생성된 토큰은 한 번만 확인 가능하므로 복사해 안전하게 저장

✅ 이 토큰은 Git 명령어로 https:// 경로를 사용할 때 비밀번호 대신 입력하거나, API 요청 시 사용됩니다.

      다음 단계에서는 PAT을 활용해 GitHub API에 인증하는 법을 배워볼게요! 🔧

 

 

PAT을 활용한 GitHub API 인증 🔑

GitHub API를 사용할 때는 반드시 인증이 필요합니다.

이때 Personal Access Token을 활용하면 보안이 강화되고, 다양한 작업을 API를 통해 자동화할 수 있어요. 💡

예를 들어, 내 정보를 가져오는 GitHub API 요청은 아래와 같습니다:

curl -H "Authorization: token YOUR_PERSONAL_ACCESS_TOKEN" https://api.github.com/user

 

위 명령어에서 YOUR_PERSONAL_ACCESS_TOKEN 부분에 실제 생성한 PAT을 입력하면 됩니다.

이렇게 하면 API 호출 시 로그인 없이 내 정보에 접근할 수 있어요. ✨

💬 또한 이 토큰은 REST API뿐만 아니라 GraphQL API에도 동일하게 적용됩니다.

 

 

GitHub CLI와 PAT 연동 방법 💻

GitHub CLI를 사용할 때도 인증은 필수입니다.

CLI에서도 PAT을 통해 인증을 설정할 수 있으며, 한 번 연동해두면 다양한 GitHub 명령어를 손쉽게 사용할 수 있어요.

먼저 GitHub CLI를 설치한 뒤, 아래 명령어로 로그인 과정을 시작하세요:

gh auth login

 

인터랙티브한 설정 메뉴가 실행되면 다음과 같이 선택하세요:

  • GitHub.com 사용 여부 → Yes
  • 인증 방식 선택 → Login with a token

이후 생성한 PAT을 입력하면 인증 완료!

이제 gh repo clone, gh issue list 등 다양한 CLI 명령을 자유롭게 사용할 수 있습니다. 🧑‍💻

 

 

마무리 🎯

이제 여러분은 GitHub에서 Personal Access Token(PAT)을 생성하고 활용하는 법을 완벽하게 익히셨습니다!

처음에는 생소할 수 있지만, 실제로 개발 도구를 연동하거나 자동화를 구현할 때 매우 유용하게 사용된답니다. 🔐

특히 GitHub CLI나 CI/CD 파이프라인, 외부 API 통합 시 PAT은 거의 필수 도구이니 꼭 기억해두세요.

 

다음 글에서는 GitHub 저장소를 실전에서 어떻게 만들고 관리하는지를 단계별로 안내해드릴 예정입니다.

놓치지 마시고 이어서 함께 공부해봐요! 😊

궁금한 점은 언제든 댓글로 남겨주시면 친절하게 답변드릴게요!

반응형
반응형

2025년 Vite로 빠르게 React 프로젝트 만들기!
(JavaScript 버전)

“요즘 create-react-app 쓰면 손가락질 받는다? 😅”
빠르고 가볍게 시작하고 싶다면,
Vite로 React 프로젝트를 만들어보세요!

 

안녕하세요, 개발자 여러분! 혹시 아직도 create-react-app으로 새 프로젝트 시작하시나요?
그럼 오늘 이 글이 꽤 도움이 될지도 몰라요. 😊
2025년 현재, 더 이상 CRA는 주류가 아니에요.

개발자 커뮤니티에서도 빠르고 가벼운 도구로 Vite가 대세로 떠오르고 있습니다.
이 글에서는 초보자도 따라할 수 있도록, Vite로 React 프로젝트를 만들고 실행하는 전 과정을
이미지와 명령어 중심으로, 하나하나 쉽게 설명드릴게요.

1. Vite란? 왜 써야 할까? ⚡

여러분은 React 프로젝트를 만들 때 어떤 도구를 쓰시나요?
불과 몇 년 전만 해도 create-react-app(CRA)이 대세였죠. 하지만 요즘은 좀 다릅니다.
빠르고 가벼운 빌드 도구, 바로 Vite(비트)가 대세로 떠오르고 있어요!

📌 기존 CRA의 단점

  • 느린 초기 빌드 시간 — 개발 서버 실행하는 데 시간이 오래 걸려요.
  • 불필요한 파일 생성 — 쓰지도 않는 파일이 덕지덕지...
  • 유지보수 어려움 — 커스터마이징하려면 eject 해야 되는 복잡함...

🌟 그래서 등장한 Vite!

Vite는 Rollup 기반의 번들러로서, 빠른 개발 서버 실행과 즉각적인 반영을 제공합니다.
무려 HMR(Hot Module Replacement)도 기본 탑재되어 있고요.

  • ⚡ 엄청나게 빠른 실행 속도 — CRA랑 비교 불가!
  • 🔄 HMR 지원 — 수정한 파일이 바로 반영!
  • 🧼 미니멀한 템플릿 — 불필요한 설정 없이 바로 사용 가능!
기능 create-react-app Vite
개발 서버 실행 속도 느림 매우 빠름 ⚡
기본 프로젝트 크기 무거움 가벼움
파일 구조 복잡 심플 & 직관적

 

이쯤 되면 "그래서 어떻게 쓰는 건데?"라는 궁금증이 생기시겠죠?
이제 다음 섹션에서 바로 Node.js 설치부터 확인해볼게요!

 

2. Node.js 설치 및 확인하기 🧱

Vite를 사용하려면 Node.js가 필수예요. 왜냐고요?
Vite는 Node 환경에서 동작하는 도구이기 때문에 npm과 함께 동작하거든요.
그래서 먼저 우리 컴퓨터에 Node가 깔려 있는지부터 확인해봐야 합니다.

✅ 설치 여부 확인 방법

터미널이나 명령 프롬프트(cmd)를 열고 아래 명령어를 입력해보세요.

node -v

 

아래처럼 버전이 뜨면 성공! 🎉

예를 들어 이렇게 나올 거예요:

v18.17.1

❌ 설치 안 되어 있으면?

그럴 땐 아래 공식 사이트에서 LTS 버전을 받아 설치하면 됩니다.

👉 https://nodejs.org/ko

Node.js 공식 홈페이지 썸네일

참고로,

설치 시 윈도우 사용자라면 Node.js + npm이 함께 설치되기 때문에 따로 설정할 필요는 없어요.
정말 간단하죠?

📌 npm도 같이 확인해보세요!

npm -v

 

Node.js 설치 실습 영상

https://youtu.be/WmcLI60OnU0

 

 

이 명령어도 잘 작동한다면, 이제 다음 단계인 Vite로 프로젝트 생성하기로 넘어갈 준비 완료입니다! 😎

 

3. Vite로 React 프로젝트 생성하기 🛠️

자, 이제 본격적으로 Vite로 리액트 프로젝트를 만들어볼 시간입니다!
아래 단계별로 명령어를 따라가면 누구나 쉽게 첫 Vite 프로젝트를 만들 수 있어요.

① 프로젝트 생성 명령어

npm create vite@latest my-react-app

 

위 명령어를 입력하면 아래와 같이 프롬프트가 순차적으로 나옵니다.

  1. 프로젝트 이름 입력 — 기본값: my-react-app
  2. 프레임워크 선택React 선택
  3. Variant 선택JavaScript 선택 (TypeScript도 선택 가능)
Vite 프레임워크 선택 화면
JavaScript 템플릿 선택 화면

② 프로젝트 폴더로 이동 & 패키지 설치

cd my-react-app
npm install

 

이제 Vite가 기본 세팅해준 프로젝트 템플릿이 준비되었어요!
이 상태에서 바로 실행까지 할 수 있답니다.

 

Vite로 React 프로젝트 생성 실습 영상

https://youtu.be/cSApyMgNq1Q

 

💡 참고 꿀팁!

  • VSCode로 폴더 열기: code . 입력하면 바로 열려요!

여기까지 오셨으면 거의 70%는 끝났다고 보셔도 됩니다.
이제 남은 건 개발 서버 실행해서 직접 React 화면을 확인하는 것뿐!

 

4. 프로젝트 실행과 개발 서버 확인하기 🚀

이제 진짜 React 프로젝트가 작동하는지 확인해봐야죠!
Vite는 CRA보다 훨씬 빠르게 개발 서버를 실행할 수 있어요.

▶ 개발 서버 실행

npm run dev

 

명령어를 실행하면, 아래와 같이 개발 서버 주소가 출력될 거예요:

  Local: http://localhost:5173/

 

해당 주소를 브라우저에 붙여넣거나, 커맨드라인에서 Ctrl + 클릭으로 열어보세요.
기본 Vite + React 화면이 나온다면... 성공입니다! 🎉

 

💡 팁: 종료할 땐?

  • Ctrl + C 누르면 서버를 종료할 수 있어요!

지금까지 따라오셨다면, 이제 React + Vite 환경이 완벽하게 준비된 상태입니다. 👏
이제 코드도 살펴보고, 직접 수정해보면서 익숙해지면 됩니다.

 

5. 프로젝트 폴더 구조 이해하기 🗂️

이제 프로젝트가 실행됐으니, 내부 구조도 좀 살펴볼까요?
처음엔 폴더 안에 뭐가 뭔지 잘 모를 수 있지만, 핵심만 알면 금방 익숙해집니다!

📁 기본 디렉토리 구성

my-react-app/
├── public/          # 정적 파일 (favicon 등)
├── src/             # 실제 소스 코드 위치
│   ├── App.jsx      # 메인 React 컴포넌트
│   ├── main.jsx     # 진입 파일 (엔트리포인트)
│   ├── index.css    # 글로벌 스타일
├── .gitignore       # Git에서 무시할 파일 목록
├── package.json     # 프로젝트 메타 정보 및 의존성
├── vite.config.js   # Vite 설정 파일

 

여기서 가장 중요한 건 src/App.jsxmain.jsx입니다.
이 두 파일이 화면에 무엇을 어떻게 렌더링할지를 결정해요.

🧠 각 파일 간단 요약

파일/폴더 설명
public/ 정적 자산 저장 폴더 (HTML, 이미지 등)
src/App.jsx 메인 컴포넌트, 실제 화면 렌더링 담당
src/main.jsx ReactDOM을 이용해 App.jsx를 루트에 연결
vite.config.js Vite 설정 (경로 alias 등 커스터마이징 가능)
package.json 프로젝트 정보 및 의존성 목록

 

지금 구조만 잘 이해해도 앞으로 리액트 프로젝트 유지보수가 한결 쉬워질 거예요.
다음은 드디어 코드를 직접 수정해서 화면을 바꿔보는 시간입니다!

 

6. App.jsx 수정해서 기본 화면 바꾸기 🎨

자~ 이제 우리만의 메시지를 담아볼 시간이에요!
Vite가 생성해준 기본 화면을 내 입맛대로 살짝 바꿔보면,
"오~ 진짜 내 프로젝트 같네?" 싶은 뿌듯함이 생기거든요. 😆

📌 App.jsx 열어서 수정해보기

1. src/App.jsx 파일을 열어주세요.
2. 아래 코드처럼 기본 JSX 구조를 간단하게 바꿔볼게요.

function App() {
  return (
    <div style={{ padding: '2rem', textAlign: 'center' }}>
      <h1>Hello, React with Vite! 🚀</h1>
      <p>처음 만든 나만의 리액트 앱이에요. 너무 신나요! 😍</p>
    </div>
  );
}

export default App;

 

저장하면… 놀라지 마세요. 😮

 

바로 화면에 반영됩니다!

🔥 HMR 기능 덕분이에요!

  • HMR(Hot Module Replacement)은 코드 저장 시 자동 새로고침 없이 반영!

이제부터는 내 마음대로 컴포넌트도 추가하고, CSS도 꾸며보면서 진짜 프로젝트처럼 키워나갈 수 있어요.
처음의 이 한 걸음이, 나중엔 큰 앱으로 성장할 수도 있겠죠?

 

🧩 React 프로젝트, 이제 시작입니다!

오늘은 Vite를 활용한 React 프로젝트 시작 방법을 처음부터 끝까지 따라가 봤습니다.
생각보다 간단했죠?

CRA보다 훨씬 빠르고 가볍기 때문에, 앞으로 새 프로젝트는 이걸로 시작하는 게 좋습니다. 😊

정리해 보면 다음과 같아요.

  • Node.js 설치 여부 먼저 확인하고
  • npm create vite@latest 명령어로 새 프로젝트 생성
  • npm run dev로 바로 실행하고 확인까지 완료! 🔥

지금까지 잘 따라오셨다면, 앞으로 어떤 프로젝트든 가볍게 시작할 수 있을 거예요. 💪
다음 글에서는 React 컴포넌트를 좀 더 깊이 파보는 실전 예제를 다룰 예정이니 기대해주세요!

반응형

+ Recent posts