์ด๊ณ ์ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ฐ์ ํํค์ณ ๋ณด์ธ์. ์ด ์ข ํฉ ๊ฐ์ด๋๋ React ํ๋กํ์ผ๋ฌ ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ, ์ฌ์ฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ถ๊ตฌํ๋ ๊ธ๋ก๋ฒ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ๊ตฌํฉ๋๋ค.
React ์ฑ๋ฅ ๋ง์คํฐํ๊ธฐ: React ํ๋กํ์ผ๋ฌ ์ปดํฌ๋ํธ ์ฌ์ธต ๋ถ์
์ญ๋์ ์ธ ์น ๊ฐ๋ฐ์ ์ธ๊ณ์์, ๋งค๋๋ฝ๊ณ ๋ฐ์์ด ๋น ๋ฅธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ธ๊ธฐ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ React๋ก ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ, ์ฑ๋ฅ์ ์ดํดํ๊ณ ์ต์ ํํ๋ ๊ฒ์ ๋ชจ๋ฒ ์ฌ๋ก์ผ ๋ฟ๋ง ์๋๋ผ ํ์์ ๋๋ค. React ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๋๊ตฌ ์ค ํ๋๋ React ํ๋กํ์ผ๋ฌ ์ปดํฌ๋ํธ์ ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋๋ React ํ๋กํ์ผ๋ฌ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํตํด ์ด๋ป๊ฒ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฅด๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋์ง ์ฌ์ธต์ ์ผ๋ก ์์๋ณผ ๊ฒ์ ๋๋ค.
React ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฑ๋ฅ์ด ์ค์ํ ์ด์
ํ๋กํ์ผ๋ฌ์ ์ธ๋ถ ์ฌํญ์ ์ดํด๋ณด๊ธฐ ์ ์, ํนํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๋ ์ฑ๋ฅ์ด ์ ๊ทธ๋ ๊ฒ ์ค์ํ์ง ์์๋ณด๊ฒ ์ต๋๋ค:
- ์ฌ์ฉ์ ์ ์ง ๋ฐ ๋ง์กฑ๋: ๋ก๋ฉ์ด ๋๋ฆฌ๊ฑฐ๋ ๋ฐ์์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์๊ฐ ์ดํํ๋ ์ฃผ๋ ์ด์ ์ ๋๋ค. ๋ค์ํ ์ง๋ฆฌ์ ์์น, ์ธํฐ๋ท ์๋, ๊ธฐ๊ธฐ ์ฑ๋ฅ์ ๊ฐ์ง ์ฌ์ฉ์๋ค์๊ฒ ๋ง์กฑ๊ฐ์ ์ฃผ๊ธฐ ์ํด์๋ ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์์ ์ ๋๋ค.
- ์ ํ์จ: ์ ์์๊ฑฐ๋ ๋ฐ ์๋น์ค ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฌ์ํ ์ง์ฐ์กฐ์ฐจ ์ ํ์จ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ํํ ์ฑ๋ฅ์ ๋ ๋์ ๋น์ฆ๋์ค ๊ฒฐ๊ณผ๋ก ์ง์ ์ด์ด์ง๋๋ค.
- SEO ์์: ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ ํ์ด์ง ์๋๋ฅผ ์์ ๊ฒฐ์ ์์ธ์ผ๋ก ๊ณ ๋ คํฉ๋๋ค. ์ฑ๋ฅ์ด ์ข์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋์ ์์๋ฅผ ์ฐจ์งํ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ฐ์์ฑ์ ๋์ ๋๋ค.
- ์ ๊ทผ์ฑ: ์ฑ๋ฅ์ ์ ๊ทผ์ฑ์ ํต์ฌ์ ์ธ ์ธก๋ฉด์ ๋๋ค. ์ ์ฌ์ ๊ธฐ๊ธฐ๋ ๋๋ฆฐ ๋คํธ์ํฌ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ํํ๊ฒ ์คํ๋๋๋ก ๋ณด์ฅํ๋ฉด ์ ์ธ๊ณ์ ๋ ๋์ ๋ฒ์์ ์ฌ์ฉ์๊ฐ ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ๋ฆฌ์์ค ํจ์จ์ฑ: ์ต์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ ์ ๋ฆฌ์์ค(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์ญํญ)๋ฅผ ์๋นํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ๊ฒฝํ์ ์ ๊ณตํ๊ณ ์ ์ฌ์ ์ผ๋ก ์ธํ๋ผ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
React ํ๋กํ์ผ๋ฌ ์ปดํฌ๋ํธ ์๊ฐ
React ํ๋กํ์ผ๋ฌ๋ React ์์ฒด์์ ์ ๊ณตํ๋ ๋ด์ฅ ์ปดํฌ๋ํธ๋ก, React ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ธก์ ํ๋ ๋ฐ ๋์์ ์ฃผ๊ธฐ ์ํด ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. ์ด ์ปดํฌ๋ํธ๋ ์ปค๋ฐ ์๊ฐ์ ๊ธฐ๋กํ์ฌ ์ด๋ค ์ปดํฌ๋ํธ๊ฐ ๋๋ฌด ์์ฃผ ๋ ๋๋ง๋๊ฑฐ๋ ๋ ๋๋ง์ ๋๋ฌด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋์ง ์๋ณํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด ๋ฐ์ดํฐ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ ํํ ์ฐพ์๋ด๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
ํ๋กํ์ผ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก React ๊ฐ๋ฐ์ ๋๊ตฌ ๋ธ๋ผ์ฐ์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ํตํด ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ํ๋กํ์ผ๋ง์ ์ํ ์ ์ฉ ํญ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ์ธกํ๊ณ ์ปดํฌ๋ํธ ๋ ๋๋ง ์ฃผ๊ธฐ์ ๋ํ ์์ธ ์ ๋ณด๋ฅผ ์์งํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค.
React ํ๋กํ์ผ๋ง์ ํต์ฌ ๊ฐ๋
React ํ๋กํ์ผ๋ฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด ๋ช ๊ฐ์ง ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
- ์ปค๋ฐ(Commits): React์์ ์ปค๋ฐ์ ๊ฐ์ DOM๊ณผ ์ค์ DOM์ ์ผ์น์ํค๋ ๊ณผ์ ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ(state)๋ ์์ฑ(props) ๋ณ๊ฒฝ์ ๋ฐ๋ผ React๊ฐ UI๋ฅผ ์ ๋ฐ์ดํธํ ๋ ๋ฐ์ํฉ๋๋ค. ํ๋กํ์ผ๋ฌ๋ ๊ฐ ์ปค๋ฐ์ ์์๋ ์๊ฐ์ ์ธก์ ํฉ๋๋ค.
- ๋ ๋(Render): ๋ ๋ ๋จ๊ณ๋ React๊ฐ ํ์ฌ ์ถ๋ ฅ(๊ฐ์ DOM)์ ์ป๊ธฐ ์ํด ์ปดํฌ๋ํธ ํจ์๋ ํด๋์ค ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋์ ๋๋ค. ์ปดํฌ๋ํธ๊ฐ ๋ณต์กํ๊ฑฐ๋ ๋ถํ์ํ๊ฒ ๋ค์ ๋ ๋๋ง๋๋ฉด ์ด ๋จ๊ณ์์ ์๊ฐ์ด ๋ง์ด ์์๋ ์ ์์ต๋๋ค.
- ์กฐ์ (Reconciliation): React๊ฐ UI์์ ๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง ํ๋จํ๊ณ ํจ์จ์ ์ผ๋ก DOM์ ์ ๋ฐ์ดํธํ๋ ๊ณผ์ ์ ๋๋ค.
- ํ๋กํ์ผ๋ง ์ธ์ (Profiling Session): ํ๋กํ์ผ๋ง ์ธ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ๋ ๋์ ์ผ์ ๊ธฐ๊ฐ ๋์์ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
React ํ๋กํ์ผ๋ฌ ์์ํ๊ธฐ
React ํ๋กํ์ผ๋ฌ๋ฅผ ๊ฐ์ฅ ์ฝ๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ React ๊ฐ๋ฐ์ ๋๊ตฌ ๋ธ๋ผ์ฐ์ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ ๊ฒ์ ๋๋ค. Chrome, Firefox, Edge์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด ๋๊ตฌ๋ ํ๋กํ์ผ๋ฌ๋ฅผ ํฌํจํ์ฌ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒ์ฌํ๊ณ ๋๋ฒ๊น ํ๊ธฐ ์ํ ๋ค์ํ ์ ํธ๋ฆฌํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ค์น๊ฐ ์๋ฃ๋๋ฉด ๋ธ๋ผ์ฐ์ ์์ React ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ณ ๊ฐ๋ฐ์ ๋๊ตฌ(๋ณดํต F12๋ฅผ ๋๋ฅด๊ฑฐ๋ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ์ฌ "๊ฒ์ฌ" ์ ํ)๋ฅผ ์ฝ๋๋ค. "Components"๋ "Network"์ ๊ฐ์ ๋ค๋ฅธ ํญ ์์ "Profiler" ํญ์ด ๋ณด์ผ ๊ฒ์ ๋๋ค.
ํ๋กํ์ผ๋ฌ ํญ ์ฌ์ฉํ๊ธฐ
ํ๋กํ์ผ๋ฌ ํญ์ ์ผ๋ฐ์ ์ผ๋ก ํ์๋ผ์ธ ๋ทฐ์ ํ๋ ์ ๊ทธ๋ํ ๋ทฐ๋ฅผ ์ ๊ณตํฉ๋๋ค:
- ํ์๋ผ์ธ ๋ทฐ(Timeline View): ์ด ๋ทฐ๋ ์ปค๋ฐ์ ์๊ฐ ์ ๊ธฐ๋ก์ ๋ณด์ฌ์ค๋๋ค. ๊ฐ ๋ง๋๋ ์ปค๋ฐ์ ๋ํ๋ด๋ฉฐ, ๊ธธ์ด๋ ํด๋น ์ปค๋ฐ์ ์์๋ ์๊ฐ์ ๋ํ๋ ๋๋ค. ๋ง๋ ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ๊ด๋ จ๋ ์ปดํฌ๋ํธ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ํ๋ ์ ๊ทธ๋ํ ๋ทฐ(Flame Graph View): ์ด ๋ทฐ๋ ์ปดํฌ๋ํธ ํธ๋ฆฌ์ ๊ณ์ธต์ ํํ์ ์ ๊ณตํฉ๋๋ค. ๋ ๋์ ๋ง๋๋ ๋ ๋๋ง์ ๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ ์ปดํฌ๋ํธ๋ฅผ ๋ํ๋ ๋๋ค. ์ด๋ฅผ ํตํด ์ด๋ค ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ์๊ฐ์ ๊ฐ์ฅ ํฐ ๊ธฐ์ฌ๋ฅผ ํ๋์ง ๋น ๋ฅด๊ฒ ์๋ณํ ์ ์์ต๋๋ค.
ํ๋กํ์ผ๋ง์ ์์ํ๋ ค๋ฉด:
- React ๊ฐ๋ฐ์ ๋๊ตฌ์ "Profiler" ํญ์ผ๋ก ์ด๋ํฉ๋๋ค.
- "Record" ๋ฒํผ(๋ณดํต ์ ๋ชจ์ ์์ด์ฝ)์ ํด๋ฆญํฉ๋๋ค.
- ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ์ผ๋ก ์์ฌ๋๋ ์์ ์ ์ํํ๋ฉฐ ํ์์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํฉ๋๋ค.
- ๊ด๋ จ ์ํธ ์์ฉ์ ์บก์ฒํ์ผ๋ฉด "Stop" ๋ฒํผ(๋ณดํต ์ฌ๊ฐํ ๋ชจ์ ์์ด์ฝ)์ ํด๋ฆญํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ํ๋กํ์ผ๋ฌ๊ฐ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ํ์ํ์ฌ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ์ ๋ถ์ํ ์ ์๊ฒ ํด์ค๋๋ค.
ํ๋กํ์ผ๋ฌ ๋ฐ์ดํฐ ๋ถ์: ๋ฌด์์ ์ฐพ์์ผ ํ ๊น
ํ๋กํ์ผ๋ง ์ธ์ ์ ์ค์งํ๋ฉด ์ง์ง ์์ ์ด ์์๋ฉ๋๋ค: ๋ฐ๋ก ๋ฐ์ดํฐ ๋ถ์์ ๋๋ค. ๋ค์์ ์ฃผ๋ชฉํด์ผ ํ ์ฃผ์ ์ธก๋ฉด์ ๋๋ค:
1. ๋๋ฆฐ ๋ ๋๋ง ์๋ณํ๊ธฐ
์๋นํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ปค๋ฐ์ ์ฐพ์ผ์ธ์. ํ์๋ผ์ธ ๋ทฐ์์๋ ๊ฐ์ฅ ๊ธด ๋ง๋๊ฐ ๋ ๊ฒ์ ๋๋ค. ํ๋ ์ ๊ทธ๋ํ์์๋ ๊ฐ์ฅ ๋์ ๋ง๋๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ค์ฉ์ ์ธ ํต์ฐฐ: ๋๋ฆฐ ์ปค๋ฐ์ ์ฐพ์ผ๋ฉด ํด๋ฆญํ์ฌ ์ด๋ค ์ปดํฌ๋ํธ๊ฐ ๊ด๋ จ๋์๋์ง ํ์ธํ์ธ์. ํ๋กํ์ผ๋ฌ๋ ๋ณดํต ํด๋น ์ปค๋ฐ ๋์ ๋ ๋๋ง๋ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์กฐ ํ์ํ๊ณ ์์ ์๊ฐ์ ์๋ ค์ค๋๋ค.
2. ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง ๊ฐ์งํ๊ธฐ
์ฑ๋ฅ ๋ฌธ์ ์ ์ผ๋ฐ์ ์ธ ์์ธ ์ค ํ๋๋ props๋ state๊ฐ ์ค์ ๋ก ๋ณ๊ฒฝ๋์ง ์์์์๋ ์ปดํฌ๋ํธ๊ฐ ๋ค์ ๋ ๋๋ง๋๋ ๊ฒ์ ๋๋ค. ํ๋กํ์ผ๋ฌ๋ ์ด๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.
์ฐพ์์ผ ํ ๊ฒ:
- ๋ช ๋ฐฑํ ์ด์ ์์ด ๋งค์ฐ ์์ฃผ ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ.
- props์ state๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ณด์์๋ ๋ถ๊ตฌํ๊ณ ์ค๋ซ๋์ ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ.
- "Why did this render?" ๊ธฐ๋ฅ(๋์ค์ ์ค๋ช )์ด ์ฌ๊ธฐ์ ์ค์ํฉ๋๋ค.
์ค์ฉ์ ์ธ ํต์ฐฐ: ๋ง์ฝ ์ปดํฌ๋ํธ๊ฐ ๋ถํ์ํ๊ฒ ๋ฆฌ๋ ๋๋ง๋๊ณ ์๋ค๋ฉด, ๊ทธ ์ด์ ๋ฅผ ์กฐ์ฌํ์ธ์. ์ผ๋ฐ์ ์ธ ์์ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋งค ๋ ๋๋ง๋ง๋ค ์๋ก์ด ๊ฐ์ฒด๋ ๋ฐฐ์ด ๋ฆฌํฐ๋ด์ props๋ก ์ ๋ฌํ๋ ๊ฒฝ์ฐ.
- ๋ง์ ์๋น ์ปดํฌ๋ํธ์์ ๋ฆฌ๋ ๋๋ง์ ์ ๋ฐํ๋ ์ปจํ ์คํธ ์ ๋ฐ์ดํธ.
- ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋๋ฉด์ props๊ฐ ๋ณ๊ฒฝ๋์ง ์์์์๋ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋๋ ๊ฒฝ์ฐ.
3. ์ปดํฌ๋ํธ ๊ณ์ธต ๊ตฌ์กฐ ๋ฐ ๋ ๋๋ง ๋น์ฉ ์ดํดํ๊ธฐ
ํ๋ ์ ๊ทธ๋ํ๋ ๋ ๋๋ง ํธ๋ฆฌ๋ฅผ ์ดํดํ๋ ๋ฐ ํ์ํฉ๋๋ค. ๊ฐ ๋ง๋์ ๋๋น๋ ํด๋น ์ปดํฌ๋ํธ์ ๊ทธ ์์๋ค์ ๋ ๋๋งํ๋ ๋ฐ ์์๋ ์๊ฐ์ ๋ํ๋ ๋๋ค.
์ฐพ์์ผ ํ ๊ฒ:
- ํ๋ ์ ๊ทธ๋ํ ์๋จ์์ ๋์ ์ปดํฌ๋ํธ (์ฆ, ๋ ๋๋ง์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ปดํฌ๋ํธ).
- ์ฌ๋ฌ ์ปค๋ฐ์ ๊ฑธ์ณ ํ๋ ์ ๊ทธ๋ํ์ ์์ฃผ ๋ํ๋๋ ์ปดํฌ๋ํธ.
์ค์ฉ์ ์ธ ํต์ฐฐ: ๋ง์ฝ ์ปดํฌ๋ํธ๊ฐ ์ง์์ ์ผ๋ก ๋๊ฒ ๋ํ๋๋ค๋ฉด, ๋ ๋๋ง ๋ก์ง์ ์ต์ ํํ๋ ๊ฒ์ ๊ณ ๋ คํด๋ณด์ธ์. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค:
React.memo
(ํจ์ํ ์ปดํฌ๋ํธ) ๋๋PureComponent
(ํด๋์คํ ์ปดํฌ๋ํธ)๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ ํ๊ธฐ.- ๋ณต์กํ ์ปดํฌ๋ํธ๋ฅผ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ปดํฌ๋ํธ๋ก ๋ถํดํ๊ธฐ.
- ๊ธด ๋ชฉ๋ก์ ๋ํด ๊ฐ์ํ์ ๊ฐ์ ๊ธฐ์ ์ฌ์ฉํ๊ธฐ.
4. "Why did this render?" ๊ธฐ๋ฅ ํ์ฉํ๊ธฐ
์ด๊ฒ์ ์๋ง๋ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋๋ฒ๊น ํ๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ผ ๊ฒ์ ๋๋ค. ํ๋กํ์ผ๋ฌ์์ ์ปดํฌ๋ํธ๋ฅผ ์ ํํ๋ฉด, ์ข ์ข ๋ฆฌ๋ ๋๋ง๋ ์ด์ ์ ๋ํ ๋ถ์์ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ์ ๋ฐํ ํน์ prop์ด๋ state ๋ณ๊ฒฝ ์ฌํญ์ ๋์ดํฉ๋๋ค.
์ฐพ์์ผ ํ ๊ฒ:
- ๋ณ๊ฒฝ๋์ง ์์์ ๊ฒ์ผ๋ก ์์ํ ๋ ๋ฆฌ๋ ๋๋ง ์ด์ ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ ์ปดํฌ๋ํธ.
- ์์์น ๋ชปํ๊ฑฐ๋ ์ฌ์ํด ๋ณด์ด๋ props์ ๋ณ๊ฒฝ.
์ค์ฉ์ ์ธ ํต์ฐฐ: ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๊ทผ๋ณธ ์์ธ์ ์๋ณํ์ธ์. ์๋ฅผ ๋ค์ด, prop์ด ๋ถ๋ชจ์ ๋ชจ๋ ๋ ๋๋ง์์ ์ฌ์์ฑ๋๋ ๊ฐ์ฒด๋ผ๋ฉด ๋ถ๋ชจ์ state๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
ํ๊ฑฐ๋ props๋ก ์ ๋ฌ๋๋ ํจ์์ useCallback
์ ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค.
ํ๋กํ์ผ๋ฌ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํ ์ต์ ํ ๊ธฐ๋ฒ
React ํ๋กํ์ผ๋ฌ์์ ์ป์ ํต์ฐฐ๋ ฅ์ผ๋ก ๋ฌด์ฅํ๋ค๋ฉด, ๋ชฉํ์ ๋ง๋ ์ต์ ํ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค:
1. React.memo
์ useMemo
๋ฅผ ์ฌ์ฉํ ๋ฉ๋ชจ์ด์ ์ด์
React.memo
: ์ด ๊ณ ์ฐจ ์ปดํฌ๋ํธ๋ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
ํฉ๋๋ค. React๋ props๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ ๋ ๋๋ง์ ๊ฑด๋๋๋๋ค. ๋์ผํ props๋ก ์์ฃผ ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ์ ํนํ ์ ์ฉํฉ๋๋ค.
์์:
const MyComponent = React.memo(function MyComponent(props) {
/* render logic */
});
useMemo
: ์ด ํ
์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
ํฉ๋๋ค. ๋งค ๋ ๋๋ง๋ง๋ค ์ํ๋๋ ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณ์ฐ์ ์ ์ฉํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ์์กด์ฑ ์ค ํ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง ๋ค์ ๊ณ์ฐ๋ฉ๋๋ค.
์์:
const memoizedValue = React.useMemo(() => computeExpensiveValue(a, b), [a, b]);
2. useCallback
์ผ๋ก ์ต์ ํํ๊ธฐ
useCallback
์ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์
ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๋ฉ๋ชจ์ด์ ์ด์
๋ ์์ ์ปดํฌ๋ํธ์ ํจ์๋ฅผ props๋ก ์ ๋ฌํ ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ถ๋ชจ๊ฐ ๋ฆฌ๋ ๋๋ง๋๋ฉด ์๋ก์ด ํจ์ ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด ๋ฉ๋ชจ์ด์ ์ด์
๋ ์์์ด ๋ถํ์ํ๊ฒ ๋ฆฌ๋ ๋๋ง๋ ์ ์์ต๋๋ค. useCallback
์ ํจ์ ์ฐธ์กฐ๊ฐ ์์ ์ ์ผ๋ก ์ ์ง๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์์:
const handleClick = React.useCallback(() => {
doSomething(a, b);
}, [a, b]);
3. ๊ธด ๋ชฉ๋ก์ ์ํ ๊ฐ์ํ
์ ํ๋ฆฌ์ผ์ด์
์ด ๊ธด ๋ฐ์ดํฐ ๋ชฉ๋ก์ ํ์ํ๋ ๊ฒฝ์ฐ, ๋ชจ๋ ํญ๋ชฉ์ ํ ๋ฒ์ ๋ ๋๋งํ๋ฉด ์ฑ๋ฅ์ ์ฌ๊ฐํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์๋์ ๋๋ ๊ฐ์ํ(react-window
๋๋ react-virtualized
์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ)์ ๊ฐ์ ๊ธฐ์ ์ ํ์ฌ ๋ทฐํฌํธ์ ๋ณด์ด๋ ํญ๋ชฉ๋ง ๋ ๋๋งํ์ฌ ๋์ฉ๋ ๋ฐ์ดํฐ์
์ ์ฑ๋ฅ์ ๊ทน์ ์ผ๋ก ํฅ์์ํต๋๋ค.
ํ๋กํ์ผ๋ฌ๋ ๊ธด ๋ชฉ๋ก ๋ ๋๋ง์ด ์ค์ ๋ก ๋ณ๋ชฉ ํ์์์ ํ์ธํ๋ ๋ฐ ๋์์ ์ค ์ ์์ผ๋ฉฐ, ๊ฐ์ํ๋ฅผ ๊ตฌํํ ํ ๊ฐ์ ์ฌํญ์ ์ธก์ ํ ์ ์์ต๋๋ค.
4. React.lazy์ Suspense๋ฅผ ์ด์ฉํ ์ฝ๋ ๋ถํ
์ฝ๋ ๋ถํ ์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
๋ฒ๋ค์ ๋ ์์ ์ฒญํฌ๋ก ๋๋์ด ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋๋ฆฐ ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ๊ฐ์ ํ ์ ์์ต๋๋ค. React๋ ์ปดํฌ๋ํธ์ ์ฝ๋ ๋ถํ ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก React.lazy
์ Suspense
๋ฅผ ์ ๊ณตํฉ๋๋ค.
์์:
const OtherComponent = React.lazy(() => import('./OtherComponent'));
function MyComponent() {
return (
Loading... }>
5. ์ํ ๊ด๋ฆฌ ์ต์ ํ
๋๊ท๋ชจ ์ํ ๊ด๋ฆฌ ์๋ฃจ์ (์: Redux ๋๋ Zustand)์ ์ ์คํ๊ฒ ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋๋๋ก ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ ์ญ ์ํ์ ๋ํ ๋ถํ์ํ ์ ๋ฐ์ดํธ๋ ๋ง์ ์ปดํฌ๋ํธ์์ ๋ฆฌ๋ ๋๋ง์ ์ ๋ฐํ ์ ์์ต๋๋ค.
์ฐพ์์ผ ํ ๊ฒ: ํ๋กํ์ผ๋ฌ๋ ์ํ ์ ๋ฐ์ดํธ๊ฐ ์ฐ์์ ์ธ ๋ฆฌ๋ ๋๋ง์ ์ ๋ฐํ๋์ง ๋ณด์ฌ์ค ์ ์์ต๋๋ค. ์ ๋ ํฐ๋ฅผ ์ ์คํ๊ฒ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๊ฐ ์์กดํ๋ ํน์ ์ํ ๋ถ๋ถ๋ง ๋ณ๊ฒฝ๋ ๋ ๋ฆฌ๋ ๋๋ง๋๋๋ก ํ์ธ์.
์ค์ฉ์ ์ธ ํต์ฐฐ:
- ์
๋ ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: Redux์
reselect
)๋ฅผ ์ฌ์ฉํ์ฌ ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ ํ์ธ์. - ์ํ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ ํ ์ธ๋ถํ๋๋๋ก ํ์ธ์.
- ๋จ์ผ ์ปจํ
์คํธ ์
๋ฐ์ดํธ๊ฐ ๋๋ฌด ๋ง์ ๋ฆฌ๋ ๋๋ง์ ์ ๋ฐํ๋ ๊ฒฝ์ฐ, ์ปจํ
์คํธ ๋ถํ ์ ๋ต๊ณผ ํจ๊ป
React.useContext
์ฌ์ฉ์ ๊ณ ๋ คํ์ธ์.
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ํ๋กํ์ผ๋ง: ๊ณ ๋ ค์ฌํญ
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ๊ฐ๋ฐํ ๋, ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ์ ๋์ฑ ๋ฏธ๋ฌํด์ง๋๋ค:
- ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด: ๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ ๋งค์ฐ ๋ค๋ฅธ ์ธํฐ๋ท ์๋๋ฅผ ๊ฐ์ง๋๋ค. ๋ก๋ ์๊ฐ๊ณผ ๋ฐ์์ฑ์ ๊ฐ์ ํ๋ ์ต์ ํ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ๊ณณ์์ ์์ฐ์ ์ ๊ณตํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
- ๊ธฐ๊ธฐ ๋ค์์ฑ: ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ ๊ณ ๊ธ ๋ฐ์คํฌํฑ๋ถํฐ ๋ณด๊ธํ ์ค๋งํธํฐ๊น์ง ๋ค์ํ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค์ํ ๊ธฐ๊ธฐ์์ ์ฑ๋ฅ์ ํ ์คํธํ๊ฑฐ๋ ์๋ฎฌ๋ ์ด์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ํ๋กํ์ผ๋ฌ๋ ์ ์ฌ์ ํ๋์จ์ด์์ ์ด๋ ค์์ ๊ฒช์ ์ ์๋ CPU ์ง์ฝ์ ์ธ ์์ ์ ์๋ณํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
- ์๊ฐ๋ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ: ํ๋กํ์ผ๋ฌ๊ฐ ์ง์ ์ธก์ ํ์ง๋ ์์ง๋ง, ์๊ฐ๋๋ณ ์ฌ์ฉ์ ๋ถํฌ๋ฅผ ์ดํดํ๋ฉด ๋ฐฐํฌ ์ ๋ต๊ณผ ์๋ฒ ๋ถํ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ณ ์ฑ๋ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋์ด ๋ง์ ์๊ฐ ๋์ ์๋ฒ์ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค.
- ํ์งํ ๋ฐ ๊ตญ์ ํ (i18n/l10n): ์ง์ ์ ์ธ ์ฑ๋ฅ ์งํ๋ ์๋์ง๋ง, UI๊ฐ ๋ค์ํ ์ธ์ด์ ๋ฌธํ์ ํ์์ ํจ์จ์ ์ผ๋ก ์ ์ํ๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ์ ๋ฐ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ผ๋ถ์ ๋๋ค. ๋ง์ ์์ ๋ฒ์ญ๋ ํ ์คํธ๋ ๋ณต์กํ ์์ ๋ก์ง์ ๋ ๋๋ง ์ฑ๋ฅ์ ์ ์ฌ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฉฐ, ์ด๋ ํ๋กํ์ผ๋ฌ๊ฐ ๊ฐ์งํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.
๋คํธ์ํฌ ์ค๋กํ๋ง ์๋ฎฌ๋ ์ด์
์ต์ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด(์: Slow 3G, Fast 3G)์ ์๋ฎฌ๋ ์ด์ ํ ์ ์์ต๋๋ค. ํ๋กํ์ผ๋ง ์ค์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ธํฐ๋ท์ด ๋๋ฆฐ ์ง์ญ์ ์ฌ์ฉ์๋ฅผ ๋ชจ๋ฐฉํ์ฌ ์ด์์ ์ด์ง ์์ ๋คํธ์ํฌ ์กฐ๊ฑด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ์ธ์.
๋ค์ํ ๊ธฐ๊ธฐ/์๋ฎฌ๋ ์ดํฐ์์ ํ ์คํธํ๊ธฐ
๋ธ๋ผ์ฐ์ ๋๊ตฌ๋ฅผ ๋์ด, BrowserStack์ด๋ LambdaTest์ ๊ฐ์ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์ํ ๋ค์ํ ์ค์ ๊ธฐ๊ธฐ ๋ฐ ์ด์ ์ฒด์ ์ ์ ๊ทผํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. React ํ๋กํ์ผ๋ฌ ์์ฒด๋ ๋ธ๋ผ์ฐ์ ์ DevTools์์ ์คํ๋์ง๋ง, ์ด๋ฅผ ํตํด ๋ฌ์ฑํ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ฌํ ๋ค์ํ ํ๊ฒฝ ์ ๋ฐ์์ ๋ถ๋ช ํ๊ฒ ๋ํ๋ ๊ฒ์ ๋๋ค.
๊ณ ๊ธ ํ๋กํ์ผ๋ง ๊ธฐ๋ฒ ๋ฐ ํ
- ํน์ ์ํธ ์์ฉ ํ๋กํ์ผ๋ง: ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ธ์ ์ ํ๋กํ์ผ๋งํ๋ ๋์ , ๋๋ฆฌ๋ค๊ณ ์์ฌ๋๋ ํน์ ์ฌ์ฉ์ ํ๋ก์ฐ๋ ์ํธ ์์ฉ์ ์ง์คํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ณ ๋ชฉํ์ ๋ง๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
- ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ๋น๊ต: ์ต์ ํ๋ฅผ ๊ตฌํํ ํ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ํ๋กํ์ผ๋งํ์ฌ ๊ฐ์ ์ฌํญ์ ์ ๋ํํ์ธ์. React ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋กํ์ผ๋ง ์ค๋ ์ท์ ์ ์ฅํ๊ณ ๋น๊ตํ ์ ์์ต๋๋ค.
- React์ ๋ ๋๋ง ์๊ณ ๋ฆฌ์ฆ ์ดํด: React์ ์กฐ์ ๊ณผ์ ๊ณผ ์ ๋ฐ์ดํธ๋ฅผ ์ผ๊ด ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ํ ๊น์ ์ดํด๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์์ธกํ๊ณ ์ฒ์๋ถํฐ ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ง์ ํ๋กํ์ผ๋ฌ API ์ฌ์ฉ: ๋ ๊ณ ๊ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ํด, React๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํ๋กํ์ผ๋ง์ ์์ํ๊ณ ์ค์งํ๊ฑฐ๋ ํน์ ์ธก์ ์ ๊ธฐ๋กํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ง์ ํตํฉํ ์ ์๋ ํ๋กํ์ผ๋ฌ API ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ธ ๋๋ฒ๊น ์๋ ๋ ์ผ๋ฐ์ ์ด์ง๋ง ํน์ ์ฌ์ฉ์ ์ง์ ์ปดํฌ๋ํธ๋ ์ํธ ์์ฉ์ ๋ฒค์น๋งํนํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
ํผํด์ผ ํ ์ผ๋ฐ์ ์ธ ํจ์
- ์ฃ๋ถ๋ฅธ ์ต์ ํ: ๋์ ๋๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋ ์ฝ๋๋ฅผ ์ต์ ํํ์ง ๋ง์ธ์. ๋จผ์ ์ ํ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ ์ง์คํ ๋ค์, ํ๋กํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋ณ๋ชฉ ํ์์ ์๋ณํ์ธ์.
- ๊ณผ๋ํ ๋ฉ๋ชจ์ด์ ์ด์ : ๋ฉ๋ชจ์ด์ ์ด์ ์ ๊ฐ๋ ฅํ์ง๋ง, ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ฉด ์์ฒด์ ์ธ ์ค๋ฒํค๋(์บ์ฑ์ ์ํ ๋ฉ๋ชจ๋ฆฌ, props/๊ฐ ๋น๊ต ๋น์ฉ)๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. ํ๋กํ์ผ๋ฌ๊ฐ ๋ํ๋ด๋ ๊ฒ์ฒ๋ผ ๋ช ํํ ์ด์ ์ ์ ๊ณตํ๋ ๊ณณ์ ์ ์คํ๊ฒ ์ฌ์ฉํ์ธ์.
- "Why did this render?" ์ถ๋ ฅ ๋ฌด์ํ๊ธฐ: ์ด ๊ธฐ๋ฅ์ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋๋ฒ๊น ํ๋ ๋ฐ ๊ฐ์ฅ ์ข์ ์น๊ตฌ์ ๋๋ค. ๊ฐ๊ณผํ์ง ๋ง์ธ์.
- ํ์ค์ ์ธ ์กฐ๊ฑด์์ ํ ์คํธํ์ง ์๊ธฐ: ํญ์ ์๋ฎฌ๋ ์ด์ ๋ ๋๋ ์ค์ ๋คํธ์ํฌ ์กฐ๊ฑด๊ณผ ๋ํ์ ์ธ ๊ธฐ๊ธฐ์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ ์คํธํ์ธ์.
๊ฒฐ๋ก
React ํ๋กํ์ผ๋ฌ ์ปดํฌ๋ํธ๋ ๊ณ ์ฑ๋ฅ React ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ค๋ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ์์ด์๋ ์ ๋ ๋๊ตฌ์ ๋๋ค. ๊ทธ ๊ธฐ๋ฅ์ ์ดํดํ๊ณ ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ง๋ฐํ ๋ถ์ํจ์ผ๋ก์จ, ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ํจ๊ณผ์ ์ผ๋ก ์๋ณํ๊ณ ํด๊ฒฐํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ , ๋ ๋ฐ์์ด ์ข์ผ๋ฉฐ, ๋ ์ฆ๊ฑฐ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋ง์คํฐํ๋ ๊ฒ์ ์ง์์ ์ธ ๊ณผ์ ์ ๋๋ค. ์ ๊ธฐ์ ์ผ๋ก React ํ๋กํ์ผ๋ฌ๋ฅผ ํ์ฉํ๋ฉด ์ค๋๋ ๋ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋ ๋ฟ๋ง ์๋๋ผ, ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฑ์ฅํ๊ณ ์งํํจ์ ๋ฐ๋ผ ์ฑ๋ฅ ๋ฌธ์ ์ ๋์ฒํ ์ ์๋ ๊ธฐ์ ์ ๊ฐ์ถ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์์ฉํ๊ณ , ํ๋ช ํ ์ต์ ํ๋ฅผ ๊ตฌํํ๋ฉฐ, ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ฐ์ด๋ React ๊ฒฝํ์ ์ ๊ณตํ์ธ์.