์ต์ ํ
-
- [React Native] FlatList
FlatList๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)์ @FlatList@ ์ปดํฌ๋ํธ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. FlatList๊ฐ๋ ํจ์จ์ ์ผ๋ก ๋๋์ ์คํฌ๋กค ๊ฐ๋ฅํ ํญ๋ชฉ์ ๋ ๋๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ปดํฌ๋ํธ์ต์ ํ๋ ๊ฐ์ ์คํฌ๋กค๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ , ์คํฌ๋กค ์ ํ์ํ ํญ๋ชฉ๋ง ๋ ๋๋งํ๋ค.@ScrollView@ ์ปดํฌ๋ํธ์์ ์ฐจ์ด์ ์ฃผ์ ์์ฑ์์ฑ์ค๋ช @data@- ๋ ๋๋งํ ๋ฐ์ดํฐ ๋ฐฐ์ด(Array)์ ์ ๋ฌ- ๋ฐฐ์ด์ ๊ฐ ์์๋ ๋ ๋๋ง๋ ํญ๋ชฉ์ ๋ฐ์ดํฐ@renderItem@- ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ ๋๋งํ ์ง ์ ์ํ๋ ํจ์- ๋งค๊ฐ๋ณ์๋ก @{ item, index }@ ํํ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋ค.@keyExtractor@- ๊ฐ ํญ๋ชฉ์ ๊ณ ์ ํค๋ฅผ ๋ฐํํ๋ ํจ์- ๊ธฐ๋ณธ์ ์ผ๋ก @item.key@ ๋๋ @item.id@๋ฅผ ์ฌ์ฉ..
2024.12.10 -
- [React.js] ์ฝ๋ ๋ถํ (Code Splitting) : useTransition ํ , Suspense ์ปดํฌ๋ํธ, lazy ํจ์
์ฝ๋ ๋ถํ (Code Splitting) : useTransition ํ , Suspense ์ปดํฌ๋ํธ, lazy ํจ์๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ฝ๋ ๋ถํ (Code Splitting)์ ์ฅ์ ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ @useTransition@ ํ ๊ณผ @Suspense@ ์ปดํฌ๋ํธ, @lazy@ ํจ์์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. ์ฝ๋ ๋ถํ (Code Splitting)๊ฐ๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฝ๋์ ์ผ๋ถ๋ถ์ ๋๋ ์ ํ์ํ ์์ ์ ๋ก๋ํ๋ ๋ฐฉ์ ์ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์์ ์ฒญํฌ(Chunk)๋ก ๋๋์ผ๋ก์จ ์ด๊ธฐ ๋ก๋ ์ ํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ํฌ๊ธฐ๋ฅผ ์ค์ธ๋ค.์ด๋ฅผ ํตํด ์ฒซ ํ๋ฉด ๋ ๋๋ง ์๋๊ฐ ๋นจ๋ผ์ง๋ฉฐ, ๋๋ฆฐ ๋คํธ์ํฌ ํ๊ฒฝ์์๋ ๋น ๋ฅด๊ฒ ์๋ตํ ์ ์๋ค.์ฌ์ฉ์๊ฐ ํ์๋ก ํ์ง ์๋ ์ฝ๋๋ ๋์ค์ ๋ก๋๋๋ฉฐ, ์ํธ์์ฉํ ๋๋ง ํ์ํ ์ฝ๋๊ฐ ๋..
2024.09.20 -
- [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 -
- [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 -
- [React.js] ์ง์ฐ ๋ก๋ฉ(Lazy Loading)
์ง์ฐ ๋ก๋ฉ(Lazy Loading)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ์ฝ๋ ์ต์ ํ ์์ ์ ํด์ฃผ์ด์ผ ํ๋๋ฐ, ์ด๋ ์ง์ฐ ๋ก๋ฉ(Lazy Loading)์ ํ์ฉํ ์ ์๋ค.์ง์ฐ ๋ก๋ฉ(Lazy Loading)์ด ๋ฌด์์ธ์ง ๊ฐ๋จํ ์ ๋ฆฌํด๋ณธ๋ค. ์ง์ฐ ๋ก๋ฉ(Lazy Loading)๊ฐ๋ ํ์ํ ์์ ์ ํน์ ์ปดํฌ๋ํธ๋ ๋ชจ๋์ ๋ก๋ํ์ฌ ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ ์ค์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ธฐ์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ด๊ธฐ ๋ก๋ฉ ์ ๋ถํ์ํ ์ฝ๋๊ฐ ๋ก๋๋์ง ์์ผ๋ฉฐ, ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ ๋ฐฉ๋ฒ@React.lazy@์ @Suspense@๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๋ฅผ ๋์ ์ผ๋ก @import@ํ๊ณ ๋ก๋ฉ์ด ์๋ฃ๋ ๋๊น์ง ๋์ฒด UI(fallback)๋ฅผ ํ์ํ ์ ์๋ค. โ ์ปดํฌ๋ํธ ๋์ im..
2024.07.08