리μ‘νΈλ₯Ό μ΄ν΄νλ €λ©΄ “μ»΄ν¬λνΈ”λ₯Ό μ§μ λ§λ€μ΄λ³΄λ κ² κ°μ₯ λΉ λ₯Έ κΈΈμ
λλ€.
μ΄λ² κΈμμλ 리μ‘νΈ μ±μ λ§λλ 첫 λ¨κ³λΆν°, κΈ°λ³Έ μ»΄ν¬λνΈλ₯Ό λ§λ€κ³ μ¬μ©νλ λ°©λ²κΉμ§ μμ£Ό μ½κ² μλ €λ릴κ²μ.
1. 𧰠리μ‘νΈ μ± λ§λλ λ²
리μ‘νΈλ₯Ό μ²μλΆν° μ€μΉνλ κ°μ₯ μ¬μ΄ λ°©λ²μ Vite λλ Create React Appμ μ°λ κ²μ
λλ€.
μμ¦μ Viteκ° λΉ λ₯΄κ³ κ°λ²Όμμ λ§μ΄ μ¬μ©λκ³ μμ΄μ.
# μ€μΉ (Node.jsκ° νμν΄μ)
npm create vite@latest my-react-app --template react
cd my-react-app
npm install
npm run dev
π http://localhost:5173 μ μ μνλ©΄ 리μ‘νΈ μ±μ΄ μ€νλ©λλ€!
2. π ν΄λ ꡬ쑰 κ°λ¨ν 보기
my-react-app/
ββ src/
β ββ App.jsx β μ°λ¦¬κ° νΈμ§ν λ©μΈ μ»΄ν¬λνΈ
β ββ main.jsx β μ± μμ μ§μ (entry point)
ββ index.html
ββ package.json
μ°λ¦¬λ App.jsx νμΌμμ νλ©΄μ λνλ λ΄μ©μ μμ±ν κ±°μμ.
3. 𧩠첫 λ²μ§Έ μ»΄ν¬λνΈ λ§λ€κΈ°
μ»΄ν¬λνΈλ κ·Έλ₯ ν¨μ νλλΌκ³ μκ°νλ©΄ λ©λλ€.
function Hello() {
return <h1>μλ
νμΈμ, React!</h1>;
}
μ΄μ μ΄ μ»΄ν¬λνΈλ₯Ό App.jsx μμμ μ¬μ©ν΄λ³Ό μ μμ΄μ.
function App() {
return (
<div>
<Hello />;
</div>;
);
}
<Hello />λ μ°λ¦¬κ° λ§λ μ»΄ν¬λνΈλ₯Ό HTML νκ·Έμ²λΌ μ¬μ©νλ κ²μ
λλ€.
πΌοΈ μ»΄ν¬λνΈ κ΅¬μ‘° λ€μ΄μ΄κ·Έλ¨
μλ κ·Έλ¦Όμ μ»΄ν¬λνΈκ° μ€μ λ‘ μ΄λ»κ² μλνλμ§λ₯Ό 보μ¬μ€λλ€:

App μ»΄ν¬λνΈκ° Hello μ»΄ν¬λνΈλ₯Ό λΆλ¬μ€κ³ , μ΅μ’ μ μΌλ‘ λΈλΌμ°μ μλ “μλ νμΈμ, React!”κ° λνλ©λλ€.
4. π£οΈ κΌ μμλ λ¬Έλ² 2κ°μ§
- μ»΄ν¬λνΈ μ΄λ¦μ λ°λμ λλ¬Έμλ‘ μμ!
hello()β βHello()β - return μμλ JSX μ¬μ©
JSXλ JavaScript μμ HTMLμ²λΌ μ½λλ₯Ό μΈ μ μλ λ¬Έλ²μ λλ€.
π μ€μ΅ ν: λλ§μ μΈμ¬λ§ λ§λ€κΈ°
function Greeting(props) {
return <h2>μλ
νμΈμ, {props.name}λ</h>;
}
κ·Έλ¦¬κ³ μ΄λ κ² μ¨λ³΄μΈμ:
<Greeting name="μ§λ―Ό" />;
<Greeting name="λ―Όμ" />;
π‘ 리μ‘νΈλ props(μμ±)μ ν΅ν΄ λ€λ₯Έ λ°μ΄ν°λ₯Ό μ λ¬ν μ μμ΄μ.
β μ 리
- 리μ‘νΈ μ±μ Viteλ‘ κ°λ¨ν λ§λ€ μ μλ€
- μ»΄ν¬λνΈλ ν¨μλ€! β
<μ»΄ν¬λνΈμ΄λ¦ />μΌλ‘ μ¬μ© - JSX λ¬Έλ²μ μ¬μ©ν΄μ HTMLμ²λΌ UIλ₯Ό μμ±νλ€
- propsλ₯Ό ν΅ν΄ μ»΄ν¬λνΈμ κ°μ μ λ¬ν μ μλ€