๐ย Reference
๐ย Chapter
useSyncExternalStore
๋ React ์ธ๋ถ์ ๋ฐ์ดํฐ ์์ค(external store)๋ฅผ React ์ํ์ ๋๊ธฐํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํน์ ๋ชฉ์ ์ ํ
์ด๋ค.localStorage
์ ๊ฐ์ ์ธ๋ถ API์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฌ ๋ ์ฌ์ฉ๋๋ค.useSyncExternalStore
์ ํต์ฌ์ "๋๋ฌผ(Tearing)" ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด๋ค.useSyncExternalStore
๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ, ์ธ๋ถ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ๋ React๊ฐ ํญ์ ๋๊ธฐ์ ์ผ๋ก ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์์ UI๋ฅผ ์
๋ฐ์ดํธํ๋๋ก ๋ณด์ฅํ๋ค.useSyncExternalStore
๋ ์ธ ๊ฐ์ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค.
subscribe
: ์ธ๋ถ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ ๊ฐ์งํ๋ ๊ตฌ๋
(subscription) ํจ์์ด๋ค. ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด React์๊ฒ ์๋ฆฌ๋ ์ญํ ์ ํ๋ค.getSnapshot
: ์ธ๋ถ ๋ฐ์ดํฐ์ ํ์ฌ ๊ฐ์ ๋ฐํํ๋ ํจ์์
๋๋ค. React๋ ์ด ํจ์๋ฅผ ํธ์ถํ์ฌ ์ต์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.getServerSnapshot
: ์๋ฒ ๋ ๋๋ง(SSR) ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ํจ์๋ก, ์ด๊ธฐ ๊ฐ์ ์ ๊ณตํ๋ค. (์ ํ ์ฌํญ)