[ReactNative] ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด ๋ฆฌ์ ์‚ฌ์œ  with ์นด์นด์˜ค ๋กœ๊ทธ์ธ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 8. 2. 21:54

๋ฆฌ์  ๐Ÿ˜ญ ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์—์„œ ๋™์ผํ•œ ์ด์œ ๋กœ ๋ช‡ ๋ฒˆ ๋ฆฌ์ ์„ ๋‹นํ–ˆ๋‹ค. ํŒŒ์ผ ๋ฌธ์ œ์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ ๋กœ๊ทธ์ธ๋ถ€ํ„ฐ ์•ˆ ๋„˜์–ด๊ฐ„๋‹ค๋‹ˆ.. ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋‚˜ ๋ฆด๋ฆฌ์ฆˆ๋กœ ๋ฝ‘์•˜์„ ๋•Œ๋„ ์ž˜ ๋˜๋Š”๋ฐ?.. ์‹ถ์–ด์„œ ์„œ์น˜ ์‹œ์ž‘. ๋ฆฌ์ ์‚ฌ์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค. ๊ณ„์† ์ผ๊ด€๋œ ์‚ฌ์œ ์˜€์Œ. ((์ข€ ๋” ์นœ์ ˆํ–ˆ์œผ๋ฉด..)) ์ œ๊ณตํ•˜์‹  ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋กœ๋Š” ์ธ์•ฑ ์ฝ˜ํ…์ธ ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์•Œ๊ฒŒ๋œ ์ƒˆ๋กœ์šด ์‚ฌ์‹ค. Google Play ์•ฑ ์„œ๋ช…์„ ํ•˜๋ฉด ์„œ๋ช… ํ‚ค๊ฐ€ ๋ฐ”๋€๋‹ค! ์„œ๋ช…ํ‚ค๊ฐ€ ๋ฐ”๋€Œ๋ฉด, SHA-1 ๊ฐ’๋„ ๋ณ€๊ฒฝ๋œ๋‹ค. ์นด์นด์˜ค ๋””๋ฒจ๋กœํผ์— ๋“ฑ๋กํ•ด ๋‘” key hash ๊ฐ’๋“ค๋กœ๋Š” ๋กœ๊ทธ์ธ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰ ์นด์นด์˜ค ๋””๋ฒจ๋กœํผ์—์„œ ํ”Œ๋žซํผ์˜ Android key Hash ๊ฐ’์— Google Play์—์„œ ๋ฐ›์€ key Hash๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์•ฑ ์„œ๋ช… ํ‚ค์˜ k..

Next.js์—์„œ SCSS ์‚ฌ์šฉํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 4. 17. 20:59

Today, What I learned? ์ด์ „์— ํ–ˆ๋˜ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ next.js๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ณผ์ • ์ค‘.. ๋ฐ”๋‹๋ผ JS, HTML, SCSS๋กœ ๋˜์–ด์žˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ๋ ค๋‹ค๋ณด๋‹ˆ next.js์— SCSS๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ์ข€ ์žˆ์—ˆ๋‹ค. ๋จผ์ € ํ˜„์žฌ ์Šคํƒ€์ผ ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ์ด๋ ‡๋‹ค. ์„ค์น˜ ๋จผ์ € ํ”„๋กœ์ ํŠธ ํด๋”์— sass ์„ค์น˜! yarn add sass ์ปดํฌ๋„ŒํŠธ ํด๋”์˜ scss ํŒŒ์ผ๋“ค์€ module.scss๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค. Selector "body" is not pure ์ฒ˜์Œ์— ๋ชจ๋“  ํŒŒ์ผ์— module์„ ๋ถ™์˜€๋‹ค๊ฐ€ ๋งŒ๋‚œ ์—๋Ÿฌ.. reset.scss ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ „์ฒด์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๋ถ€๋ถ„์ด๊ณ , module.css ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” CSS ๋ชจ๋“ˆ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณตํ†ต์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” CSS ๊ฐ™์€ ๊ฒฝ..

[React] ์ƒˆ๋กœ๊ณ ์นจ ์‹œ ์ข‹์•„์š” ์œ ์ง€ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 3. 9. 22:18

Today, What I learned? ๋‚ด ํŒŒํŠธ๋Š” ์•„๋‹ˆ์—ˆ์ง€๋งŒ ๊ธ‰ํ•˜๊ฒŒ ์ข‹์•„์š” ๊ด€๋ จ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‹ด๋‹นํ•˜์ง€ ์•Š์•˜๋˜ ํŒŒํŠธ๋ผ ์ฝ”๋“œ๋ฅผ ๋“ค์—ฌ๋‹ค๋ณผ ์ผ์ด ๋งŽ์ง€ ์•Š์•˜๋Š”๋ฐ ์˜คํžˆ๋ ค ์ข‹์•„!.. ์ด๋ฒˆ ๋ฒ„๊ทธ๋Š” ์ƒˆ๋กœ๊ณ ์นจ ํ–ˆ์„ ๋•Œ ํ•˜ํŠธ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ์˜€๋‹ค. ๋ถ„๋ช… ์ด์ „์—๋Š” ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•œ๋ฐ ๊ทธ ์‚ฌ์ด ์ˆ˜์ •์ด ๋˜๋ฉด์„œ ๋ญ”๊ฐ€ ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊ธด ๋“ฏ.. ๐Ÿค” ์›์ธ ํŒŒ์•… myProjects ์ปฌ๋ ‰์…˜์— ํ˜„์žฌ ํ”„๋กœ์ ํŠธ id ๊ฐ’์ด ํ™•์ธ๋˜์–ด์•ผ๋งŒ ํ•˜ํŠธ๋ฅผ ์ฑ„์šฐ๋Š” isLike๊ฐ€ ํŒ๋‹จ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ƒˆ๋กœ๊ณ ์นจ ํ–ˆ์„ ๋•Œ useQuery์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ์‹œ๊ฐ„์ด ์žˆ์–ด์„œ ์ฒ˜์Œ์— undefined๋กœ ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ๋ฒ„๋ฆฌ๋Š” ๊ฒŒ ๋ฌธ์ œ์ธ ๋“ฏํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ณ  ํ•˜ํŠธ๊ฐ€ ํ’€๋ฆฌ๋‹ˆ๊นŒ ๋‹ค์‹œ ๋ˆ„๋ฅด๋ฉด ์ˆซ์ž๊ฐ€ 1์”ฉ ๋Š˜์–ด๋‚˜๋Š”.. ์ด์ƒํ•œ ๋ฒ„๊ทธ.. ๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด true๋กœ m..

[React+typescript] ์นด์นด์˜คํ†ก ๊ณต์œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 3. 7. 20:53

Today, What I learned? ์œ ์ € ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ, ๊ธฐ์กด์˜ ๊ณต์œ  ๊ธฐ๋Šฅ์—์„œ ์นด์นด์˜คํ†ก ๊ณต์œ ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. (์•„๋ฌด๋ž˜๋„ ๋งŽ์ด ์“ฐ์ด๋‹ˆ๊นŒ) ์ด์ „ ํ”„๋กœ์ ํŠธ์—๋„ ๊ตฌํ˜„๋˜์–ด ์žˆ๋˜ ๋ถ€๋ถ„์ด๋ผ (๋‹ด๋‹นํ•˜์ง„ ์•Š์Œ) ๊ฝค ๋งŽ์€ ์ฐธ๊ณ ๋ฅผ ํ–ˆ์Œ์—๋„?.. ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ์ข€ ๋ฐœ์ƒํ•ด์„œ ๊ธฐ๋ก.. ์‚ฌ์ „ ์ž‘์—… ์ผ๋‹จ ์นด์นด์˜ค ๋””๋ฒจ๋กญ์Šค์—์„œ ์•ฑ ๋“ฑ๋ก๊ณผ ํ”Œ๋žซํผ์— ๋„๋ฉ”์ธ ๋“ฑ๋ก์ด ํ•„์š”ํ•˜๋‹ค. ์•ฑ์„ ๋“ฑ๋กํ•˜๋ฉด ์•ฑ ํ‚ค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์—ฌ๊ธฐ์„œ ํ•„์š”ํ•œ ๊ฐ’์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‚ค๊ฐ’. env ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด ์ฃผ์ž! ๋˜ ํ”Œ๋žซํผ์—์„œ Web์— ๋„๋ฉ”์ธ์„ ์ถ”๊ฐ€ํ•ด ์ค€๋‹ค. ๋‚˜๋Š” ๋ฐฐํฌ์ฃผ์†Œ๋ž‘ ๋กœ์ปฌํ˜ธ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ PR์‹œ vercel ํ”„๋ฆฌ๋ทฐ์—์„œ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ”„๋ฆฌ๋ทฐ ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค. index.html index.html์˜ ํ—ค๋” ..

[React] Input ํƒœ๊ทธ clear ๋ฒ„ํŠผ ์žฌ๋™์ž‘ ์•ˆ ํ•˜๋Š” ๋ฒ„๊ทธ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 3. 6. 22:17

Today, What I learned? ์ฃผ๋ง์ฏค์— ๋””์ž์ธ ์ˆ˜์ •์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ–ˆ๋˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ธ ์ธํ’‹ ํƒœ๊ทธ ํด๋ฆฌ์–ด ๋ฒ„ํŠผ์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์ด์Šˆ.. ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋‹ค๊ฐ€ ์ œ์–ด ์ปดํฌ๋„ŒํŠธ์™€ ๋น„์ œ์–ด ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด์„œ๋„ ์ฐพ๊ฒŒ ๋˜์–ด์„œ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. ์›์ธ ํŒŒ์•… ์ผ๋‹จ ์ฒ˜์Œ์€ ๋™์ž‘์ด ์ž˜ ๋˜๋Š”๋ฐ, ํ•œ ๋ฒˆ ์ง€์šฐ๊ณ  ๋‚œ ๋’ค๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ๋™์ž‘์ด ๋˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋กœ๊ทธ๋ฅผ ์ฐ์–ด๋ณด๋‹ˆ.. state๋Š” ๋ณ€๊ฒฝ์ด ์ž˜ ๋˜์—ˆ์ง€๋งŒ input์ฐฝ์— ๋น„์–ด๋ฒ„๋ฆฐ ๊ฐ’์ด ๋‹ค์‹œ ๋ฐ˜์˜์ด ์•ˆ ๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ.. input ํƒœ๊ทธ์— state์˜ ๊ฐ’์ด ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์˜์ด ๋˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ์›์ธ์€ ๋ฐ”๋กœ defaultValue !.. ๋งˆ์ดํŽ˜์ด์ง€๋Š” ๋Œ€์ฒด๋กœ ์ˆ˜์ •ํ•˜๋Š” ์˜์—ญ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์˜์‹์ ์œผ๋กœ value ๋Œ€์‹  defaultValue๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. (๊ธฐ..

[React] React-query์˜ staleTime, cacheTime, invalidateQueries
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 3. 3. 21:31

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..

[React] React.memo๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 3. 2. 22:50

Today, What I learned? ์‚ฌ์‹ค์ƒ ๋ผ๋””์˜ค๋ผ๋Š” ์ฝ˜์†”์€ ๋ผ๋””์˜ค๋ฒ„ํŠผ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ๋ ฅ ๋ถ€๋ถ„ ์ปดํฌ๋„ŒํŠธ์— ๋“ค์–ด๊ฐ€ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ „์ฒด์ ์œผ๋กœ ๋ Œ๋”๋ง์ด ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ถ€๋ชจ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—!... ์ด๋Ÿฐ ์“ธ๋ฐ์—†๋Š” ๋ Œ๋”๋ง ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ณ ์ž, React.memo๋ฅผ ์ ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. UserTopInfo -> ์ฒดํฌ ์˜์—ญ์„ ๊ฐ์‹ธ๋Š” ์ปดํฌ๋„ŒํŠธ -> ์ฒดํฌ๋ฐ•์Šค/๋ผ๋””์˜ค ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ์–ด์„œ, ํด๋ฆญ์˜ ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ๋‚ด๋ถ€ ์ปดํฌ๋„ŒํŠธ์ธ ์ฒดํฌ๋ฐ•์Šค์™€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— memo๋ฅผ ์ ์šฉํ–ˆ๋‹ค. ๋‘˜ ๋‹ค userTopInfo์—์„œ ์ „์—ญ ์ƒํƒœ์ธ userInfo๋ผ๋Š” props๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๋ฐ›๊ณ  ์žˆ๋‹ค. (์œ ์ €๊ฐ€ ์ˆ˜์ •ํ•œ ์ •๋ณด์— ๋Œ€ํ•œ ๋ถ€๋ถ„!) profiler ์ •๋ณด ์ˆ˜์ •๊ณผ ๊ด€๋ จ๋œ UserInfoT..

[React] ์ด๋ฏธ์ง€ ํƒœ๊ทธ ๋™์  ๊ฒฝ๋กœ ์ถ”๊ฐ€ src require
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 2. 28. 23:09

Today, What I learned? ๋งˆ์ดํŽ˜์ด์ง€์˜ UI๊ฐ€ ๊ฝค.. ๋ณ€๊ฒฝ์ด ๋˜์—ˆ๋‹ค. ๊ธฐ์กด๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ธฐ์ˆ  ์Šคํƒ๋ณ„ ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ผ์ผ์ด import ํ•ด์˜ฌ ์ˆ˜๋Š” ์—†์œผ๋‹ˆ.. ๋™์ ์œผ๋กœ ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์—‘์Šค๋ฐ•์Šค๋ฅผ ๋ณด๊ณ  ํŒ€์›๋ถ„์ด require๋ผ๋Š” ํžŒํŠธ๋ฅผ ์ฃผ์…จ๋‹ค. ๊ธฐ์กด ์ƒํƒœ ๊ฐ๊ฐ ๊ธฐ์ˆ  ์Šคํƒ์— ํ•ด๋‹นํ•˜๋Š” ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ ์ ์šฉ์„ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ์กฐ๋ฆฌ ์—‘๋ฐ• ใ… ... require() ์ ์šฉ require๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ ์šฉํ•ด๋ณด์•˜์„ ๋•Œ, ์ด๋ฏธ์ง€๊ฐ€ ์ž˜ ๋œจ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋‹ค๋ณด๋‹ˆ .default๋ฅผ ๋ถ™์—ฌ์•ผ ์—‘๋ฐ•์ด ์•ˆ ๋œจ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋˜ ์žˆ๋˜๋ฐ, ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์˜คํžˆ๋ ค ๋ถ™์ด๋‹ˆ๊นŒ ์—‘๋ฐ•์ด ๋–ด๋‹ค. ์ผ€์ด์Šค ๋ฐ”์ด ์ผ€์ด์Šค์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ? require๋งŒ ..

[React] ํŒŒ์ด์–ด๋ฒ ์ด์Šค ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰ ์ตœ์ ํ™”
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 2. 27. 22:53

Today, What I learned? ๋ผ์ดํŠธํ•˜์šฐ์Šค์˜ ์ง€ํ‘œ๋ฅผ ๋ณด๊ณ  ํ”„๋กœํ•„ ์ด๋ฏธ์ง€์˜ ํ™•์žฅ์ž๋ฅผ webp๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค๊ณ  ํŒ๋‹จ๋˜์–ด์„œ.. ๋‹ค๋ฅธ ์ด๋ฏธ์ง€ ํ™•์žฅ์ž๋ฅผ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์—์„œ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ํ™•์žฅ์ž๋„ ํ™”๋ฉด๊ณต์œ ๋ฅผ ํ†ตํ•ด ํŒ€์› ๋ถ„์ด ๋ณ€๊ฒฝํ•ด ์ฃผ์…จ์ง€๋งŒ, ๊ทธ ๊ณผ์ •์—์„œ ๋‚ด๊ฐ€ ๋˜ ์‹ค์ˆ˜ํ•œ(!) ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค ^^ใ…Ž ์šฐ์„  ํ˜„์žฌ ๋ผ์ดํŠธ ํ•˜์šฐ์Šค๋Š” ์ด๋ ‡๋‹ค. ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ฆˆ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด react-image-file-resizer ๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ™•์žฅ์ž๋ฅผ jpg, png ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ webp๋„ ํ•จ๊ป˜ ์ œ๊ณตํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋˜์–ด ์žˆ๋˜ ๋ฆฌ์‚ฌ์ด์ฆˆ ํฌ๋งท์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. const resizeFile = (file: File) => new Promi..