์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- useRef
- Flex
- history api
- ๋ฐ๋ธ์ฝ์ค
- ํ๋ก ํธ์๋
- Props
- position
- ์ฝ๋ฉํ ์คํธ
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ธ๋ก๊ทธ
- REACT
- float
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- useEffect
- Gatsby
- CSS
- fetch API
- Today
- Total
Daehyunii's Dev-blog
6์ฃผ์ฐจ ๊ณผ์ - ๊ณ ์์ด ์ฌ์ง์ฒฉ ์ต์ ํ ๋ฐ ์ ํจ์ฑ ๊ฒ์ฌํ๊ธฐ ๋ณธ๋ฌธ
6์ฃผ์ฐจ ๊ณผ์ - ๊ณ ์์ด ์ฌ์ง์ฒฉ ์ต์ ํ ๋ฐ ์ ํจ์ฑ ๊ฒ์ฌํ๊ธฐ
Daehyunii 2022. 11. 24. 00:19์ด๋ฒ 6์ฃผ์ฐจ ๊ณผ์ ๋ ๊ธฐ์กด์ ๊ฐ์๋ฅผ ํ ๋๋ก ์ต์ ํ ๋ฐ ๊ฐ๋จํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฐ๋จํ ๊ณผ์ ์๋ค. ์ฐ์ ๊ณ ์์ด ์ฌ์ง์ฒฉ ๋ง๋ค๊ธฐ ๊ฐ์๋ฅผ ํตํด์ ๊ทธ ๋์ ๋ฐฐ์ ๋, ๋ด์ฉ๋ค์ ๋ณต์ตํ๋ ์๋ฏธ๊ฐ ๊ฐํ๊ณ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ๊ณ API๋ฅผ ํตํด์ ์๋ฒ์ ํต์ ํ๊ณ ๋ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ํ์ ์ปดํฌ๋ํธ์๊ฒ ๋ฟ๋ ค์ฃผ์ด ์ด๋ฅผ ํ์ฉํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ค์ ํ ๋ฒ ๊ณ ์์ด ์ฌ์ง์ฒฉ์ ํตํด์ ๋ณต์ตํ๋ ๊ณผ์ ์ด์๊ณ ๊ทธ ๊ณผ์ ์์ ๊ฐ๋จํ ๊ณผ์ ๊ฐ ์ฃผ์ด์ก๋ค.์๊ตฌ ์ฌํญ์ ์๋์ ๊ฐ๋ค.
๊ณผ์ ๊ธฐ๋ณธ ์๊ตฌ ์ฌํญ
1. ์ง๊ธ ๊ตฌํ๋ ์ฝ๋์์๋ state์ ๋ํ ์ ํฉ์ฑ ์ฒดํฌ๋ฅผ ์ ํ ํ์ง ์๋๋ฐ, ์ด ๋ถ๋ถ์ ๋ณด์ถฉํด์ฃผ์ธ์.
2. ์ปดํฌ๋ํธ๋ณ๋ก ์ฌ๋ฐ๋ฅด์ง ์์ state๋ฅผ๋ฃ์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ก ํด์ฃผ์ธ์.
3. ๊ฐ ์ปดํฌ๋ํธ์ setState๋ฅผ ์ต์ ํํ์ฌ ์ด์ ์ํ์ ๋น๊ตํด์ ๋ณ๊ฒฝ์ฌํญ์ด ์์ ๋๋ง render ํจ์๋ฅผ ํธ์ถํ๋๋ก ์ต์ ํ๋ฅผ ํด๋ด ๋๋ค.
4. ๋ฃจํธ ํ์ ์ค์ด ์๋ ๊ฒฝ์ฐ, ๋ฐฑ์คํ์ด์ค ํค๋ฅผ ๋๋ ์ ๋ ์ด์ ๊ฒฝ๋ก๋ก ์ด๋ํ๋๋ก ๋ง๋ค์ด๋ด ๋๋ค.
1๋ฒ ์๊ตฌ์ฌํญ์ธ ์ ํฉ์ฑ ๊ฒ์ฌ ์ฆ, ๊ฐ ์ปดํฌ๋ํธ์ state์ ์๋ง์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋์ง ํ์ธํ๋ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ๋จผ์ validation.jsํ์ผ์ ๋ง๋ค๊ณ ๊ฐ ์ปดํฌ๋ํธ์ ๋ค์ด๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ํ Array, Object, Boolean๊ฐ์ ํ์ธํ๋ ํจ์๋ฅผ ๋ง๋ค๊ณ exportํ๊ณ ๊ฐ ์ปดํฌ๋ํธ์์ importํด์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ค์ํ๋ค.
export function isArray(array) {
if (!Array.isArray(array)) {
throw new Error("๋ฐฐ์ด์ ์ ๋ฌํด ์ฃผ์ธ์!");
} else {
return true;
}
}
export function isObject(object) {
if (!(object.constructor.toString().indexOf("Object") > -1)) {
throw new Error("๊ฐ์ฒด๋ฅผ ์ ๋ฌํด ์ฃผ์ธ์!");
} else {
return true;
}
}
export function isBoolean(boolean) {
if (!(typeof boolean === "boolean")) {
throw new Error("๋ถ๋ฆฌ์ธ๊ฐ์ ์ ๋ฌํด ์ฃผ์ธ์!");
} else {
return true;
}
}
2๋ฒ ์๊ตฌ์ฌํญ์ธ ์ฌ๋ฐ๋ฅด์ง ์์ state๋ฅผ ๋ฃ์์ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ก ๋ง๋๋ ์๊ตฌ ์ฌํญ์ 1๋ฒ ์๊ตฌ์ฌํญ์ ๋ถ์ฌ์ ๋ฐ๋ก Error๊ฐ ๋ฐ์ํ๋๋ก ๋ง๋ค์ด ์ฃผ์๋ค.
3๋ฒ ์๊ตฌ์ฌํญ์ธ setState๋ฅผ ์ต์ ํ๋ this.state์ nextState์ค ๋ณํ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์๋ง setState( )๋ด์ render( )๋ฅผ ํธ์ถํ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋น๊ตํ์ฌ ์กฐ๊ธ์ด๋ผ๋ ๋ณ๊ฒฝ์ด ์๋๊ฒฝ์ฐ์๋ง render( ) ํจ์๊ฐ ํธ์ถ ๋ ์๋ ์กฐ๊ฑด์ ๋ฃ์๋ค.
4๋ฒ ์๊ตฌ์ฌํญ์ธ ๋ฐฑ์คํ์ด์ค ํค๋ฅผ ๋๋ ์ ๋ ์ด์ ๊ฒฝ๋ก๋ก์ ์ด๋์ ๊ธฐ์กด์ ๊ตฌํ์ด ๋์ด์๋ onPrevClick( )๋ฅผ ํ์ฉํ์ฌ window์ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๊ณ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ์ฌ root์ธ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ค๋ก ๊ฐ ์ ์๋๋ก ๊ตฌํ ํ์์ต๋๋ค.
๊ณผ์ ๋ฅผ ํ๋ฉฐ ๋๋์
์ ๋ง ์ ๊ธฐํ๋ค๊ณ ๋๋๊ฒ์ ์ด์ ์ ํ ๋ฒ์ฉ ํด๋ดค๋ ๊ณผ์ ์ด์ด์ ๊ทธ๋ฌ๋์ง ์ฐ์ ํฌ๊ฒ ๋ถ๋ด์ด ์์๋ค. ๋ฌผ๋ก ๋ด์ฉ ์์ฒด๊ฐ ๊ทธ๋ ๊ฒ ์ด๋ ค์ด ๋ด์ฉ์ ์๋์์ง๋ง ์ฒ์ ์ ํฉ์ฑ ๊ฒ์ฌ๋ผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋ค์์ ๋๋ ๊ทธ๊ฒ ๋ฌด์์ธ์ง, ์ ํด์ผํ๋์ง ๋ชฐ๋๊ธฐ ๋๋ฌธ์ ์์ฒญ ๋นํฉํ๋ ๊ธฐ์์ด ์์๋ค. ํ์ง๋ง ์ด๋ฒ ๊ณผ์ ๋ฅผ ์งํํ ๋๋ ์์ฐ์ค๋ฝ๊ฒ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ปดํฌ๋ํธ๋ณ๋ก ๋ฌ๋ผ์ง๋ ๊ฒ์ ์๊ณ ์์ฐ์ค๋ฝ๊ฒ validation๊ฒ์ฌ๋ฅผ ์ํ ํ์ผ์ ๋ง๋ค๊ณ ์๋ฃ๊ตฌ์กฐ๋ณ๋ก validation ๊ฒ์ฌ๋ฅผ ํ ์ ์๋๋ก ํจ์๋ค์ ๊ตฌํํ๊ณ exportํด์ ์ฌ์ฉํด์ผ ๊ฒ ๋ค๋ ์๊ฐ์ด ์์ฐ์ค๋ฝ๊ฒ ๋ค์๋ค. ๋ฐ๋ณต๋ ๊ฐ์๋ฅผ ํตํด์ ์ปดํฌ๋ํธ์ ์กฐ๊ธ์ ์ต์ํด ์ง๊ฒ ์๋๊น ํ๋ ์๊ฐ์ด ๋ค์๊ณ , ์์ง๋ ์๋ก์ด ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ์๋ฒฝํ๊ฒ ์ดํดํ๋๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธด ํ์ง๋ง ์ด์ ๋ณด๋ค๋ ํ์คํ ๋์์ก๊ณ ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ ๋ฐ๊ฟ์ผ ํ๋ ๋ถ๋ถ๋ค์ด ์๊ธฐ๋ฉด ์ฝ๋๋ฅผ ์ดํดํ๊ณ ๊ทธ ๋ถ๋ถ๋ง ์ฐพ์์ ๋ฐ๊พธ๋ ๊ฒ์ด ์ด๋์ ๋ ๊ฐ๋ฅํด ์ง ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ๊พธ์คํ ๊ณ์ํด์ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ์ค๋๋ณด๋ค ๋ด์ผ ๋ ๋ฐ์ ํ ๋ด๊ฐ ๋ ์ ์์ ๊ฒ์ด๋ผ๋ ํ์ ์ด ๋ค์๋ ๊ฒ ๊ฐ๋ค.
https://github.com/WooDaeHyun/Dev-cours-6week-Assignment