React
리μ‘νΈ λμμΈ ν¨ν΄μ λν΄μ..
π€ ν¬μ€ν μ΄μ 맀주 κΈ°μ λ©ν λμκ² νλ‘μ νΈ νΌλλ°±μ λ°κ³ μλλ°, λμμΈ ν¨ν΄μ λν΄ κ³΅λΆν΄ 보λΌλ νΌλλ°±μ λ°μλ€. μν λ―Ή ν¨ν΄.. λ¬΄μ¨ λ¬΄μ¨ ν¨ν΄.. μμλ₯Ό λ€μ΄μ£Όμ ¨λλ°, κΈ°μ ꡬνμλ§ μ΄μ μ λ§μΆλλΌ κ³΅λΆλ₯Ό λ―Έλ€λ€κ° μ€λμμμΌ μ°Ύμλ³Έλ€! π₯² κ³΅λΆ ν κ²°λ‘ ν νλ‘μ νΈμ λλΆλΆμ Presentational and Container Component Pattern (μ΄ν PCC) μ λ°λ₯΄κ³ μκ³ Pages μμ μν κ΄λ¦¬λ₯Ό νκ³ μλ λΆλΆμ Atomic Design Pattern (μ΄ν Atom) κ³Ό λΉμ·νλ€. PCC λ°©μμ μ¬μ©νλ©΄ κ΄μ¬μ¬ λΆλ¦¬λ₯Ό μν μ μλ€. λ‘μ§ λΆλΆκ³Ό UI λΆλ¦¬κ° μ©μ΄νλ€. κ·Έλ¬λ props λ릴λ§μ΄ λ§μ΄ μ겨μ μ½λκ° λ³΅μ‘ν΄μ§κ³ λ 립μ±μ΄ λ¨μ΄μ§λ€. Atom μ μ°λ©΄ μ»΄ν¬λ..
React μν κ΄λ¦¬ λΉκ΅ Redux & React Query & SWR
μν κ΄λ¦¬μ λν κ³ λ―Ό νλ‘μ νΈμ λκΈ κΈ°λ₯μ ꡬννλ μ€, μ΅κ΄μ μΌλ‘ μ¬μ©νλ 리λμ€ μ½λλ₯Ό κ±·μ΄λ΄κ³ λλ μλ‘μ΄ λ¬Έμ μ μ λ°κ²¬νμ΅λλ€. λκΈ μμ±, μ λ°μ΄νΈ, μμ μ μλ²μ API λ₯Ό μμ²νκ³ μλ΅ κ°μ λ°μ μ€κΈ°κΉμ§μ μκ°μ΄ κ½€λ(?) κΈΈλ€λ κ²μ λλ€. μλ΅κ°μ λ°λΌ μ±κ³΅ μ¬λΆλ₯Ό νλ¨νκ³ μΆκ°(μμ ,μμ ) λ λκΈμ 보μ¬μ£ΌκΈ° λλ¬Έμ μ΄ λΆλΆμ μ΄μ© μ μλ λΆλΆμ΄λΌλ μκ°μ΄ λ€μμ§λ§..? μκ°, λ€λ₯Έ μλΉμ€λ€μ μ΄λ»κ² μ€μκ°μΌλ‘ λ°μνμ§?! λΌλ μλ¬Έμ μ΄ λ€μμ΅λλ€. μ°Ύμ 보λ, ν΄κ²° λ°©λ²μ μμμ΅λλ€. μμ²μ΄ μ±κ³΅νμ κ²μ΄λΌ μμνκ³ κ°μ 미리 보μ¬μ£Όκ³ ! κ·Έ λ€μ μλ²μμ μλ΅ κ°μ λ°μμ λ, μ€ν¨νλ€λ©΄ κ°μ κ±°λ¬ λ€μ΄λ κ²μ λλ€. μ λ μ΄ λ°©λ²μ νμ©ν΄μΌ κ² λ€λ μκ°μ΄ λ€μκ³ ν νλ‘μ νΈμ μ..

React Redux Toolkit μ¬μ©νκΈ°
Redux Toolkit μ Redux λ₯Ό λ νΈνκ² μ°κΈ° μν΄ λμμ΅λλ€. κΈ°λ³Έ μ¬μ©λ²μ κ°μΌλ Module νμΌμ΄ λ κ°κ²°νκ² λ°λμμ΅λλ€. 1. ν΄ν· μ€μΉνκΈ° CRA λ₯Ό ν΅ν΄ μλ‘μ΄ νλ‘μ νΈλ₯Ό μμ±νκ³ yarn μ ν΅ν΄μ μλ ν¨ν€μ§λ₯Ό μ€μΉ yarn add react-redux @reduxjs/toolkit 2. Redux μ Redux Toolkit μ μ°¨μ΄μ ν° μ°¨μ΄μ μ Action Valueμ Action Creatorλ₯Ό μ΄μ μ§μ μμ±ν΄μ£Όμ§ μκ³ Action Value, Action Creator, Reducer κ° νλλ‘ ν©μ³μ‘λ€λ μ μ λλ€. νλλ‘ ν©μΉ λ Slice λΌλ API λ₯Ό μ¬μ©ν©λλ€. μ΄ Slice λ₯Ό μ¬μ©νλ©΄, ν λ²μ 3κ°κ° λ§λ€μ΄μ§λλ€. 3. Redux Toolkit μ¬μ©..

React Hook μ΄λ ?
Hook μ μ React 곡μ λ¬Έμμ Hook μ μ μμ λλ€. Hook μ ν¨μν μ»΄ν¬λνΈμμλ μλͺ μ£ΌκΈ° κΈ°λ₯μ μ¬μ©ν μ μκ² ν¨μΌλ‘μ¨, ν¨μν μ»΄ν¬λνΈμ νμ©μ±μ λμ΄κΈ° μν΄ λμ¨ ν¨μμ λλ€. λλΆμ 볡μ‘ν ν΄λμ€ν μ»΄ν¬λνΈλ§μ μ¬μ©νμ§ μμλ λ©λλ€. Hook μ νλ‘μ νΈμ λμ νκΈ° μν΄ κΈ°μ‘΄μ class ν μ»΄ν¬λνΈλ€μ μμ ν νμλ μλ€κ³ ν©λλ€. 곡μ λ¬Έμμμ μ€λͺ νλ―μ΄ μ μ§μ μΌλ‘ μ μ© ν΄λλ κ²μ΄ κΆμ₯λ©λλ€. Hook μ’ λ₯ 리μ‘νΈμμ μ 곡νλ Hook λ€μ΄ μμ΅λλ€. κ·Έλ¬λ μ¬μ©μλ€μ΄ νμν Hook μ λ§λ€μ΄μ μ¬μ©νκΈ°λ ν©λλ€. μ΄κ²μ Custom Hook μ΄λΌκ³ νλλ°, κ°μΈλ€μ΄ λ§λ μ μ©ν Hook λ€μ npm μ ν΅ν΄ λ€μ΄λ°μ μ¬μ©ν μλ μμ΅λλ€. 리μ‘νΈ κ³΅μ λ¬Έμμ λμ μλ H..
![React Life Cycle [ Class component μ Function component ]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp6jOc%2FbtrKIxeKp8w%2FNke1hHIpEB6q53215Itj31%2Fimg.png)
React Life Cycle [ Class component μ Function component ]
React Life Cycle μ΄λ? LifeCycle μ μ»΄ν¬λνΈμ μλͺ μ£ΌκΈ°μ λλ€. μ»΄ν¬λνΈκ° λΈλΌμ°μ μμ λνλκ³ , μ λ°μ΄νΈλκ³ , μ¬λΌμ§ λ νΈμΆλλ λ©μλλ€μ΄ μμ΅λλ€. μ΄ λ©μλλ€μ μλͺ μ£ΌκΈ° λ©μλλΌκ³ ν©λλ€. μ»΄ν¬λνΈλ Class component μ function component κ° μμ΅λλ€. Class Component Life Cycle Class Component μμλ λΌμ΄ν μ¬μ΄ν΄μ λ°λΌμ μ°λ¦¬κ° μνλ μκ°μ μνλ μ½λλ₯Όμ€νμν€κ³ μΆλ€λ©΄, μ ν΄μ§ λ©μλλ₯Ό ν΅ν΄μ μ¬μ©ν μ μμ΅λλ€. μλ function component μμλ λΆκ°λ₯νμ§λ§, νμ¬λ hook μ ν΅ν΄μ κ°λ₯νκ² λμμ΅λλ€. μ 체μ μΈ νλ¦μ μμ μ΄λ―Έμ§λ₯Ό μ°Έκ³ νμ§λ§ μΈλΆμ μΈ λ©μλλͺ μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ νμ΅λλ€...
React Ref μ Dom
Refλ render λ©μλμμ μμ±λ DOM λ Έλλ React μ리먼νΈμ μ κ·Όνλ λ°©λ²μ μ 곡ν©λλ€. μ§μ μ μΌλ‘ μμμ μμ ν΄μΌ νλ κ²½μ°κ° μμ΅λλ€. κ·Έ μμμ React μ»΄ν¬λνΈμ μΈμ€ν΄μ€ νΉμ Dom μλ¦¬λ¨ΌνΈ μΌ μλ μμ΅λλ€. λ κ°μ§ λͺ¨λ μμ ν μ μλ λ°©λ²μ΄ μμ΅λλ€. κ·Έλ¬λ Ref λ λ¨μ©νλ©΄ μλ©λλ€. νμν μν©μμλ§ μ¬μ©ν΄μΌ ν©λλ€. Refλ₯Ό μ¬μ©ν΄μΌ ν λ - ν¬μ»€μ€, ν μ€νΈ μ νμμ, νΉμ λ―Έλμ΄μ μ¬μμ κ΄λ¦¬ν λ. - μ λλ©μ΄μ μ μ§μ μ μΌλ‘ μ€νμν¬ λ. - μλ νν° DOM λΌμ΄λΈλ¬λ¦¬λ₯Ό Reactμ κ°μ΄ μ¬μ©ν λ ν΄λμ€ μ»΄ν¬λνΈμ ν¨μ μ»΄ν¬λνΈκ° ref λ₯Ό νμ©ν μ μλ λ²μκ° λ€λ¦ λλ€. ν¨μ μ»΄ν¬λνΈλ μΈμ€ν΄μ€κ° μκΈ° λλ¬Έμ ν¨μ μ»΄ν¬λνΈμ ref μ΄νΈλ¦¬λ·°νΈλ₯Ό μ¬μ©ν ..
React λ°μ΄ν° λ°μΈλ©
React λ λ¨λ°©ν₯ λ°μ΄ν° λ°μΈλ©μ ν©λλ€. λ°μ΄ν° λ°μΈλ©μ΄λ? νλ©΄μ 보μ΄λ λ°μ΄ν°μ λΈλΌμ°μ λ©λͺ¨λ¦¬μ μλ λ°μ΄ν°λ₯Ό μΌμΉ μν€λ κ²μ λ§ν©λλ€. MVC μμ View(νλ©΄μ 보μ΄λ λ°μ΄ν°, HTML) Model(λΈλΌμ°μ λ©λͺ¨λ¦¬μ μλ λ°μ΄ν°, JS) μ ν΄λΉλ©λλ€. λ°μ΄ν° λ°μΈλ©μ μλ°©ν₯κ³Ό λ¨λ°©ν₯μΌλ‘ λλ©λλ€. λ¨λ°©ν₯ λ°μ΄ν° λ°μΈλ© νμͺ½ λ°©ν₯μΌλ‘λ§ μ μ΄κ° κ°λ₯ν κ²μ μλ―Έν©λλ€. JS(Model) μμλ νλ©΄μ 보μ΄λ λ°μ΄ν°λ₯Ό μμ ν μ μμ΅λλ€. κ·Έλ¬λ μ¬μ©μλ νλ©΄μμ κ°μ λ³κ²½ν μλ μμ§λ§ JS μ μλ λ°μ΄ν°λ₯Ό μμ ν μ μμ΅λλ€. λλ¬Έμ νλ©΄μμ λ³κ²½λ κ°μ κ°μ§ν΄μ JS λ₯Ό μμ ν΄μΌ ν©λλ€. React μ κ²½μ° state κ° λ³κ²½μ΄ λλ©΄ set μΌλ‘ κ°μ λ°κΏ μ£Όλ μμ μ ν΄μΌ ν©λλ€...

React νλ‘μ νΈ GitHub Pages λ°°ν¬νκΈ°
https://github.com/ λ¨Όμ μ μ¬μ΄νΈμμ μλ‘μ΄ Repository λ₯Ό λ§λλλ€. νμ κ°μ μ ν΄μΌ λ§λ€ μ μμ΅λλ€. Repository λ©λ΄μ λ€μ΄κ°λ©΄ λ Ήμμ New λ²νΌμ΄ μμ΅λλ€. ν΄λ¦ν΄μ μ΄λ¦μ μμ±νκ³ public μΌλ‘ λ§λ€μ΄ μ€λλ€. μμ±μ νκ³ λλ©΄ λ°©κΈ λ§λ Repo λ₯Ό ν΄λ¦ν΄μ λ€μ΄κ°λλ€. κ·ΈλΌ μλμ κ°μ΄ λ¨λλ° μ¬κΈ°μ λ Ήμμ Code λ₯Ό ν΄λ¦νμ¬ Https νμ κ²½λ‘λ₯Ό 볡μ¬ν©λλ€. ν°λ―Έλμ μΌλλ€. μμμ λ§λ κΉν Repo μ μ°κ²°ν νλ‘μ νΈ ν΄λλ‘ μ΄λν©λλ€. cd git remote add origin μ΄λν νμ μμ κ°μ΄ μ λ ₯ν©λλ€. λΆλΆμλ μκΉ λ³΅μ¬ν github μ repo μ£Όμλ₯Ό λ£μ΄ μ€λλ€. μλ¬΄λ° μ€λ₯ λ©μμ§κ° λ¨μ§ μλλ€λ©΄ μ μ°κ²°λ κ²λλ€. gi..
React Component
Component μ μ μ»΄ν¬λνΈλ UIλ₯Ό μ¬μ¬μ© κ°λ₯ν κ°λ³μ μΈ μ‘°κ°μΌλ‘ λλ κ²μ λ§ν©λλ€. μ»΄ν¬λνΈλ React μ리먼νΈλ₯Ό λ°ννλλ°, μ리먼νΈλ νλ©΄μ νμν λ΄μ©μ κΈ°μ νλ React μ κ°μ₯ μμ λ¨μμ λλ€. 리μ‘νΈλ μ»΄ν¬λνΈλ€μ μ§ν©μ΄λΌκ³ ν μ μμ΅λλ€. μ»΄ν¬λνΈ λμ μ¬νμ©μ±μ λμ΄κ³ μ μ§λ³΄μλ₯Ό μ©μ΄νκ² ν μ μμ΅λλ€. μλνλ©΄ μ»΄ν¬λνΈλ λ 립μ μ΄κ³ κ³ λ¦½λμ΄μκ³ μ¬μ¬μ©μ΄ κ°λ₯νκΈ° λλ¬Έμ λλ€. μ»΄ν¬λνΈλ ν¨μν μ»΄ν¬λνΈμ ν΄λμ€ν μ»΄ν¬λνΈλ‘ λλ μ§λλ€. ν¨μν μ»΄ν¬λνΈλ μλμ κ°μ΄ μκ²Όμ΅λλ€. function Welcome(props) { return Hello, {props.name}; } ν΄λμ€ν μ»΄ν¬λνΈλ μλμ κ°μ΄ μκ²Όμ΅λλ€. class Welcome extends React.C..
React JSX λ?
JSX μ μ JSX λ JavaScript λ₯Ό νμ₯ν λ¬Έλ²μ λλ€. JSX νμμΌλ‘ μμ±ν μ½λλ λΈλΌμ°μ μμ μ€νλκΈ° μ , λ°λ²¨ Babel μ μ΄μ©ν΄ JSXλ₯Ό React.createElement() νΈμΆλ‘ μ»΄νμΌλ©λλ€. μ¦, JSX λ νΈνκ² React 'element' λ₯Ό μμ±νκΈ° μν΄ μ¬μ©ν©λλ€. const element = ( Hello, world! ); μμ μ½λκ° JSX λ¬Έλ²μΌλ‘ μμ±ν κ²μ λλ€. μ΄ μ½λλ μ»΄νμΌ ν μλμ κ°μ΄ λ³κ²½λ©λλ€. μλμ μ½λλ React μ리먼νΈμ λλ€. React λ μ΄ κ°μ²΄λ₯Ό μ½μ΄μ DOMμ ꡬμ±νκ³ μ΅μ μνλ‘ μ μ§νλ λ° μ¬μ©ν©λλ€. const element = React.createElement( 'h1', {className: 'greeting'}, '..