๐ [Recat] React์ฑ ๋๋ฒ๊น ํ๊ธฐ
![๐ [Recat] React์ฑ ๋๋ฒ๊น
ํ๊ธฐ](/assets/img/thumbnail/react-thumbnail.jpg)
[Recat] React์ฑ ๋๋ฒ๊น ํ๊ธฐ
๋๋ฒ๊น ๋ณด์กฐ ๋๊ตฌ: React StrictMode
- ๋ชจ๋ ์ปดํฌ๋ํธ์ ํจ์๋ฅผ ๋ ๋ฒ ์คํ (๊ฐ๋ฐํ๊ฒฝ ํ์ )
- ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ ๋์ ํจํด์ ๋ฏธ๋ฆฌ ๊ฐ์ง ๊ฐ๋ฅ
// index.jsx
import { StrictMode } from "react";
root.render(
<StrictMode>
<App />
</StrictMode>
);
- ์ ์ฒด ์ฑ ๋๋ ํน์ ์ปดํฌ๋ํธ๋ง ๊ฐ์ ์๋ ์์
๊ฐ์งํ ์ ์๋ ๋ฌธ์
- ๋ฆฌ๋ ๋๋ง ์ ๊ฐ์ ๋ฐฐ์ด์ ์ฌ์ฌ์ฉ โ key ์ค๋ณต, ๋ฉ๋ชจ๋ฆฌ ๊ณต์
- ์ด์ค ์คํ ์ ์ฆ์๋๋ ํ ์ด๋ธ โ ๋ฐฐ์ด์ด ๊ณ์ ๋์ ๋๊ณ ์ด๊ธฐํ๋์ง ์์
React Developer Tools
- ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น
Components
ํญ: ์ปดํฌ๋ํธ ํธ๋ฆฌ, props, state ํ์ธ ๊ฐ๋ฅProfiler
: ์ฑ๋ฅ ์ต์ ํ ๋ถ์ ๊ฐ๋ฅ (์ถํ ํ์ต)- ์ค์น ์๋ฃ ํ ๊ฐ๋ฐ์ ๋๊ตฌ(F12)์ ์๋ก์ด ๋ ๊ฐ์ ํญ ์์ฑ
โ๏ธ Components
Profiler
Components ํญ ์ฃผ์ ๊ธฐ๋ฅ
์ปดํฌ๋ํธ ํธ๋ฆฌ ๊ตฌ์กฐ ์๊ฐํ
- ๋ฃจํธ ์ปดํฌ๋ํธ(App)์ ๊ทธ ํ์ ์ปดํฌ๋ํธ(UserInput, Results ๋ฑ)๋ฅผ ํธ๋ฆฌ ํํ๋ก ํ์ธ ๊ฐ๋ฅ
- ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ํด๋น ์ปดํฌ๋ํธ๊ฐ UI์ ์ด๋ค ๋ถ๋ถ์ธ์ง ์๊ฐ์ ์ผ๋ก ๊ฐ์กฐ
์ปดํฌ๋ํธ ์ํ ๋ฐ props ํ์ธ
- ์ ํํ ์ปดํฌ๋ํธ์ props(์์ฑ) ์ state(์ํ) ๊ฐ์ ํ์ธ ๊ฐ๋ฅ
- ์์:
UserInput
์ปดํฌ๋ํธ:onChange
: handleChange ํจ์ ์ ๋ฌ๋จuserInput
: ์ฌ๋ฌ ์ซ์ ๊ฐ๋ค์ ๋ด์ ๊ฐ์ฒด
App
์ปดํฌ๋ํธ:state
๊ฐ๋ค(duration
,annualInvestment
๋ฑ)์ด hooks ํ์์ ํ์๋จ
์ค์๊ฐ ๊ฐ ์์ ๊ธฐ๋ฅ
- components ํญ์์
state
๋props
์ ๊ฐ์ ์ง์ ์์ ๊ฐ๋ฅ - ์:
duration
์ 12๋ก ๋ณ๊ฒฝํ๋ฉด ์ฆ์ UI๊ฐ ์ฌ๋ ๋๋ง๋์ด ๊ทธ ํจ๊ณผ๋ฅผ ํ์ธํ ์ ์์
Profiler ํญ (์ฑ๋ฅ ๋ถ์)
- ๋์ค์ ๋ค๋ฃฐ ๊ณ ๊ธ ์ฃผ์
- ๋ ๋๋ง ์๊ฐ๊ณผ ์ฑ๋ฅ ๋ณ๋ชฉ์ ํ์ ํ์ฌ ์ฑ์ ์ต์ ํํ๋ ๋ฐ ์ฌ์ฉ
๐ Reference
- ใํ๊ธ์๋งใ React ์๋ฒฝ ๊ฐ์ด๋ 2025 with React Router & Redux | Udemy
- ์ด๋ฏธ์ง ์ถ์ Freepik | ์ฌ์ธ์ AI ํฌ๋ฆฌ์์ดํฐ๋ธ ํด