
Today, What I learned? ์ฃผ๋ง์ฏค์ ๋์์ธ ์์ ์ฌํญ์ ๋ฐ์ํ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ธ ์ธํ ํ๊ทธ ํด๋ฆฌ์ด ๋ฒํผ์ด ์ ๋๋ก ๋์ํ์ง ์๋ ์ด์.. ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๋ค๊ฐ ์ ์ด ์ปดํฌ๋ํธ์ ๋น์ ์ด ์ปดํฌ๋ํธ์ ๋ํด์๋ ์ฐพ๊ฒ ๋์ด์ ํ ๋ฒ ์ ๋ฆฌํด ๋ณธ๋ค. ์์ธ ํ์ ์ผ๋จ ์ฒ์์ ๋์์ด ์ ๋๋๋ฐ, ํ ๋ฒ ์ง์ฐ๊ณ ๋ ๋ค๋ถํฐ ์ ๋๋ก ๋์์ด ๋์ง ์์๋ค. ๊ทธ๋์ ๋ก๊ทธ๋ฅผ ์ฐ์ด๋ณด๋.. state๋ ๋ณ๊ฒฝ์ด ์ ๋์์ง๋ง input์ฐฝ์ ๋น์ด๋ฒ๋ฆฐ ๊ฐ์ด ๋ค์ ๋ฐ์์ด ์ ๋๊ณ ์๋ ์ํ.. input ํ๊ทธ์ state์ ๊ฐ์ด ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ์์ด ๋์ง ์๊ณ ์๋ค๋ ๊ฒ์ ํ์ธํ๋ค. ์์ธ์ ๋ฐ๋ก defaultValue !.. ๋ง์ดํ์ด์ง๋ ๋์ฒด๋ก ์์ ํ๋ ์์ญ์ด๊ธฐ ๋๋ฌธ์ ๋ฌด์์์ ์ผ๋ก value ๋์ defaultValue๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๊ฐ๋ค. (๊ธฐ..

3์ ์ฒซ์งธ ์ฃผ๋ฅผ ๋ณด๋ด๋ฉฐ ๋ฒ์จ ๋ค์ ์ฃผ๊ฐ ์ง๋๋ฉด ์ต์ข ๋ฐํ.. ์ฆ ์๋ฃ๋ค.. ๐ OMG.. ์์ด ๋น ๋ฅด๊ฒ ๋์๊ฐ์ ๋คํ์ด์ง๋ง ํ ์ฃผ ๋์ ์ผ๋ง๋ ๋ถํธํ๋์ง~~ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํด์ผ ํ๋ ๋ถ๋ถ์ด ๋ชจ๋ ๋๋์ ๋คํ์ด์๋ค ใ .. ๐ Fact ํ๋ก์ ํธ ํผ๋๋ฐฑ๊ณผ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์๋ค. ๋ง์ดํ์ด์ง UI๋ฅผ ์์ ํ๋ค. ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌํฉํ ๋ง ํ๋ค. ๋ฒ๊ทธ๋ค์ ์์ ํ๋ค. ์ ์ ํผ๋๋ฐฑ์ ์ํด ์ฌ๊ธฐ์ ๊ธฐ ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ฅผ ๋ฟ๋ฆฌ๊ณ ๋ค๋ ๋ค. ๋ง๊ด๋ถ~~,, ๐ Feeling ํ์ ์คํฌ๋ฆฝํธ ๊ณต๋ถ๊ฐ ๋ ๋ง์ด ํ์ํ๋ค๋ ์๊ฐ.. ์ผ๋จ ํด๋ณด๋๋ฐ ํ๋ค๋ณด๋ฉด ๋ ํด๊ฒฐ๋๋ ๊ฒ ์ฐธ ์ ๊ธฐํ๋ค.. ๐ ๋ชจ๋ฐ์ผ๋ ๊ธฐ๋ฅ ํ์ธ์ ์ํ์... ์ ์ ํผ๋๋ฐฑ์ ๋ฐ์ผ๋ ์๊ฐ๋ณด๋ค ๋จ๋ฆฐ๋ค ๐ ~~ ๐ Finding ์ด๋ฏธ์ง ์ฉ๋ ์ต์ ํํ๊ธฐ ์ด๋ฏธ์ง ํ๊ทธ์ ๋์ ๊ฒฝ๋ก ์ถ๊ฐํ๊ธฐ React..

Today, What I learned? ์ง๊ธ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๊ณ ์๋ ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์ staleTime๊ณผ CacheTime, invalidateQueries์ ๋ํ ๊ฐ๋ ์ด ์ ๋ฆฝ๋์ด ์์ง ์์ ๊ฒ ๊ฐ์์ ํ๋ฒ ์ ๋ฆฌํ๋ฉด์ ๊ณต์๋ฌธ์๋ ์ฝ์ด๋ณด๊ณ .. ๋ฏธ๋์ ๋๋ฅผ ์ํ ๊ธฐ๋ก!.. ๊ณต์ ๋ฌธ์ ๋งํฌ๋ ์ด์ชฝ์ด๋ค. https://tanstack.com/query/latest/docs/react/overview Overview | TanStack Query Docs TanStack Query (FKA React Query) is often described as the missing data-fetching library for web applications, but in more technical terms, it ma..

Today, What I learned? ์ฌ์ค์ ๋ผ๋์ค๋ผ๋ ์ฝ์์ ๋ผ๋์ค๋ฒํผ์ ํด๋นํ๋ ๊ฒฝ๋ ฅ ๋ถ๋ถ ์ปดํฌ๋ํธ์ ๋ค์ด๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ , ์ ์ฒด์ ์ผ๋ก ๋ ๋๋ง์ด ๋๋ ๊ฒ์ ์ ์ ์์๋ค. ๋ถ๋ชจ์ปดํฌ๋ํธ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์!... ์ด๋ฐ ์ธ๋ฐ์๋ ๋ ๋๋ง ํ์๋ฅผ ์ค์ด๊ณ ์, React.memo๋ฅผ ์ ์ฉํ๊ธฐ๋ก ํ๋ค. UserTopInfo -> ์ฒดํฌ ์์ญ์ ๊ฐ์ธ๋ ์ปดํฌ๋ํธ -> ์ฒดํฌ๋ฐ์ค/๋ผ๋์ค ๋ฒํผ ์ปดํฌ๋ํธ ํํ๋ก ๊ตฌ์ฑ์ด ๋์ด์์ด์, ํด๋ฆญ์ ์ฃผ์ฒด๊ฐ ๋๋ ๊ฐ์ฅ ๋ด๋ถ ์ปดํฌ๋ํธ์ธ ์ฒดํฌ๋ฐ์ค์ ๋ผ๋์ค ๋ฒํผ ์ปดํฌ๋ํธ์ memo๋ฅผ ์ ์ฉํ๋ค. ๋ ๋ค userTopInfo์์ ์ ์ญ ์ํ์ธ userInfo๋ผ๋ props๋ฅผ ๊ณตํต์ ์ผ๋ก ๋ฐ๊ณ ์๋ค. (์ ์ ๊ฐ ์์ ํ ์ ๋ณด์ ๋ํ ๋ถ๋ถ!) profiler ์ ๋ณด ์์ ๊ณผ ๊ด๋ จ๋ UserInfoT..

์ด๋ค ์๋ฌ? ํ๋กํ ์ด๋ฏธ์ง๊ฐ ์ฌ์ฉ๋๋ ์ด๋ ๊ณณ์ด๋ ๋ํ๋๋ ์ด 403 ์๋ฌ.. ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ์ ๋๋ก ๋ชป๊ฐ์ ธ์์ ๊ทธ๋ฐ ๋ฏ ๋ณด์๋ค. ๊ทธ๋์ ํ๋กํ ์ด๋ฏธ์ง๊ฐ ๋น๋ฒํ๊ฒ ์ ๋๋ก ๋จ์ง ์์๋ค. ์ด๋ ๊ฒ ๋น์ด์๋ ์ด๋ฏธ์ง๋ฅผ ํ์ธํด๋ณด๋ฉด src๊ฐ ๋น์ด์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์์ธ ํ์ ์ด ๋ฌธ์ ๋ ๊ตฌ๊ธ๋ก ๋ก๊ทธ์ธํ ๊ณ์ ์๋ง ๋ํ๋๋ ํ์.. 403 ์๋ฌ๋ ์๋ฒ์ ์์ฒญ์ ํ์ง๋ง ๊ถํ์์ ๋ฌธ์ ๋ก ๊ฑฐ์ ๋์๋ค๋ ์๋ฌ๋ผ๋๋ฐ, ๋ณดํต ๋ค๋ฅธ ๋๋ฉ์ธ์์ ํธ์ถํ ๋ ๋ฐ์ํ๋ค๊ณ ํ๋ค. ๋ค๋ฅธ ๋๋ฉ์ธ์์ ์จ ์์ฒญ์์ ํ์ธํ๊ณ ๊ฑฐ์ ํ๋จ ๊ฒ์ด๋ค. ํด๊ฒฐ ๊ณผ์ https://stackoverflow.com/questions/56242788/http-403-on-images-loaded-from-googleusercontent-com HTTP 403 on ..

Today, What I learned? ๋ง์ดํ์ด์ง์ UI๊ฐ ๊ฝค.. ๋ณ๊ฒฝ์ด ๋์๋ค. ๊ธฐ์กด๊ณผ ๋ค๋ฅด๊ฒ ๊ธฐ์ ์คํ๋ณ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํด์ผ ํ๋๋ฐ, ์ผ์ผ์ด import ํด์ฌ ์๋ ์์ผ๋.. ๋์ ์ผ๋ก ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์ฐพ์๋ณด๊ฒ ๋์๋ค. ์์ค๋ฐ์ค๋ฅผ ๋ณด๊ณ ํ์๋ถ์ด require๋ผ๋ ํํธ๋ฅผ ์ฃผ์ จ๋ค. ๊ธฐ์กด ์ํ ๊ฐ๊ฐ ๊ธฐ์ ์คํ์ ํด๋นํ๋ ์์ด์ฝ ์ด๋ฏธ์ง ์ ์ฉ์ ์ํด ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค. ํ์ง๋ง ๋ชจ์กฐ๋ฆฌ ์๋ฐ ใ ... require() ์ ์ฉ require๋ฅผ ์๋์ ๊ฐ์ด ์ ์ฉํด๋ณด์์ ๋, ์ด๋ฏธ์ง๊ฐ ์ ๋จ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ธ๋ก๊ทธ๋ค์ ๋ณด๋ค๋ณด๋ .default๋ฅผ ๋ถ์ฌ์ผ ์๋ฐ์ด ์ ๋จ๋ ๊ฒฝ์ฐ๊ฐ ๋ ์๋๋ฐ, ๋ ๊ฐ์ ๊ฒฝ์ฐ๋ ์คํ๋ ค ๋ถ์ด๋๊น ์๋ฐ์ด ๋ด๋ค. ์ผ์ด์ค ๋ฐ์ด ์ผ์ด์ค์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง? require๋ง ..

Today, What I learned? ๋ผ์ดํธํ์ฐ์ค์ ์งํ๋ฅผ ๋ณด๊ณ ํ๋กํ ์ด๋ฏธ์ง์ ํ์ฅ์๋ฅผ webp๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ข๊ฒ ๋ค๊ณ ํ๋จ๋์ด์.. ๋ค๋ฅธ ์ด๋ฏธ์ง ํ์ฅ์๋ฅผ ๋ฐ๊พธ๋ ๊ณผ์ ์์ ํ๋กํ ์ด๋ฏธ์ง ํ์ฅ์๋ ํ๋ฉด๊ณต์ ๋ฅผ ํตํด ํ์ ๋ถ์ด ๋ณ๊ฒฝํด ์ฃผ์ จ์ง๋ง, ๊ทธ ๊ณผ์ ์์ ๋ด๊ฐ ๋ ์ค์ํ(!) ์ฝ๋๊ฐ ์์ด์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค ^^ใ ์ฐ์ ํ์ฌ ๋ผ์ดํธ ํ์ฐ์ค๋ ์ด๋ ๋ค. ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ฆ ์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์ต์ ํ๋ฅผ ์ํด react-image-file-resizer ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๊ณ ์๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ฅ์๋ฅผ jpg, png ๋ฟ๋ง ์๋๋ผ webp๋ ํจ๊ป ์ ๊ณตํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉ๋์ด ์๋ ๋ฆฌ์ฌ์ด์ฆ ํฌ๋งท์ ์๋์ ๊ฐ๋ค. const resizeFile = (file: File) => new Promi..

2์ ๋ท์งธ ์ฃผ๋ฅผ ๋ณด๋ด๋ฉฐ ๋ฏธ์น ๋ฏ์ด ๋ฌ๋ฆฐ 3์ฃผ.. ๋ฒ์จ ์ค๊ฐ๋ฐํ ๋๋ฌ๋ค. ์๋ฃ๊น์ง ์ ๋ง 2์ฃผ?.. ์ ๋๋ฐ์ ์ ๋จ์๋ค ์๊ฐ ์ฐธ ๋น ๋ฅด๋ค.. ๐ Fact ๋ชจ๋ฐ์ผ UI ์์ ์ ํ๋ค. ๋ง์ดํ์ด์ง ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ์ธต ๊ฐํํ๋ค. useEffect์ ์คํ ์์ ์ ๋ค์ ๋์ง์๋ค. ๋ฐฐํฌ ์ค๋ฅ๋ฅผ ์์ ํ๋ค. ๋ง์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค. ๐ Feeling ์ด๋ฒ ๋ฒ๊ทธ๋ค์ ๊ณ ์น๋ฉฐ ๋ ํ์ธต ์ฑ์ฅํ ๊ฒ ๊ฐ๋ค. ๊ธฐ๋ณธ์ ๋จผ์ ์ถฉ์คํ์๋ ์๊ฐ. PR ์ ์, ์ปค๋ฐ ์ ์ ๋ด๊ฐ ๊ตฌํํ ๊ธฐ๋ฅ์ ๋ํด์ ๋ค์ํ๊ฒ ํ ์คํธํด๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ! ์๋์ ์ผ๋ก ์ง๋์ฃผ๋ณด๋จ? ๋ ์๋ฐ๋ฐ์ผ๋ฉฐ ์งํํ ๋๋. ๐ Finding ์ด์ state์ ๋น๊ตํด์ ํ์ฌ state ํ์ฑํ ์ฌ๋ถ ํ์ํ๊ธฐ useEffect์ ์คํ์์ React.lazy์ Suspense A..

Today, What I learned? ํ๋ก ํธ์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ด๋ป๊ฒ ํ ์ ์์ ๊ฒ์ธ๊ฐ?๋ฅผ ์์ ๊ณ ๋ฏผํ๊ณ ์ฐพ์๋ณด๊ณ , ์ฌ๋ฌ ๊ธ๋ค์ ์ฝ์ด๋ณด๊ณ ์๋ค. ๊ทธ ๋ฐฉ๋ฒ ์ค ํ๋์ธ ๋ถํ์ํ ๋ ๋๋ง ์ค์ด๊ธฐ!.. ๋ ๋๋ง์ ์ค์ด๋ ๋ฐฉ๋ฒ ์ค ํ๋์ธ memoization์ ๋ํด ์ ๋ฆฌํด ๋ณธ๋ค. memoization memoization์ ๋ฆฌ์กํธ์๋ง ํด๋น๋๋ ๊ธฐ์ ์ ์๋๋ค. ์ปดํจํฐ๊ฐ ๋์ผํ ๊ณ์ฐ ์์ ์ ๋ฐ๋ณตํด์ผ ํ ๋, ์ด์ ์ ๊ณ์ฐํ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด ๋๊ณ ์ฌ์ฉํ์ฌ ์๋๋ฅผ ๋์ด๋ ๊ธฐ์ ์ด๋ค. ์ฝ๊ฒ ๋งํด์ ๋ฐ๋ณต ์์ ํด์ผ ํ ๋ถ๋ถ์ ๋ฉ๋ชจ๋ฅผ ํด๋๊ณ ๊ฐ์ ธ๋ค ์ฐ๋ ๋๋? ๋ณดํต ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํ๋ฅผ ์ํด์ ๋ง์ด ์ฌ์ฉ๋๋ค. ๋ฆฌ์กํธ์์์ memoization ๋ฐฉ๋ฒ์ ํฌ๊ฒ ์ธ ๊ฐ์ง. React.memo, useMemo, useCallba..

Today, What I learned? ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค๊ฐ null๊ฐ์ด ํฌํจ๋์ด์ ์๋ ๋๋ ๊ธฐ๋ฅ์ด ์ ๋๋(!) ์ผ์ด ๋ฐ์ํ๋ค. ๋ฐ๊ฒฌํ์ ๋ถ์ด ๋ฐ๋ก ํด๊ฒฐํด ์ฃผ์ จ์ง๋ง, ๋ง์นจ ๊ทธ ๋ถ๋ถ์ด useEffect๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ด๊ณ .. ๋ด๊ฐ useEffect์ ์คํ ์์ ์ ๋ํด์ ์๋ชป ์๊ณ ์์๋ ๊ฒ ๊ฐ์ ์ ๋ฆฌํ๋ค! useEffect์ ์คํ ์์ ๋๋ ๊ธฐ์กด์ useEffect๊ฐ ์ ์ผ ๋จผ์ ์คํ๋๋ค๊ณ ์๊ฐํ์๋๋ฐ, (์ ํํ ์์๋์ง๋?..๐ค) useEffect ๊ฐ์ ์ฌ์ด๋ ์ดํํธ๋ jsx๊ฐ ๋ค์ด์๋ return๋ฌธ์ด ๋๋๊ณ ์คํ๋๋ค. ์๋์ ๊ฐ์ด ์ฝ์์ ์ถ๊ฐํด์ ํ์ธํด๋ณด๋ ๋ค์ ์๊ฒ ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋๋ return๋ฌธ์ด ๋จผ์ ์คํ๋๊ณ useEffect์ ์ฝ์์ด ์ฐํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. co..
Comment