Community

๐Ÿ—ž๏ธ ์ฃผ๊ฐ„ ๋‰ด์Šค๋ ˆํ„ฐ - ํ•ด์™ธ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ - 7์›” 4์ฃผ์ฐจ

๋งค์ฃผ ์›”์š”์ผ, ํ•ด์™ธ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ ์ค‘ ์ฃผ๋ชฉํ•  ๋งŒํ•œ ๋‚ด์šฉ๋“ค์„ ์„ ๋ณ„ํ•ด ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์—…๊ณ„ ํŠธ๋ Œ๋“œ๋ฅผ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์•„์š”. --- 1. ๋ฆฌ์•กํŠธ 18์ด ์–ด๋–ป๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š”๊ฐ€ How React 18 Improves Application Performance ๋งํฌ: https://vercel.com/blog/how-react-18-improves-application-performance ์ด ๊ธ€์€ Vercel ํŒ€์—์„œ ์ž‘์„ฑํ•œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋กœ, React 18์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ๊ฐœ์„ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. React 18์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋น„ํ•˜์ธ๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ๋Š” Concurrent Renderer์™€ Suspense ์ปดํฌ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Concurrent Renderer๋Š” ๋ณ‘๋ ฌ ๋ Œ๋”๋ง์„ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š”๋ฐ ๋„์›€์„ ์ฃผ๊ณ , Suspense ์ปดํฌ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ๋Š” ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. React 18์˜ ์ด๋Ÿฌํ•œ ๊ฐœ์„  ์‚ฌํ•ญ๋“ค์€ React ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๊ธฐ์—ฌํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. 2. Reactivity ์‹ค์ „ ์ž…๋ฌธ A Hands-on Introduction to Fine-Grained Reactivity ๋งํฌ: https://dev.to/ryansolid/a-hands-on-introduction-to-fine-grained-reactivity-3ndf ์ด ๊ธ€์€ Ryan Carniato๊ฐ€ ์ž‘์„ฑํ•œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋กœ, ์„ธ๋ฐ€ํ•œ Reactivity์— ๋Œ€ํ•œ ์‹ค์ „ ์ž…๋ฌธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Reactivity๋Š” ์ƒํƒœ ๋ณ€ํ™”์— ๋”ฐ๋ผ UI๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š”์ง€๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฐœ๋…์ธ๋ฐ, ์ด ๊ธ€์€ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์„ธ๋ฐ€ํ•œ Reactivity์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋“ค์€ ์ƒํƒœ ๊ด€๋ฆฌ์™€ UI ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋‹ค ์ •๊ตํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ, ๋” ํšจ์œจ์ ์ด๊ณ  ์œ ์—ฐํ•œ ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 3. Radash: lodash์™€ Ramda์˜ ๊ฒฝ์Ÿ์ž ๋งํฌ: https://github.com/rayepps/radash lodash๋ƒ ramda๋ƒ (ํ˜น์€ underscore์ด๋ƒ..), ๊ณผ๊ฑฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋œจ๊ฑฐ์šด ๋…ผ์Ÿ์„ ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋‚˜์š”? Radash๋Š” lodash, ramda์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฒฝ์Ÿ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ฃผ๋ชฉ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 4. ArrowJS ๋งํฌ: https://www.arrow-js.com/ ์ด์ „์— ์†Œ๊ฐœ๋œ htmx์— ์ด์–ด์„œ ์ตœ๊ทผ์— ์†Œ๊ฐœ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ArrowJS๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ArrowJS๋Š” ์ตœ์†Œ์ฃผ์˜๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์••์ถ•๋œ 2KB ํฌ๊ธฐ์˜ ์ฝ”๋“œ ๋ฒˆ๋“ค์— ๋ฆฌ์•กํ‹ฐ๋ธŒ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์ž์›์œผ๋กœ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋น ๋ฅธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ ํ•ฉํ•œ ์„ ํƒ์ง€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 5. Chrome์ด WebGPU๋ฅผ ์ถœ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ: https://developer.chrome.com/blog/webgpu-release Chrome ๋ธŒ๋ผ์šฐ์ €๊ฐ€ WebGPU๋ฅผ ์ถœ์‹œํ–ˆ๋‹ค๋Š” ์†Œ์‹์ž…๋‹ˆ๋‹ค. WebGPU๋Š” WebGL์˜ ํ›„์† ๊ธฐ์ˆ ๋กœ, ๋ธŒ๋ผ์šฐ์ €์—์„œ 3D ๊ทธ๋ž˜ํ”ฝ๊ณผ ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ๊ฐ™์€ ๊ณ ์„ฑ๋Šฅ ์ž‘์—…์„ ์ง€์›ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ทธ๋ž˜ํ”ฝ์Šค API์ž…๋‹ˆ๋‹ค. WebGPU์˜ ๋„์ž…์€ ์›น์—์„œ ๋”์šฑ ํ–ฅ์ƒ๋œ 3D ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋Šฅ๊ณผ ๋จธ์‹  ๋Ÿฌ๋‹์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋ฅผ ํ†ตํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค