CHZZK-Study / Grass-Diary-Client

์ทจ์ง€์ง 2ํŒ€ ํ”„๋กœ์ ํŠธ Grass Diary
1 stars 3 forks source link

๐Ÿ”ง chore: zustand ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ #160

Closed rkdcodus closed 2 months ago

rkdcodus commented 2 months ago

โœ… ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๐Ÿ“ ์ž‘์—… ์ƒ์„ธ ๋‚ด์šฉ

1๏ธโƒฃ ํ™”๋ฉด ๊นœ๋ฐ•์ž„ ๋ฌธ์ œ

์ฒ˜์Œ ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ ๋  ๋•Œ(ํ˜น์€ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ) ํŽ˜์ด์ง€๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ๊นœ๋ฐ•์ด๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. route์— ์ ์šฉํ–ˆ๋˜ suspense์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹๊นŒ ์ถ”์ธก๋˜์–ด ํ…Œ์ŠคํŠธํ•ด๋ณธ ๊ฒฐ๊ณผ, suspense๊ฐ€ ์›์ธ์ž„์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์˜ˆ์ „์— suspense์™€ lazy ๋„์ž…ํ–ˆ๋˜ ์ด์œ 

์˜ˆ์ „์— 1์ฐจ ๊ฐœ๋ฐœ์ด ๋งˆ๋ฌด๋ฆฌ ๋  ๋•Œ์ฏค ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์ง€์—ฐ์‹œ๊ฐ„์„ ์ค„์ด๊ณ ์ž lazy loading ๋ฐฉ์‹์„ ๋„์ž…ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

react๋Š” SPA์ด๊ธฐ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ๊นŒ์ง€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. lazy loading์€ ์ดˆ๊ธฐ์— ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ๋กœ ํ•„์š”ํ•  ์‹œ์ ์— ๋กœ๋“œ๋˜๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ๋•Œ ๋™์  import๋ฅผ ํ†ตํ•ด ๋™๊ธฐ์ ์œผ๋กœ ๋กœ๋“œ๋˜๊ณ  ๋กœ๋“œ ์™„๋ฃŒ ์ „๊นŒ์ง€์˜ ๋กœ๋”ฉ ๊ณผ์ •์— suspense๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. suspense๋Š” ์•„์ง ๋ Œ๋”๋ง ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ์„ ๋•Œ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋กœ๋”ฉํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

suspense๊ฐ€ ๊นœ๋ฐ•์ž„ ๋ฌธ์ œ์˜ ์›์ธ์ด ๋œ ์ด์œ ๋Š” ๋„คํŠธ์›Œํฌ๊ฐ€ ๋น ๋ฅธ ์ƒํƒœ์—์„œ ๋กœ๋”ฉํ™”๋ฉด๊นŒ์ง€ ์ˆœ์‹๊ฐ„์— ์ง€๋‚˜๊ฐ€๋ฒ„๋ ค ๊นœ๋ฐ•๊ฑฐ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์ง€๊ฒŒ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  suspense๋ฅผ ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด์— ์”Œ์› ๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๋”ฉํ™”๋ฉด์ด ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ ๋Œ€์‹  ๊ทธ๋ ค์ ธ ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ๊นœ๋ฐ•์ด๊ฒŒ ๋˜์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋„์ž…ํ–ˆ๋˜ suspense์™€ lazy๋ฅผ ์ œ๊ฑฐํ•ด์ฃผ๋‹ˆ ์ „ํŽ˜ ํŽ˜์ด์ง€ ๊นœ๋ฐ•์ž„ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋“ค์ด ํ•œ๋ฒˆ์— ๋กœ๋“œ๋˜์ง€ ์•Š๊ณ  ๊ฐ์ž ๋”ฐ๋กœ ๋ Œ๋”๋ง ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ „

-Clipchamp-ezgif com-video-to-gif-converter

ํ›„

2024-08-01 22;28;07

2๏ธโƒฃ suspense ์ œ๊ฑฐ๋กœ ๋‚˜ํƒ€๋‚œ ์—๋Ÿฌ

suspense์™€ lazy ์ œ๊ฑฐ ํ›„์— ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค.

A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition. ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ์— ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ์ด ๊ฒฝ์šฐ์—” React๊ฐ€ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ๋™์•ˆ ์ปดํฌ๋„ŒํŠธ์˜ ๋ Œ๋”๋ง์„ ์ผ์‹œ ์ค‘๋‹จ(Suspense)ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. image

ํ™•์ธ ๊ฒฐ๊ณผ, useProfile ํ›…์„ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค ๋•Œ๋ฌธ์— ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ Senspense๋กœ ๊ฐ์‹ธ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. (Setting ํŽ˜์ด์ง€ ์ œ์™ธ, Setting ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ ์—๋Ÿฌ ๋ฐœ์ƒํ•จ.) ์•„๋ž˜ 4๊ตฐ๋ฐ์˜ ์ปดํฌ๋„ŒํŠธ์— ์ ์šฉํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

3๏ธโƒฃ zustand ์„ค์น˜

recoil -> zustand ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

zustand๋Š” ํ˜„์žฌ ์ ์šฉ๋˜์–ด ์žˆ๋Š” recoil๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” redux > zustand > jotai > recoil ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. redux๋Š” ์‚ฌ์šฉ๋ฒ•์ด ๊ฝค ๋ณต์žกํ•˜๊ณ  ํŒจํ‚ค์ง€ ์šฉ๋Ÿ‰์ด ํฐ ๋ฐ˜๋ฉด, zustand๋Š” ์ง๊ด€์ ์ธ ์‚ฌ์šฉ๋ฒ•๊ณผ ๋งค์šฐ ์ ์€ ์–‘์˜ ์ฝ”๋“œ๋กœ๋„ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. recoil์€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋น„ํ•ด ์—…๋ฐ์ดํŠธ๊ฐ€ ์ž˜ ๋˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿšจ ๋ฒ„๊ทธ ๋ฐœ์ƒ ์ด์œ  (์„ ํƒ ์‚ฌํ•ญ)

๐Ÿ”Ž ํ›„์† ์ž‘์—… (์„ ํƒ ์‚ฌํ•ญ)

๐Ÿค” ์งˆ๋ฌธ ์‚ฌํ•ญ (์„ ํƒ ์‚ฌํ•ญ)

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ (์„ ํƒ ์‚ฌํ•ญ)

Transition : ์‰ฟ, ์ด์ œ ์•ˆ์ „ํ•ด ๋‚˜์˜ ์ž‘์€ Suspense ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ

๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท (์„ ํƒ ์‚ฌํ•ญ)

๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์Šคํฌ๋ฆฐ์ƒท์ด ์žˆ๋‹ค๋ฉด ์ฒจ๋ถ€ํ•ด์ฃผ์„ธ์š”.

โœ… ์…€ํ”„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์ด์Šˆ ๋ฒˆํ˜ธ: Close #161