ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

1. ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ž€?

  • ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” ํ•จ์ˆ˜๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ๋Š” ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋ ์ง€๋ฅผ ์ •์˜ํ•˜๋ฉฐ, React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

1-1. ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ ์˜ˆ์‹œ

// props๋ผ๋Š” ์ž…๋ ฅ์„ ๋ฐ›์•„ React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

// ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ
function App() {
  return <div>hello</div>;
}

 

 

 

2. ๋ฆฌ์•กํŠธ ์‹ค์Šต ๋‚ด์šฉ

์ปดํฌ๋„ŒํŠธ(ํ•จ์ˆ˜) ์ฝ”๋“œ ๊ธฐ๋ณธ ๊ตฌ์กฐ
2-1. ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ฐ˜๋“œ์‹œ ๊ฐ€์žฅ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
  • ํด๋”๋Š” ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์ž‘์„ฑํ•˜๊ณ ,
    ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ํŒŒ์ผ์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์ด๋ฆ„์„ ์ง“๋Š”๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ HTML ์•ˆ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ {} ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    => ๋ฆฌํ„ด๋ฌธ ์ดํ•˜์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด {}๋กœ ๊ฐ์‹ผ๋‹ค.

 

2-2. ๋ถ€๋ชจ-์ž์‹ ์ปดํฌ๋„ŒํŠธ 

  • ์ƒ์œ„์š”์†Œ : ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ 
  • ํ’ˆ์–ด์ง€๋Š” ์ปดํฌ๋„ŒํŠธ : ์ž์‹ ์ปดํฌ๋„ŒํŠธ
  • ๊ธฐ๋ณธ ํ˜•์‹
// src/App.js
import React from "react";

function Child() {
  return <div>๋‚˜๋Š” ์ž์‹์ž…๋‹ˆ๋‹ค.</div>;
}

function App() {
  return <Child />;
}

export default App;

 

  • ์—ฐ์Šต ๋ฌธ์ œ

3๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ํ• ์•„๋ฒ„์ง€, ์—„๋งˆ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์„œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ค๊ธฐ.

๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ

์ •๋‹ต

// src/App.js
import React from "react";

function Child() {
  return <div>์—ฐ๊ฒฐ ์„ฑ๊ณต</div>;
}

function Mother() {
  return <Child />;
}

function GrandFather() {
  return <Mother />;
}

function App() {
  return <GrandFather />;
}

export default App;

 

 

 

 

3. JSX (JavaScript XML)

  • ์ •์˜: ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ(ํ™”๋ฉด์— ๊ทธ๋ ค์ง€๋Š” HTML์  ์š”์†Œ)๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ•.
  • ์‹ค์Šต ์‹œ JSX์˜ ๊ทœ์น™๋“ค
๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ

1) ํƒœ๊ทธ๋Š” ๊ผญ ๋‹ซ์•„์ฃผ๊ธฐ

// input ํƒœ๊ทธ๋ฅผ ๋‹ซ์ง€ ์•Š๊ณ  ๋„ฃ์–ด๋ณผ๊ฑฐ์˜ˆ์š”!
function App() {
  return (
    <div className="App">
      <input type='text'>
    </div>
  );
}

๐Ÿ‘‡๐Ÿป

<input type='text'/>


2) ๋ฌด์กฐ๊ฑด ํ•œ๊ฐœ์˜ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ

import "./App.css";

function App() {
  return (
    <p>์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฆฌ์•กํŠธ ๋ฐ˜์ž…๋‹ˆ๋‹ค :)</p>

    <div className="App">
      <input type='text'/>
    </div>
  );
}

export default App;

๐Ÿ‘‡๐Ÿป

import "./App.css";

function App() {
  return (
    <div className="App">
      <p>์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฆฌ์•กํŠธ ๋ฐ˜์ž…๋‹ˆ๋‹ค :)</p>
      <input type="text" />
    </div>
  );
}

export default App;


3) JSX์—์„œ javascript ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ค‘๊ด„ํ˜ธ๋ฅผ ์“ด๋‹ค.

function App() {
	const cat_name = 'perl';
  return (
    <div>
      hello {cat_name}!
    </div>
  );
}
import React from 'react';
import logo from './logo.svg';
import './App.css';

function App() {
  const number = 1;

  return (
    <div className="App">
      <p>์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฆฌ์•กํŠธ ๋ฐ˜์ž…๋‹ˆ๋‹ค :)</p>
      {/* JSX ๋‚ด์—์„œ ์ฝ”๋“œ ์ฃผ์„์€ ์ด๋ ‡๊ฒŒ ์”๋‹ˆ๋‹ค :) */}
      {/* ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์š” */}
      <p>{number > 10 ? number+'์€ 10๋ณด๋‹ค ํฌ๋‹ค': number+'์€ 10๋ณด๋‹ค ์ž‘๋‹ค'}</p>
    </div>
  );
}

export default App;


4) class ๋Œ€์‹  className

<div className="App">


5) ์ธ๋ผ์ธ์œผ๋กœ style ์ฃผ๊ธฐ

[HTML]

<p style="color: orange; font-size: 20px;">orange</p>

 

[JSX]

// ์ค‘๊ด„ํ˜ธ๋ฅผ ๋‘ ๋ฒˆ ์“ฐ๋Š” ์ด์œ ? ๊ฐ์ฒด๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‹ˆ๊นŒ์š”!
// ์ด๋ ‡๊ฒŒ ์“ฐ๊ฑฐ๋‚˜,
<p style={{color: 'orange', fontSize: '20px'}}>orange</p>

//ํ˜น์€ ์Šคํƒ€์ผ ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜๋กœ ๋งŒ๋“ค๊ณ  ์“ธ ์ˆ˜ ์žˆ์–ด์š”!
function App() {
  const styles = {
    color: 'orange',
    fontSize: '20px'
  };

  return (
    <div className="App">
      <p style={styles}>orange</p>
    </div>
  );
}

 

 

4. ๋ถˆ๋ณ€์„ฑ (Immutability)

  • ๋ถˆ๋ณ€์„ฑ์˜ ๊ฐœ๋…
    • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ → ๋ถˆ๋ณ€์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ.
    • ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ํ•œ ์ƒํ™ฉ → ๋ถˆ๋ณ€์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ.
    • ์ค‘์š”ํ•œ ์ : ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • spread operator ์‚ฌ์šฉ: ๊ธฐ์กด ์ƒํƒœ๋ฅผ ๋ณต์‚ฌํ•œ ๋’ค ์—…๋ฐ์ดํŠธ.

4-1. ๋ฆฌ์•กํŠธ์—์„œ ๋ถˆ๋ณ€์„ฑ์ด ๊ฐ€์ง€๋Š” ์˜์˜โญ๏ธโญ๏ธ

  • ๋ฆฌ์•กํŠธ๋Š” ํ™”๋ฉด ๋ฆฌ๋ Œ๋”๋ง ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ state ๋ณ€ํ™”๋ฅผ ํ™•์ธ.
    • state๊ฐ€ ๋ณ€ํ•จ → ๋ฆฌ๋ Œ๋”๋ง ๋ฐœ์ƒ.
    • state๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์Œ → ๋ฆฌ๋ Œ๋”๋ง ์—†์Œ.
  • ๋ณ€ํ™” ํ™•์ธ ๋ฐฉ์‹: state์˜ ๋ณ€ํ™” ์ „ํ›„ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋น„๊ต.
 
 
 
 

 

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ