[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λ₯Ό λ‹€μ‹œ κ·Έλ €μ€˜μš”.