Hoonni
ํ›„๋‹ˆ's Blog

์ „์ฒด ๊ธ€

Hi There ! ๐Ÿ–๏ธ I am FrontEnd Developer ๐Ÿ’ป I'm studying AI, Backend, React-Native Now.
React/2022-ไธŠ

Object.keys, values, entries, assign

Object.keys, Object.values, Object.entries, Object.assign Object.keys ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋“ค ์ค‘์—์„œ key๊ฐ’, ๋‹ค๋ฅธ ๋ง๋กœ ํ”„๋กœํผํ‹ฐ ๋„ค์ž„๋“ค๋งŒ ๋ฌถ์–ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ ๋ฌธ๋ฒ• โ”” Object.keys ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์€ ๊ทธ๋ƒฅ ๋ฉ”์„œ๋“œ ๊ทธ๋Œ€๋กœ Object ๊ฐ์ฒด์— keys ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ Key ๊ฐ’์„ ์•Œ์•„๋‚ด๊ณ ์ž ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋ฉด ๋จ โ”” ์ฃผ์˜ํ•ด์•ผ๋  ์ ์€ Object.keys() ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Object๋ผ๋Š” ๋‚ด์žฅ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊ฐ์ฒด๋ฅผ ์ง‘์–ด๋„ฃ์–ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— myObject.keys()์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•จ Object.values ํŠน์ • ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ..

React/2022-ไธŠ

shallow routing

shallow routing shallow routing ๋ž€? data fetching ๋ฉ”์„œ๋“œ(getServerSideProps, getStaticProps, getInitialProps)๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  URL์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ์‹ state๋ฅผ ์žƒ์ง€ ์•Š์œผ๋ฉด์„œ pathname๊ณผ router ๊ฐ์ฒด๋ฅผ ํ†ตํ•œ query๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Œ shallow routing์„ ์œ„ํ•ด์„œ๋Š” shallow ์˜ต์…˜์„ true๋กœ ๋ฐ”๊ฟ” ์ฃผ์–ด์•ผ ํ•จ ๋ถˆํ•„์š”ํ•œ ์„œ๋ฒ„ ์—ฐ์‚ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ํ•„์š”ํ•œ ์ƒํƒœ ๊ฐ’์„ ๋ผ์šฐํ„ฐ์— ๋„ฃ์–ด์„œ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ data fetching ๋ฉ”์„œ๋“œ Next.js์—์„œ๋Š” data fetching ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•จ ์‚ฌ์ดํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์ „ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•จ โ”Œ get..

React/2022-ไธŠ

useEffect

useEffect useEffet() ๋ž€? React Component๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ํŠน์ • ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฆฌ์•กํŠธ Hook์ž„ ํŠน์ • ์ž‘์—…์€ Component๊ฐ€ ๋ Œ๋”๋ง ๋œ ์ดํ›„์— ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ๋ถ€์ˆ˜์ ์ธ ํšจ๊ณผ๋“ค์„ ๋œปํ•จ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ โ”Œ componentDidMount : ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ์ฒซ ๋ Œ๋”๋ง์„ ๋‹ค ๋งˆ์นœ ํ›„ ์‹คํ–‰ โ”œ componentDidUpdate : ๋ฆฌ๋ Œ๋”๋ง์„ ์™„๋ฃŒํ•œ ํ›„ ์‹คํ–‰. ์ฆ‰, render()๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ โ”” componentWillUnMount : ์ปดํฌ๋„ŒํŠธ๋ฅผ DOM์—์„œ ์ œ๊ฑฐํ•  ๋•Œ ์‹คํ–‰ ๊ธฐ๋ณธ ํ˜•ํƒœ โ”Œ function : ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํ•จ์ˆ˜ โ”” deps ..

React/2022-ไธŠ

useRef

useRef useRef .current ํ”„๋กœํผํ‹ฐ๋กœ ์ „๋‹ฌ๋œ ์ธ์ž๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ref ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•จ ๋ฐ˜ํ™˜๋œ ๊ฐ์ฒด๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ „ ์ƒ์• ์ฃผ๊ธฐ๋ฅผ ํ†ตํ•ด ์œ ์ง€๋จ ์˜ˆ์‹œ ๋ณธ์งˆ์ ์œผ๋กœ useRef๋Š” .current ํ”„๋กœํผํ‹ฐ์— ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ๋‹ด๊ณ  ์žˆ๋Š” ์ƒ์ž์™€ ๊ฐ™์Œ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ reft ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค๋ฉด, React๋Š” ๋ชจ๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ๋œ DOM ๋…ธ๋“œ์— ๊ทธ๊ฒƒ์˜ .current ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ค์ •ํ•จ

React/2022-ไธŠ

Pagination vs Infinite Scroll

Pagination vs Infinite Scroll Pagination ๋ž€? ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ํ™”๋ฉด์— ์ „๋ถ€ ๋ณด์—ฌ์ค„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•จ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ • ๊ธธ์ด๋กœ ๋Š์–ด์„œ ์ „๋‹ฌํ•จ Pagination ์˜ˆ์‹œ Infinite Scroll ํ™”๋ฉด์—์„œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋Œ€๊นŒ์ง€ ๋ฌดํ•œ์ • ์Šคํฌ๋กคํ•˜๋Š” ๊ธฐ๋ฒ•์„ ์˜๋ฏธํ•จ Pagination๊ณผ ๋‹ค๋ฅด๊ฒŒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋”ฐ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ํŽ˜์ด์ง€๋„ค์ด์…˜์—์„œ ๋‹ค์Œ ๋ฒˆํ˜ธ๋ฅผ ํด๋ฆญํ•ด์•ผ ๋˜๋Š” ๋™์ž‘์„ ๋‹จ์ˆœํžˆ ๊ณ„์† ์Šคํฌ๋กค๋งŒ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋Œ€์ฒดํ•ด์ค„ ์ˆ˜ ์žˆ์Œ ๊ทธ๋ ‡๋‹ค๊ณ  "Infinite Scroll์ด Pagination์˜ ์ƒ์œ„ ํ˜ธํ™˜์ด๋‹ค" ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์—†์Œ ๋‘ ๋ฐฉ๋ฒ•์€ ๊ฐ๊ฐ์˜ ์žฅ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค UI/UX๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๊ฒƒ์ธ์ง€์— ๋”ฐ..

React/2022-ไธŠ

State Lifting

State Lifting State Lifting (State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ) React์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์€ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•˜๋Š” ํ•˜ํ–ฅ์‹์ด์ž ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋”ฐ๋ฆ„ ๋งŒ์•ฝ, ํ•˜๋‚˜์˜ ์ƒํƒœ๊ฐ€ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์— ์˜ํ–ฅ์„ ์ค€๋‹ค๋ฉด, ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋“ค ๊ฐ„์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต์˜ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ƒํƒœ๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฌ๋ฉด ๋จ ์ด๊ฒƒ์„ State Lifting (State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ)๋ผ๊ณ  ํ•จ ๊ณต์œ ๋  ์ƒํƒœ๋ฅผ ์†Œ์œ ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ง„๋ฆฌ์˜ ์›์ฒœ์ด ๋จ ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚˜ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ด๋Š” ์—ญ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ฒ˜๋Ÿผ ๋ณด์ผ์ˆ˜๋„ ์žˆ์Œ ์ด๋ฅผ ์œ„ํ•ด React์—์„œ ์ œ์‹œํ•œ ๋ฐฉ๋ฒ•์€ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ •์˜๋œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— props๋กœ ์ „๋‹ฌํ•˜๊ณ , ํ•˜์œ„ ์ปดํฌ..

React/2022-ไธŠ

State Prev

State useState()๋ฅผ ์ด์šฉํ•ด์„œ 4์”ฉ ์˜ค๋ฅด๋Š” ์นด์šดํ„ฐ ๋งŒ๋“ค๊ธฐ ์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ โ”Œ ์ฒซ๋ฒˆ์งธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ : โ”” count = 0, ํ˜„์žฌ count = 0, ์ž„์‹œ์ €์žฅ count = 1 โ”ฃ ๋‘๋ฒˆ์งธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ : โ”Œ count = 0, ํ˜„์žฌ count = 0, ์ž„์‹œ์ €์žฅ count = 1 โ”” count = 0, ํ˜„์žฌ count = 0, ์ž„์‹œ์ €์žฅ count = 1 โ”ฃ ์„ธ๋ฒˆ์งธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ : โ”Œ count = 0, ํ˜„์žฌ count = 0, ์ž„์‹œ์ €์žฅ count = 1 โ”ฃ count = 0, ํ˜„์žฌ count = 0, ์ž„์‹œ์ €์žฅ count = 1 โ”” count = 0, ํ˜„์žฌ count = 0, ์ž„์‹œ์ €์žฅ count = 1 โ”” ๋„ค๋ฒˆ์งธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ : โ”Œ count = 0, ํ˜„์žฌ count ..

React/2022-ไธŠ

State Lifecycle

State Lifecycle ์ƒ๋ช…์ฃผ๊ธฐ React์—์„œ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋Š” ์•„๋ž˜์˜ ์„ธ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นจ โ”Œ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„ โ”œ ์—…๋ฐ์ดํŠธ ๋‹จ๊ณ„ โ”” ์†Œ๋ฉธ ๋‹จ๊ณ„ ์œ„์˜ ๊ฐ ๋‹จ๊ณ„์—์„œ ๋ช‡๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋“ค์ด ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ๊ฐ ๋‹จ๊ณ„ ์†์—์„œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ๋ฐ”๋กœ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ ๋ผ๊ณ  ๋ถ€๋ฆ„ ๋ฆฌ์•กํŠธ๋Š” ์›น์—์„œ UI ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ž๋™์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ๋™์ ์œผ๋กœ ํ™”๋ฉด์„ ๊ทธ๋ ค์คŒ ์ œ๋Œ€๋กœ ๋œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด๋Ÿฐ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๊ณผ์ •์— ๋ผ์–ด๋“ค์–ด API๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ๋„ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•ด์ค˜์•ผ ํ•  ๋•Œ๋„ ์žˆ์Œ ๋”ฐ๋ผ์„œ, ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์— ํ•„์š”ํ•œ ์ž‘์—…๋“ค์„ ๋ผ์›Œ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋“ค์ด ์กด์žฌํ•จ โ”” ์œ„์˜ ์‚ฌ์ง„์€ ๋ฆฌ์•กํŠธ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๋‚˜ํƒ€๋‚ธ ํ™”๋ฉด ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ฐ ๋ฉ”์„œ๋“œ๋“ค์˜ ์—ญํ•  ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„ โ”Œ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„์—์„œ..