๐ ์ด์ ์ ๋ ์ ๊ฐ์ข API๋ฅผ ์ค์ต์ ์งํํ๋ค. ์ ํ๋ธ, ๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ, vworld ๋ฑ์ proxy ์ค์ ์์ด API๋ฅผ ๋ฐ์์ฌ ์ ์์์ง๋ง ๋ค์ด๋ฒ ๊ฒ์ API๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ package.json์ proxy ์ค์ ์ ํด์ผ CORS ์ค๋ฅ๊ฐ ์ฌ๋ผ์ง๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋์ Custom Hooks๋ฅผ ํ์ตํ๋ ๋ ์ด๋ค. ๋ฐ๋ณต๋๋ ๋ฃใฑ์ ํจ์๋ก ๋ง๋ค์ด ์ฌ์ฌ์ฉํ ์ ์๋ค๋ผ๊ณ ์ ํ์๋๋ฐ ์ด๋ค ๊ฒ์ธ์ง ์ ํํ ํ์ต์ ์งํํด๋ณด์!!
๐ ์ค๋ ํ์ตํ ๋ด์ฉ
Custom Hooks
- ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ์ปค์คํ ํ ํ ์ ์๋ฏธํ๋ฉฐ ์ด๋ฅผ ์ด์ฉํด ๋ฐ๋ณต๋๋ ๋ก์ง์ ํจ์๋ก ๋ฝ์๋ด์ด ์ฌ์ฌ์ฉํ ์ ์๋ค.
- ์ฌ๋ฌ url์ fetchํ ๋, ์ฌ๋ฌ input์ ์ํ ์ํ ๋ณ๊ฒฝ ๋ฑ ๋ฐ๋ณต๋๋ ๋ก์ง์ ๋์ผํ ํจ์์์ ์๋ํ๊ฒ ํ๊ณ ์ถ์ ๋ ์ปค์คํ ํ ์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
- ์ํ๊ด๋ฆฌ ๋ก์ง์ ์ฌํ์ฉ ๊ฐ๋ฅ
- ํด๋์ค ์ปดํฌ๋ํธ๋ณด๋ค ์ ์ ์์ ์ฝ๋๋ก ๋์ผํ ๋ก์ง ๊ตฌํ ๊ฐ๋ฅ
- ํจ์ํ์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ๋ช ๋ฃํ๋ค.
Custom Hook ์ ์ ๊ท์น
- Custom Hook์ ์ ์ํ ๋๋ ํจ์ ์ด๋ฆ ์์ use๋ฅผ ๋ถ์ด๋ ๊ฒ์ด ๊ท์น์ด๋ค.
- ๋๊ฐ์ ๊ฒฝ์ฐ ํ๋ก์ ํธ ๋ด์ hooks ๋๋ ํ ๋ฆฌ์ Custom Hook์ ์์น ์ํจ๋ค.
- Custom Hook์ผ๋ก ๋ง๋ค ๋ ํจ์๋ ์กฐ๊ฑด๋ถ ํจ์๊ฐ ์๋์ด์ผ ํ๋ค. return ํ๋ ๊ฐ์ ์กฐ๊ฑด๋ถ์ฌ์๋ ์๋๋ค.
์ฝ๋ ๋ถํ (Code Spliting)
- ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํํ๋ ์ ๋๊ฐ ๋๋ ค์ก๋์ง ํ์ ํด์ ๋ฒ๋ค์ ๋๋ ๋ค์ ์ง๊ธ ํ์ํ ์ฝ๋๋ง ๋ถ๋ฌ์ค๊ณ ๋์ค์ ํ์ํ ์ฝ๋๋ ๋์ค์ ๋ถ๋ฌ์ฌ ์ ์๋๋กํ๋ ๊ฐ๋ ์ด๋ค.
- ๋ฒ๋ค์ด ๊ฑฐ๋ํด์ง๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์ข์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฒ๋ค์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋๋๋ ๊ฒ์ด๋ค.
- ๋ฐํ์ ์ ์ฌ๋ฌ ๋ฒ๋ค์ ๋์ ์ผ๋ก ๋ง๋ค๊ณ ๋ถ๋ฌ์ค๋ ๊ฒ์ผ๋ก, Webpack, Rollup๊ณผ ๊ฐ์ ๋ฒ๋ค๋ฌ๊ฐ ์ง์ํ๋ ๊ธฐ๋ฅ์ด๋ค.
- ํ์ด์ง์ ๋ก๋ฉ ์๋๋ฅผ ๊ฐ์ ํ ์ ์๋ค.
๋ฒ๋ค ๋ถํ ์ค์ด๋๋ฒ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ถ๋ฌ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ ํ์ํ ๋ฉ์๋๋ง ๋ถ๋ฌ์์ ์ฌ์ฉํ์ฌ ๊ณต๊ฐ์ ํ๋ณดํ ์ ์๋ค.
// lodash ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฒด ๋ถ๋ฌ์ค๊ธฐ
import _ from 'lodash';
// lodash ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ฉ์๋ ํ๋๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉ
import find from 'lodash/find';
React์์์ ์ฝ๋ ๋ถํ
- SPA์์๋ ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ์ปดํฌ๋ํธ๊น์ง ํ ๋ฒ์ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ์ฒซ ํ๋ฉด์ด ๋ ๋๋ง ๋ ๋๊น์ง์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ๋ ๋ถํ ๊ฐ๋ ์ ๋์ ํ๋ค.
Static Import
- ๊ธฐ์กด import ๊ตฌ๋ฌธ์ ๋ฌธ์์ ์์์ ์์นํด์ผ ํ๊ณ , ๋ธ๋ก๋ฌธ ์์์๋ ์์นํ ์ ์๋ ์ ์ฝ ์ฌํญ์ด ์์๋ค.
Dynamic Import
- ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ์ปดํ์ผํด์ผ ํ๋ ์คํฌ๋ฆฝํธ์ ์์ ์ต์ํ ์ํค๊ธฐ ์ํ ๊ตฌ๋ฌธ์ ๋๋ค.
- ํจ์ ๋ด๋ถ์์ Import ๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค.
- React.lazy์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
React.lazy()
- dynamic import๋ฅผ ์ฌ์ฉํด ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ํ ์ ์๋ค.
- ์ด๊ธฐ ๋ ๋๋ง ์ง์ฐ์๊ฐ์ ์ด๋์ ๋ ์ค์ผ ์ ์๋ค.
- React.lazy๋ก ๊ฐ์ผ ์ปดํฌ๋ํธ๋ ๋จ๋ ์ผ๋ก ์ฐ์ผ ์ ์๊ณ , React.suspense ์ปดํฌ๋ํธ์ ํ์์์ ๋ ๋๋ง ํด์ผํ๋ค.
import Component from './Component';
const Component = React.lazy(() => import('./Component'));
React.Suspense
- Router๋ก ๋ถ๊ธฐ๊ฐ ๋๋์ด์ง ์ปดํฌ๋ํธ๋ค์ lazy๋ฅผ ํตํด importํ๋ฉด ํด๋น path๋ก ์ด๋ํ ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋ฉฐ ๋ก๋ฉํ๋ ์๊ฐ์ด ์๊ธฐ๊ฒ ๋๋ค.
- ์์ง ๋ ๋๋ง์ด ์ค๋น๋์ง ์์ ์ปดํฌ๋ํธ๊ฐ ์์ ๋ ๋ก๋ฉํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ณ , ๋ก๋ฉ์ด ์๋ฃ๋๋ฉด ๋ ๋๋ง์ด ์ค๋น๋ ์ปดํฌ๋ํธ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.
React.lazy์ Suspense์ ์ ์ฉ
- ์ค๊ฐ์ ์ ์ฉ์ํค๋ ๊ฒ๋ณด๋ค๋ ์น ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค๊ณ ์ง์ ํ๋ ๋จ๊ณ์ธ Route์ ์ด ๋ ๊ธฐ๋ฅ์ ์ ์ฉ์ํค๋ ๊ฒ์ด ์ข๋ค.
๐ ์ถ๊ฐ๋ก ๊ณต๋ถํ ๋ด์ฉ
[udemy] React ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ณด๊ธฐ (๋งค์ผ ์กฐ๊ธ์ฉ ์ด๋ผ๋ ๊พธ์คํ ๋ฃ๊ธฐ)
Study์๊ณผ ํจ๊ป ์งํ์ค์ธ ํ๋ก์ ํธ ๊ตฌํ
- Authentication
๐ ์ค์ํ ๋ด์ฉ
- Custom Hook
- Custom Hook ์์ฑ์กฐ๊ฑด
- ์ฝ๋๋ถํ
- React.lazy
- React.Suspense
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22.08.02_TIL (0) | 2022.08.02 |
---|---|
22.08.01_TIL (0) | 2022.08.01 |
22.07.27_TIL (0) | 2022.07.27 |
22.07.26_TIL (0) | 2022.07.26 |
22.07.25_TIL (0) | 2022.07.25 |