Frontend โ
React, JavaScript, ๋ธ๋ผ์ฐ์ ๋ฑ ํ๋ก ํธ์๋ ๊ด๋ จ ํฌ์คํธ๋ค์ ๋๋ค.
Async Generator ๋ก ํ๋ ฅ์ ์ค์ผ์ฅด๋ง ๊ตฌํํ๊ธฐ๋๊ท๋ชจ DFS ์ํ๋ก ๋ฉ์ถฐ๋ฒ๋ฆฐ UI ๋ฅผ Async Generator, Time Slicing, Macrotask ๋ฅผํ์ฉํด ์ํ์ ์ทจ์๊ฐ๋ฅํ๊ณ ๋ฐ์์ฑ ์๊ฒ ๋์ํ๋๋ก ๊ตฌํํ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋คํ๋ก ํธ์๋์์ ์์์ฑ ๋ณด์ฅํ๊ธฐ (feat. ๋์ฉ๋ ๋ฐ์ดํฐ ๋ฐฐ์น ์
๋ก๋)413 Payload ์๋ฌ ํด๊ฒฐ์ ์ํ ์ด๋ฏธ์ง ์์ถ, API ์ฒญํฌ ๋ถํ , ๋ถ๋ถ ์ฑ๊ณต ๋ณต๊ตฌ ๋ก์ง์ ๋์
ํ๋ฉฐ ํ๋ก ํธ์๋์์ All or Nothing์ ๊ตฌํํ ๊ฒฝํ๊ธฐ์ ์ ์ขํ ์ง์ฅ์์ ํ์ถํ ๋์ ๋ณ์๋ฆฌ ๋
ธ๋ ์์คํ
๊ตฌ์ถ๊ธฐ๋๋น๋ฉ ๋ ๋ ํ๋ฌ์ค "์ค๋์ฐฐ์นต" ์๋น์ค์ ๋ณ์๋ฆฌ ๋งต ์์คํ
์ ํ๋์ฝ๋ฉ๋ ์ขํ ๋์ ๊ธฐํํ ์๊ณ ๋ฆฌ์ฆ๊ณผ Render Props ํจํด์ผ๋ก ํด๊ฒฐํ๋ฉฐ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ํ๋ณดํ ๊ฒฝํ์ ๊ณต์ ํฉ๋๋ค.์ ์ญ์ํ๋ ์ด๋ค ๊ตฌ์กฐ๋ก ์ ์ฅํด์ผ ์ข์๊น? (Nested ํ ์ ์ญ์ํ์์ ํ์ถํ๊ธฐ)์ ์ญ์ํ๋ฅผ ๊ทธ๋ฅ ํ๋์ JSON ๊ฐ์ฒด๋ก ๊ด๋ฆฌํ๋ฉด ์๊ธฐ๋ ๋ฌธ์ ์ ๊ณผ, Redux Toolkit ์ createEntityAdapter ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทํ๋ ์ ์ญ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.SSE๋ฅผ Async Generator๋ก : ์ง์ง ์คํธ๋ฆผ์ฒ๋ผ ๋ค๋ฃจ๊ธฐServer Sent Events (SSE) ๋ฅผ ์ธ๋ถ์์๋ ์์ฐจ์ ์ผ๋ก ์ด๋ป๊ฒ ๋ค๋ฃฐ์ ์์๊น? ์ข
ํฉ์ค๊ณํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ LLM์ผ๋ก๋ถํฐ ์คํธ๋ฆฌ๋ฐ ์๋ต์ ๊น๋ํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด Generator ๋ฅผ ํ์ฉํ ๋ฐฉ๋ฒ์ ๊ณต์ ํฉ๋๋ค.[๋ฒ์ญ] ์ React Context ๋ ์ํ ๊ด๋ฆฌ ๋๊ตฌ๊ฐ ์๋๋ฉฐ Redux ๋ฅผ ๋์ฒดํ์ง ์๋๊ฐ์ด ๊ธ์ Mark Erikson์ "Why React Context is Not a 'State Management' Tool (and Why It Doesn't Replace Redux)" ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฒ์ญ ๋ฐ ๋ณด์ํ ๊ธ์
๋๋ค. ์ ์๊ถ์ ์๋ฌธ ์ ์์๊ฒ ์์ต๋๋ค. ๋ค์ ์์ญ์ด ํฌํจ๋์ด ์์ ์ ์์ต๋๋ค.๋ฆฌ์กํธ์์๋ ์์กด์ฑ ์ฃผ์
์ผ๋ก ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถฐ๋ณด์! - Renderer Props ํจํด (feat.DIP)์์กด์ฑ ์ฃผ์
์ด ๋ฐฑ์๋์์๋ง ์ฌ์ฉ๋๋ ํจํด์ด๋ผ๊ณ ? ๋ฆฌ์กํธ์์๋ ์์กด์ฑ ์ฃผ์
์ ํ์ฉํด ์ปดํฌ๋ํธ ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ๋ณด์! Renderer Props ํจํด์ ์์กด์ฑ ์ฃผ์
๊ณผ OCP, DIP ์์น๊ณผ ์ฐ๊ฒฐ์ง์ด ์์๋ด
๋๋ค[Redux ๊ณต์๋ฌธ์ ๋ฒ์ญ] ์ ์ญ์ํ๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํด์ผ ํ ๊น? - Normalizing State ShapeRedux ์ ํ๋ฆฌ์ผ์ด์
์์ ์ํ ๊ตฌ์กฐ๋ฅผ ์ ๊ทํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด
๋๋ค. ์ด ๊ธ์ Redux ๊ณต์ ๋ฒ์ญ์ด ์๋๋ฉฐ, ๊ฐ์ธ ํ์ต ๋ฐ ๊ณต์ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ ๋น๊ณต์ ๋ฒ์ญ์
๋๋ค. (์๋ฌธ : https://redux.js.org/usage/structuring-reducers/normalizing-state-shape)Isomorphic ์ด๋ ๋ญ๊ณ ์ด๋จ๋ ์ฌ์ฉํ๋ ๋ค์ด๋ฐ์ผ๊น ? (feat. useIsomorphicEffect ๋ ๋ญ๊น)์คํ์์ค๋ฅผ ๋ณด๋ค๋ณด๋ฉด Isomorphic ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ง์ฃผ์น๊ฒ ๋ฉ๋๋ค. Isomorphic ์ด๋ ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋จ๋ ์ฌ์ฉํ๋ ๋ค์ด๋ฐ์ธ์ง์ ๋ํด ์์๋ด
๋๋ค. ๋ ๋ฆฌ์กํธ์์ ์์ฃผ ์ฌ์ฉ๋๋ useIsomorphicEffect ํ
๋ ํจ๊ป ์ดํด๋ด
๋๋ค.๋ญฃ?! ๊ฐ์ ๋ณํ์ง ์๋๋ค๊ณ ? JavaScript ๋ถ๋ณ์ฑ(Immutability) ์ดํดํ๊ธฐ๋ถ๋ณ์ฑ(Immutability) ๋ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ํ๋ค ๋ณด๋ฉด ์ ๋ง ์์ฃผ ๋ฃ๋ ๋จ์ด๋ค. ๊ฐ์ ๋ฐ๊พธ์ง ์๋๋ค๋ ๋ง์ ์ดํด๋์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ทธ๊ฒ ์ด๋ป๊ฒ ๋์ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ React ์์๋ ๊ผญ ์ง์ผ์ผ ํ๋์ง ์์๋ณด์.