[React] ๐Ÿง  ๋ฆฌ์•กํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๋ฆฌ์•กํŠธ(React)๋Š” ํŽ˜์ด์Šค๋ถ์ด ๋งŒ๋“  ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋งํ•ด๋„ ์•„์ง ๊ฐ์ด ์•ˆ ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”. ๊ทธ๋ž˜์„œ ์ฐจ๊ทผ์ฐจ๊ทผ ํ’€์–ด๋ณผ๊ฒŒ์š”.


๐Ÿ‘€ ์›น์‚ฌ์ดํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ?

์›น์‚ฌ์ดํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํ๋ฆ„์œผ๋กœ ๋™์ž‘ํ•ด์š”:

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค
  2. ํ™”๋ฉด์˜ ์–ด๋–ค ๋‚ด์šฉ์ด ๋ฐ”๋€๋‹ค
  3. ์ด๊ฑธ ์œ„ํ•ด HTML/CSS/JavaScript๊ฐ€ ํ˜‘๋ ฅํ•œ๋‹ค

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

  • ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ํ™”๋ฉด์„ ์ง์ ‘ ์กฐ์ž‘(DOM ์กฐ์ž‘) ํ•ด์•ผ ํ•ด์š”.
  • ์ƒํƒœ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ์‹ค์ˆ˜ํ•˜๊ธฐ ์‰ฌ์›Œ์š”.

๐Ÿ˜“ ์ „ํ†ต์ ์ธ ๋ฐฉ์‹

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ„
  • JavaScript๊ฐ€ ์ง์ ‘ <div>์˜ ํ…์ŠคํŠธ๋ฅผ ๋ฐ”๊ฟ”์คŒ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒํƒœ๋ฅผ ์ผ์ผ์ด ์ถ”์ ํ•ด์•ผ ํ•จ

๐ŸŽ‰ ๊ทธ๋ž˜์„œ ๋‚˜์˜จ ๊ฒŒ ๋ฆฌ์•กํŠธ!

๋ฆฌ์•กํŠธ๋Š” ์ด๊ฑธ ํ›จ์”ฌ ๊น”๋”ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜์š”.

  • ๋ฐ์ดํ„ฐ(state)๊ฐ€ ๋ฐ”๋€Œ๋ฉด
  • ๋ฆฌ์•กํŠธ๊ฐ€ ์ž๋™์œผ๋กœ UI๋ฅผ ๋‹ค์‹œ ๊ทธ๋ ค์ค˜์š”

โ€œ๋ฐ์ดํ„ฐ ์ค‘์‹ฌโ€์œผ๋กœ UI๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ผ์š”.


๐Ÿ” ๋น„์œ ๋กœ ์ดํ•ดํ•ด๋ณด์ž

๋ฆฌ์•กํŠธ๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๊ฐ€์žฅ ์ข‹์€ ๋น„์œ ๋Š” โ€˜์ž๋™ ๊ณ„์‚ฐ๊ธฐโ€™์˜ˆ์š”.

  • ๊ณ„์‚ฐ๊ธฐ์— ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐฑ์‹ ๋˜์ฃ ?
  • ์šฐ๋ฆฌ๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•  ํ•„์š”๋Š” ์—†์–ด์š”.
  • ๋ฆฌ์•กํŠธ๋Š” ํ™”๋ฉด๋„ ์ด๋ ‡๊ฒŒ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ๋„๊ตฌ์˜ˆ์š”.

๐Ÿงฉ ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ ์š”์†Œ 3๊ฐ€์ง€

๋ฆฌ์•กํŠธ๋Š” ํฌ๊ฒŒ ์•„๋ž˜ 3๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋ผ์š”:

์š”์†Œ์„ค๋ช…
์ปดํฌ๋„ŒํŠธ (Component)์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์กฐ๊ฐ
์ƒํƒœ (State)๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ
๋ Œ๋”๋ง (Rendering)๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์ผ

๐Ÿ“ฆ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ์ฝ”๋“œ

function Welcome() {
  return <h1>์•ˆ๋…•ํ•˜์„ธ์š”, React!</h1>;
}

์ด๊ฑด โ€œWelcomeโ€์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •์˜ํ•œ ๊ฑฐ์˜ˆ์š”.
<Welcome />์ด๋ผ๊ณ  ์“ฐ๋ฉด ํ™”๋ฉด์— โ€œ์•ˆ๋…•ํ•˜์„ธ์š”, React!โ€๊ฐ€ ๋‚˜ํƒ€๋‚˜์ฃ .

๐Ÿ‘‰ ๋งˆ์น˜ ๋‚ด๊ฐ€ HTML ํƒœ๊ทธ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“  ๊ฒƒ์ฒ˜๋Ÿผ ์“ธ ์ˆ˜ ์žˆ์–ด์š”.


  1. ์‚ฌ์šฉ์ž ์ž…๋ ฅ โ†’
  2. ์ƒํƒœ(state)๊ฐ€ ๋ฐ”๋€œ โ†’
  3. ๋ฆฌ์•กํŠธ๊ฐ€ ์ƒˆ๋กœ์šด UI๋ฅผ ๊ณ„์‚ฐ โ†’
  4. ํ™”๋ฉด์ด ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋จ

์ด ๋ชจ๋“  ๊ฑธ ๋ฆฌ์•กํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” ๊ฒŒ ํ•ต์‹ฌ์ด์—์š”.


โœ… ์ •๋ฆฌ

  • ๋ฆฌ์•กํŠธ๋Š” ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์œผ๋กœ UI๋ฅผ ๋งŒ๋“œ๋Š” ๋„๊ตฌ์˜ˆ์š”.
  • ๋ณต์žกํ•œ ํ™”๋ฉด๋„ ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”.
  • ์ปดํฌ๋„ŒํŠธ์™€ ์ƒํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋ณ€ํ™”์— ๋”ฐ๋ผ UI๋ฅผ ๋‹ค์‹œ ๊ทธ๋ ค์ค˜์š”.

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•ญ๋ชฉ์€ *(์œผ)๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค