๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

FA/React

(16)
20221105 React Hooks - Custom Hooks ์ปค์Šคํ…€ ํ›… Hook์˜ ๊ทœ์น™ React ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ(๋ฐ˜๋“œ์‹œ Functional Component ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ) ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ๋ชป ์”€ Custom Hook - ๋‘ ๊ฐœ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜์—์„œ ๊ฐ™์€ ๋กœ์ง์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” ๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ ํ•จ. - ์ค‘๋ณต๋œ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Œ. - ์ปค์Šคํ…€ ํ›… ๋‚ด๋ถ€์—์„œ ๋‹ค๋ฅธ ํ›…๋“ค์„ ์ž์œ ๋กญ๊ฒŒ ์กฐํ•ฉ๊ฐ€๋Šฅ(ํ•„์š”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ) - ์ปค์Šคํ…€ํ›… ๋‚ด๋ถ€์—์„œ ์ปค์Šคํ…€ ํ›…์ด ๊ฐ€์ง€๋Š” ์Šคํ…Œ์ดํŠธ์™€ ์ดํŽ™ํŠธ๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์ด ์•„์ฃผ ์ข‹์Œ use0000 ์ฒ˜๋Ÿผ ๋ฐ˜๋“œ์‹œ ๋งจ ์•ž์— use๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ถ™์—ฌ์„œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด Hook์ด๋ผ๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜..
20221104 React Hooks - useReducer Hook์˜ ๊ทœ์น™ React ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ(๋ฐ˜๋“œ์‹œ Functional Component ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ) ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ๋ชป ์”€ useReducer - useState์˜ ๋Œ€์ฒดํ•จ์ˆ˜ - ์ฝœ๋ฐฑ ๋Œ€์‹  ๋””์ŠคํŒจ์น˜๋ฅผ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž์„ธํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ์Œ - useReducer๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค์ˆ˜์˜ ํ•˜์œ—๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๋ณต์žกํ•œ ์ •์  ๋กœ์ง์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ state๊ฐ€ ์ด์ „ state์— ์˜์กด์ ์ธ ๊ฒฝ์šฐ์— ๋ณดํ†ต useState๋ณด๋‹ค useReducer๋ฅผ ์„ ํ˜ธ reducer : state๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ์—ญํ•  dispatch: state ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ์š”๊ตฌ action: ์š”๊ตฌ์˜ ๋‚ด์šฉ ๋””์ŠคํŒจ์น˜๋กœ ์•ก์…˜(์š”..
20221103 React - ๊ฐ€์ƒ๋” (Virtual DOM) DOM(Document Object Model) ์›นํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ตฌ์กฐ๋“ค์„ ํŠธ๋ฆฌํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•œ ๊ฒƒ Virtual DOM (VDOM) ๊ฐ€์ƒ๋” UI์˜ ์ด์ƒ์ ์ธ ๋˜๋Š” "๊ฐ€์ƒ"์ ์ธ ํ‘œํ˜„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ReactDOM๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด “์‹ค์ œ” DOM๊ณผ ๋™๊ธฐํ™”ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…. ์ด ๊ณผ์ •์„ ์žฌ์กฐ์ •(Reconciliation)์ด๋ผ๊ณ  ํ•จ. - ๋ฆฌ์•กํŠธ๋Š” ๊ฐ€์ƒ๋”์„ ์‚ฌ์šฉํ•ด์„œ ์‹ค์ œ๋”์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด ์คŒ - ๊ฐ€์ƒ๋”์€ ์‹ค์ œ๋”๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณต์‚ฌ๋ณธ ๋ณต์‚ฌ๋ณธ: ์‹ค์ œ ๋”์ด ์•„๋‹Œ ์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์ €์žฅ๋˜์–ด ์žˆ์Œ (์‹ค์ œ ๋”์ด๋ž‘ ๋˜‘๊ฐ™์€ ์—˜๋ฆฌ๋จผ์ธ  ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ) - ๋ธŒ๋ผ์šฐ์ € ๋ฌธ์„œ์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผ ๋ถˆ๊ฐ€ ๋ฆฌ์•กํŠธ๋Š” ๋‘๊ฐ€์ง€ ๊ฐ€์ƒ ๋”์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ 1. ๋ Œ๋”๋ง ์ด์ „ ํ™”๋ฉด ๊ตฌ์กฐ๋ฅผ ๋‚˜..
20221102 React Hooks - useMemo, useCallback Hook์˜ ๊ทœ์น™ React ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ(๋ฐ˜๋“œ์‹œ Functional Component ์•ˆ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ) ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ตœ์ƒ์œ„์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Œ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ๋ชป ์”€ useMemo, useCallback ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ useMemo๋Š” ํŠน์ • ๊ฒฐ๊ณผ๊ฐ’์„ ์žฌ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉ useCallback์€ ํŠน์ • ํ•จ์ˆ˜๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ memoization (๋ฉ”๋ชจ์ด์ œ์ด์…˜) ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์ด์ด ๋™์ผํ•œ ๊ณ„์‚ฐ์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•  ๋•Œ, ์ด์ „์— ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋™์ผํ•œ ๊ณ„์‚ฐ์˜ ๋ฐ˜๋ณต ์ˆ˜ํ–‰์„ ์ œ๊ฑฐํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์˜ ํ•ต์‹ฌ์ด ๋˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. - ์ž์ฃผ ํ•„์š”ํ•œ ๊ฐ’์„ ์บ์‹ฑํ•ด ๋‘์–ด์„œ ๊ทธ ๊ฐ’์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š”๊ฒŒ ..
20221024 input type="file" ์šฉ๋Ÿ‰ ์ œํ•œํ•˜๊ธฐ 1. ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๋™์˜์ƒ ์—…๋กœ๋“œ๋ฅผ ํ•˜๋ ค๋ฉฐ ๋ฐฑ์—”๋“œ์™€ ์„œ๋กœ ๋™์˜์ƒ ํฌ๊ธฐ๋ฅผ 200๋ฉ”๊ฐ€๋กœ ์ œํ•œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ๋กœ ํ•˜์˜€์Œ. 2. ํผ๋ฐ์ดํ„ฐ๋ฅผ ํฌ์ŠคํŠธ๋กœ ๋ณด๋‚ด๋Š”๋ฐ, ๋“ฑ๋ก๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ 200๋ฉ”๊ฐ€๊ฐ€ ๋„˜์œผ๋ฉด ์•Œ๋Ÿฟ์œผ๋กœ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์งœ๋ด„. 3. ์ฝ˜์†”์ฐ์–ด๋ด๊ฐ€๋ฉฐ ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ํ‚ฌ๋กœ๋ฐ”์ดํŠธ๋กœ ๋‚˜์˜จ๋‹ค๋Š” ๊ฑธ ํ™•์ธํ•˜๊ณ , 200๋ฉ”๊ฐ€๋ฅผ ํ‚ฌ๋กœ๋ฐ”์ดํŠธ๋กœ ๋ฐ”๊พธ๊ณ  maxFileSize๋กœ ์„ ์–ธํ•ด์ค€ ๋‹ค์Œ ๋น„๋””์˜ค์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ maxFileSize๋ณด๋‹ค ํด ๊ฒฝ์šฐ ์•Œ๋Ÿฟ์ฐฝ์œผ๋กœ ์•Œ๋ ค์คŒ. (๋“ฑ๋ก๋ถˆ๊ฐ€) // ๋™์˜์ƒ 200MB ํฌ๊ธฐ ์ œํ•œ const [errorMsg, setErrorMsg] = useState(false); const [isSuccess, setIsSuccess] = useState(false); const validateSelec..
20221008 video ์‚ฌ์šฉํ•˜๊ธฐ https://developer.mozilla.org/ko/docs/Web/HTML/Element/Video : ๋น„๋””์˜ค ์‚ฝ์ž… ์š”์†Œ - HTML: Hypertext Markup Language | MDN HTML ์š”์†Œ๋Š” ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด๋ฐฑ์„ ์ง€์›ํ•˜๋Š” ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฌธ์„œ์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋””์˜ค ์ฝ˜ํ…์ธ ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ์ข€ ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. developer.mozilla.org src : ์žฌ์ƒํ•  ๋น„๋””์˜ค์˜ ์ฃผ์†Œ width : ์š”์†Œ์˜ ๋„ˆ๋น„ height : ์š”์†Œ์˜ ๋†’์ด loop : ๋ฐ˜๋ณต ์žฌ์ƒ poster : ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋””์˜ค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ์ฃผ์†Œ๋ฅผ ๊ถŒ์žฅ preload : ์Œ์•…์„ ์žฌ์ƒํ•˜๊ธฐ ์ „์— ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ฌ์ง€ ์ง€์ • (value: auto, metadata, none)..
20221006 react JSX์—์„œ for์˜ค๋ฅ˜ Warning: Invalid DOM property `for`. Did you mean `htmlFor`? ๋ผ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด... JSX์—์„œ for์€ ๋ฐ˜๋ณต์˜ ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋กœ htmlFor์œผ๋กœ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. // ์ด๋ ‡๊ฒŒ ๋ง๊ณ  // ์ด๋ ‡๊ฒŒ ์จ์ฃผ์ž
20221005 React Hooks - useContext useContext ์—ฌ๋Ÿฌ ๊ณณ์— ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ ค์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์ปดํฌ๋„ŒํŠธ์˜ ๋‹จ๊ณ„๊ฐ€ ๋งŽ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ Prop์„ ๋‚ด๋ ค์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด๋Ÿฐ ๋ฌธ์ œ์ ์„ ํ”„๋กญ ๋“œ๋ฆด๋ง(Prop Drilling) ์ด๋ผ๊ณ  ํ•จ. Context๋Š” ํ”„๋กญ ๋“œ๋ฆด๋ง์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ React Context๋Š” ์ „์—ญ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์ „์—ญ์„ ํ”„๋กญ์Šค๋กœ ๋‹จ๊ณ„์ ์œผ๋กœ ํ•˜๋ ค๊ณ ํ•œ๋‹ค๊ณ ํ•˜๋ฉด ํž˜๋“ฌ ์ปจํ…์ŠคํŠธ๊ฐ€ ์•ฑ์•ˆ์—์„œ ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คŒ ์ „์—ญ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ์— ํŽธํ•จ ์ƒ์œ„์ปดํฌ๋„ŒํŠธ์—์„œ ํ•„์š”ํ•œ ๊ฐ’์„ ๋‹จ๊ณ„๋กœ๋ณ„๋กœ ํ†ตํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐ”๋กœ ๋„˜๊ฒจ์ค„ ์ˆ˜ ์žˆ์Œ Context๋กœ ๊ณต์œ ํ•œ๊ฑธ > useContext๋กœ ๋ฐ”๋กœ ๋ฐ›์•„์™€์„œ ์“ธ ์ˆ˜ ์žˆ์Œ ๋‹จ์  ์ปจํ…์ŠคํŠธ๋Š” ๊ผญ ํ•„์š”ํ•  ๋•Œ๋งŒ ์จ์•ผ๋Œ ์ด์œ  - ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์–ด..