์ฑ๋ฅ ์ต์ ํ
-
- [React Native] FlatList
FlatList๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์ @FlatList@ ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. FlatList๊ฐ๋ ํจ์จ์ ์ผ๋ก ๋๋์ ์คํฌ๋กค ๊ฐ๋ฅํ ํญ๋ชฉ์ ๋ ๋๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ์ต์ ํ๋ ๊ฐ์ ์คํฌ๋กค๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ , ์คํฌ๋กค ์ ํ์ํ ํญ๋ชฉ๋ง ๋ ๋๋งํ๋ค.@ScrollView@ ์ปดํฌ๋ํธ์์ ์ฐจ์ด์ ์ฃผ์ ์์ฑ์์ฑ์ค๋ช @data@- ๋ ๋๋งํ ๋ฐ์ดํฐ ๋ฐฐ์ด(Array)์ ์ ๋ฌ- ๋ฐฐ์ด์ ๊ฐ ์์๋ ๋ ๋๋ง๋ ํญ๋ชฉ์ ๋ฐ์ดํฐ@renderItem@- ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ ๋๋งํ ์ง ์ ์ํ๋ ํจ์- ๋งค๊ฐ๋ณ์๋ก @{ item, index }@ ํํ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋ค.@keyExtractor@- ๊ฐ ํญ๋ชฉ์ ๊ณ ์ ํค๋ฅผ ๋ฐํํ๋ ํจ์- ๊ธฐ๋ณธ์ ์ผ๋ก @item.key@ ๋๋ @item.id@๋ฅผ ์ฌ์ฉ..
2024.12.10 -
- [React.js] useMemo ํ
useMemo ํ ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์ @useMemo@ ํ ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. useMemo ํ ๊ฐ๋ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ ์ต์ ํ(Optimization)๋ฅผ ์ํด ์์ฃผ ์ฌ์ฉ๋๋ ํ ํน์ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ (Memoization)ํ์ฌ ์์กด์ฑ ๋ฐฐ์ด์ ์๋ ๊ฐ๋ค์ด ๋ณ๊ฒฝ๋์ง ์๋ ํ ํด๋น ์ฐ์ฐ์ ๋ค์ ์ํํ์ง ์๋๋ก ํ๋ค.๋ถํ์ํ ์ฌ์ฐ์ฐ์ ๋ฐฉ์งํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ฒซ ๋ฒ์งธ ์ธ์๋ ๋ฉ๋ชจ์ด์ ์ด์ ํ ๊ฐ์ ๋ฐํ(return)ํ๋ ํจ์์ด๋ค. (@computeExpensiveValue@).๋ ๋ฒ์งธ ์ธ์๋ ์์กด์ฑ ๋ฐฐ์ด(Dependency Array)๋ก, ์ด ๋ฐฐ์ด์ ๊ฐ๋ค์ด ๋ณ๊ฒฝ๋ ๋๋ง ๋ฉ๋ชจ์ด์ ์ด์ ๋ ๊ฐ์ด ๋ค์ ๊ณ์ฐ๋๋ค.const memoizedValue = useMemo(() => computeE..
2024.09.20 -
- [React.js] useCallback ํ
useCallback ํ ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ฌ์ฉ๋๋ @useCallback@ ํ ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. useCallback ํ ๊ฐ๋ ์ปดํฌ๋ํธ์ ์ฑ๋ฅ ์ต์ ํ(Optimization)๋ฅผ ์ํด ์์ฃผ ์ฌ์ฉ๋๋ ํ ํจ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ (Memoization)ํ์ฌ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋ ๋๋ง๋ค ํจ์๊ฐ ์ฌ์์ฑ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ@useCallback(() => {}, [])@์ ๊ฐ์ด ์ฌ์ฉํ๋ค.์ฒซ ๋ฒ์งธ ์ธ์๋ก ํจ์๋ฅผ ๋ฐ๊ณ , ๋ ๋ฒ์งธ ์ธ์๋ก ์์กด์ฑ ๋ฐฐ์ด(Dependencies Array)์ ๋ฐ๋๋ค.const memoizedCallback = useCallback(() => { doSomething(a, b);}, [a, b]); ⇒ ๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋ ๋๋ง๋ค ํด๋น ํจ์๋ฅผ ๋ค์ ์์ฑํ์ง ์๊ณ ,..
2024.09.20 -
- [React.js] React.memo()
React.memo()๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ ๊ณตํ๋ ๊ณ ์ฐจ ํจ์(Higher-Order Component)์ธ @React.memo()@์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. React.memo()๊ฐ๋ ๋ฆฌ์กํธ์์ ์ ๊ณตํ๋ ๊ณ ์ฐจ ํจ์(Higher-Order Component)ํจ์ํ ์ปดํฌ๋ํธ์ ๋ถํ์ํ ์ฌ๋ ๋๋ง์ ๋ฐฉ์งํ๋ ์ญํ ์ ํ๋ค.์ ๋ฌ๋ @props@๊ฐ ๋ณ๊ฒฝ๋์ง ์๋ ํ ํด๋น ์ปดํฌ๋ํธ๋ ๋ค์ ๋ ๋๋ง๋์ง ์๋๋ก ์ต์ ํ(Optimization)ํ ์ ์๋ค.@React.memo()@๋ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ธ์๋ก ๋ฐ์, ๊ทธ์ ๋์ผํ ๋์์ ํ๋ ์๋ก์ด ์ปดํฌ๋ํธ๋ฅผ ๋ฐํํ์ง๋ง, ์ถ๊ฐ์ ์ผ๋ก @props@๊ฐ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ๋ ์ต์ ํ ์์ ์ด ์ถ๊ฐ๋๋ค.@props@๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ, ๋ฉ๋ชจ์ด์ ์ด์ ๋ ์ปดํฌ๋ํธ๋ ์ด์ ๋ ๋๋ง์์..
2024.09.18 -
- [Next.js] Image ์ปดํฌ๋ํธ
Image ์ปดํฌ๋ํธ๋ค์ด๊ฐ๋ฉฐNext.js์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ Image ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Image ์ปดํฌ๋ํธ๊ฐ๋ Next.js์์ ๋ค์ํ ํผํฌ๋จผ์ค ๊ธฐ๋ฅ๊ณผ ํธ๋ฆฌํ ์ค์ ์ ์ง์ํ๋ ์ปดํฌ๋ํธ ์ด๋ฏธ์ง ์ปดํฌ๋ํธ๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ ์์ ์ ์ต์ ํํ ์ ์๋ค. ๋ํ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ , ์ง์ฐ ๋ก๋ฉ(Lazy Loading)์ ์ง์ํ๋ฉฐ, WebP์ ๊ฐ์ ์ต์ ์ด๋ฏธ์ง ํ์์ด ์๋์ผ๋ก ์ฒ๋ฆฌ๋๋ค. ๋ค์ํ ๊ธฐ๊ธฐ์ ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ@next/image@ ๋ชจ๋์ ๋ถ๋ฌ์์ ์ฌ์ฉํ๋ค.import Image from 'next/image';export default function Home() { return ( Next.js Image E..
2024.08.05