๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(93)
[Side Project] ๊ฐ€๋กœ์„ธ๋กœ ๋‚ฑ๋งํ€ด์ฆˆ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ(01) 2024๋…„ 11์›”๋ถ€ํ„ฐ, ํšŒ์‚ฌ ๋™๋ฃŒ๋ถ„ 2๋ช…๊ณผ ํ•จ๊ป˜ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.์ผ๋‹จ ๋ฉค๋ฒ„ ๊ตฌ์„ฑ์€ ํ”„๋ก ํŠธ๋Š” ๋‚˜, ๋™๋ฃŒ๋ถ„ 2๋ช…์€ ๋ฐฑ์—”๋“œ. ์ด๋ ‡๊ฒŒ 3๋ช…์ด์„œ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ‡ด๊ทผํ•˜๊ณ  ๋งค์ฃผ ์›”์š”์ผ์— ์˜จ๋ผ์ธ ๋˜๋Š” ์˜คํ”„๋ผ์ธ์œผ๋กœ ๋งŒ๋‚˜์„œ ๊ธฐํšํ•˜๊ณ  ๊ณ„ํš์„ ์„ธ์› ๋‹ค.์ฒ˜์Œ์—” ์กฐ๊ธˆ ํฐ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค๋ฅผ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€, ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ์ธ ๋งŒํผ ๋น ๋ฅด๊ฒŒ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก๋” ์ž‘์€ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค ์•„์ด๋””์–ด ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๊ฐ€๋กœ์„ธ๋กœ ๋‚ฑ๋งํ€ด์ฆˆ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ€ด์ฆˆ์˜ ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“๊ณ , ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ†ตํ•ด ์ถ”ํ›„ ์ž๋™ํ™”๊นŒ์ง€ ๊ณ ๋ คํ•˜๊ธฐ๋กœ ํ•˜์˜€๊ณ (์ฝ˜ํ…์ธ ์˜ ์งˆ๊ณผ ์–‘์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค์ด๊ธฐ ๋•Œ๋ฌธ์—)๊ธฐ์ˆ  ์ŠคํŽ™์€ ๋‹ค๋“ค ๊ฐ์ž ํ•ด๋ณด๊ณ  ์‹ถ์ง€๋งŒ ์‹ค๋ฌด์—์„œ๋Š” ๊ฒฝํ—˜ํ•˜๊ธฐ ํž˜๋“  ์ตœ์‹  ๊ธฐ์ˆ  ๋˜๋Š” ๋ณธ์ธ๋“ค์ด ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ์ŠคํŽ™์œผ๋กœ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜..
[ WEB ] ์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐฉ๋ฒ• ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ๊ผญ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.  ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๋Š๋ฆฐ ๋กœ๋”ฉ ์†๋„์™€ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๋ถˆํ•„์š”ํ•œ ์ž์› ๋‚ญ๋น„๋Š” ์‚ฌ์šฉ์ž๋กœ ํ•˜์—ฌ๊ธˆ ์ข‹์ง€ ์•Š์€ ๊ฒฝํ—˜์„ ๋‚จ๊ธฐ๊ณ , ์ด๋Ÿฐ ๊ฒฝํ—˜์€ ์‚ฌ์šฉ์ž๋กœ ํ•˜์—ฌ๊ธˆ ์„œ๋น„์Šค๋ฅผ ์ดํƒˆํ•˜๊ฒŒ๋” ๋งŒ๋“œ๋Š” ์ฃผ์š” ์›์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.      1. ์ดˆ๊ธฐ ๋กœ๋”ฉ ์ตœ์ ํ™”์ฝ”๋“œ ๋ถ„ํ•  (Code Splitting): ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ์ฒญํฌ๋กœ ๋‚˜๋ˆ„์–ด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋กœ๋“œํ•œ๋‹ค. Webpack, Rollup ๋“ฑ์˜ ๋ฒˆ๋“ค๋Ÿฌ์—์„œ dynamic import๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ถ€๋ถ„์—์„œ๋งŒ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. Lazy Loading: ์ด๋ฏธ์ง€๋‚˜ ๋น„๋””์˜ค ๊ฐ™์€ ๋ฆฌ์†Œ..
[ React 18+ ] RSC(React Server Componen) ํŒŒํ—ค์น˜๊ธฐ. RSC๋Š” React Server Components์˜ ์•ฝ์ž๋กœ, React18 ๋ฒ„์ „๋ถ€ํ„ฐ ๋“ฑ์žฅํ•œ ๊ฐœ๋…์ด๋‹ค.์„œ๋ฒ„์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. RSC๋Š” React์˜ ์ž์ฒด์ ์ธ ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ Next.js๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, RSC๋Š” ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Node.js๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ž˜์„œ Next.js๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด Express.js ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTTP ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ , ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ,  Webpack ๋ฒˆ๋“ค๋ง(์„œ๋ฒ„ / ํด๋ผ์ด์–ธํŠธ), ๋ฐ์ดํ„ฐ ํ†ต์‹ , ์„ฑ๋Šฅ ์ตœ์ ํ™”(์บ์‹ฑ) ๋“ฑ์˜ ์ถ”๊ฐ€์ ์ธ ์„ค..
[ Next.js ] Next15์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ. 2024๋…„ 10์›” 21์ผ Next15 ๋ฒ„์ „์ด ๊ณต์‹ ๋ธ”๋กœ๊ทธ์— ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋‹ค.๊ณต์‹์ ์œผ๋กœ ์•ˆ์ •ํ™”๋˜์–ด ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.  ์ด๋ฒˆ ๋ฆด๋ฆฌ์ฆˆ๋Š” RC1๊ณผ RC2์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์•ˆ์ •์„ฑ์— ์ค‘์ ์„ ๋‘๋ฉด์„œ๋„ ํฅ๋ฏธ๋กœ์šด ์—…๋ฐ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค๊ณ  ํ•œ๋‹ค.10์›” 24์ผ์— ์—ด๋ฆฐ Next.js Conf๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์‚ฌ์ „ ์‹ ์ฒญํ•˜๊ณ  ๋ชป ๋“ค์–ด์„œ ๋…นํ™”๋ณธ์„ ๋ณด๊ณ  ๋‹ค์Œ์— ๊ทธ ๋‚ด์šฉ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…๋„ ํ•  ์˜ˆ์ •์ด๋‹ค.  Next15์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.# ์ƒˆ๋กœ์šด ์ž๋™ ์—…๊ทธ๋ ˆ์ด๋“œ CLI ์‚ฌ์šฉnpx @next/codemod@canary upgrade latest# ...๋˜๋Š” ์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œnpm install next@latest react@rc react-dom@rc      Next.js 15์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ..
React 18 ๋ณ€๊ฒฝ์  ์ •๋ฆฌ ์˜ค๋Š˜์€ React19 release version์ด ๋‚˜์˜ค๊ธฐ ์ „์— React 18์˜ ํฐ ๋ณ€๊ฒฝ์ ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.ํ˜„์žฌ ๊ธฐ์ค€ React ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์€ 18.3.1 ์ด๋‹ค.(2024๋…„ 4์›” 26์ผ) ๊ทธ๋ฆฌ๊ณ  React18์€ 2022๋…„ 3์›” 29์ผ์— ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ๋‹ค.        1. ๋™์‹œ ๋ Œ๋”๋ง(Concurrent Rendering) ๋™์‹œ ๋ Œ๋”๋ง(Concurrent Rendering)์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋” ์œ ์—ฐํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ์ „ํ†ต์ ์ธ ๋ Œ๋”๋ง ๋ฐฉ์‹์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•œ ๋ฒˆ์— ๋ Œ๋”๋ง๋˜๋ฉด์„œ ์˜ค๋žœ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ UI๊ฐ€ ๋ฉˆ์ถ”๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ๋™์‹œ ๋ Œ๋”๋ง(Concurrent Rendering)์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜..
[ React ] React 19 RC์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž React19 RC(Release Candidate)๋Š” ํ˜„์žฌ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ 2024๋…„ 9์›” ๊ธฐ์ค€์œผ๋กœ ์•„์ง ์ •์‹ ์ถœ์‹œ๋˜์ง€ ์•Š์•˜๋‹ค.  ๊ฐ€์žฅ ์ตœ์‹  ์ •๋ณด(2024๋…„ 4์›” ๊ธฐ์ค€, React Blog ์ฐธ๊ณ )๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด React 19๋Š” ์ด์ „ ๋ฒ„์ „๋“ค๊ณผ ๋น„๊ตํ•ด ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ์„ ์‚ฌํ•ญ๊ณผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋“ค์„ ํฌํ•จํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค.  ์„ฑ๋Šฅ ๊ฐœ์„ : ๋ Œ๋”๋ง๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ์ „๋ง.์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ: ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์™„์ „ํ•œ ๊ตฌํ˜„์ด ํฌํ•จ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.๋™์‹œ์„ฑ ๊ธฐ๋Šฅ ๊ฐœ์„ : React 18์—์„œ ๋„์ž…๋œ ๋™์‹œ์„ฑ ๊ธฐ๋Šฅ๋“ค์ด ๋”์šฑ ์•ˆ์ •ํ™”๋˜๊ณ  ๋ฐœ์ „๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ.์ƒˆ๋กœ์šด ํ›…: ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ž‘์—…์„ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค„ ์ƒˆ๋กœ์šด ํ›…๋“ค์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ง€์› ๊ฐ•ํ™”: ํƒ€์ž…์Šคํฌ๋ฆฝ..
[ JS ] e.stopPropagation ๊ณผ e.preventDefault ์ฐจ์ด ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ e.stopPropagation()๊ณผ e.preventDefault()๋Š” ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ์•„์˜ˆ ๋‹ค๋ฅธ ์ด๋ฒคํŠธ์ด๋‹ค.e.stopPropagation()์€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ƒ์œ„ ํƒœ๊ทธ์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๋„๋ก ๋ง‰๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋‹ค์‹œ๋งํ•ด ์ด๋ฒคํŠธ์˜ ๋ฒ„๋ธ”๋ง์„ ์ค‘์ง€ํ•˜์—ฌ ํ˜„์žฌ ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์œ„ ์š”์†Œ(๋ถ€๋ชจ)๋กœ ์ „ํŒŒ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.e.preventDefault() ๋Š” ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ € ๋™์ž‘์„ ๊ฐ€์ง„ ์ผ๋ถ€ ์ด๋ฒคํŠธ๊ฐ€ ํ•ด๋‹น ๊ธฐ๋ณธ ๋™์ž‘์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•œ๋‹ค. ๋ณดํ†ต ๋งํฌ ํด๋ฆญ ์‹œ ํŽ˜์ด์ง€ ์ด๋™๋ง‰๊ธฐ, ํผ ์ œ์ถœ์‹œ ํŽ˜์ด์ง€ ๋ฆฌ๋กœ๋“œ ๋ฐฉ์ง€๋“ฑ์˜ ๊ธฐ๋ณธ ๋™์ž‘ ์ œ์–ด ์—ญํ• ์„ ํ•œ๋‹ค.        e.stopPropagation() ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ๋ฒ„๋ธ”๋ง์„ ๋ฐฉ์ง€ํ•ด์ค€๋‹ค.( ๋ฒ„๋ธ”๋ง : ์ด๋ฒคํŠธ์˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ถ€๋ชจ๋กœ (์•ˆ์ชฝ -> ๋ฐ”๊นฅ์ชฝ) ์ „ํŒŒ๋˜๋Š” ๊ฒƒ. ) ex..
[ WEB ] ์›นํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์•ฑ ์„ฑ๋Šฅ ์ตœ์ ํ™” ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์›น ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ?ํฌ๊ฒŒ ๋กœ๋”ฉ ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ๋ Œ๋”๋ง ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ด๋ ‡๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.     ๋กœ๋”ฉ ์„ฑ๋Šฅ ์ตœ์ ํ™”์›นํ”„๋ก ํŠธ์—์„œ ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๋‹ค.์šฐ์„  ๋ฆฌ์†Œ์Šค ์ตœ์†Œํ™” ๋ฐ ์••์ถ•์„ ํ†ตํ•œ ์‚ฌ์ด์ฆˆ ๊ฐ์†Œ(JavaScript, CSS, HTML ํŒŒ์ผ ์••์ถ•, ์ด๋ฏธ์ง€ ์ตœ์ ํ™”-ํฌ๊ธฐ ์กฐ์ •, ์••์ถ•, webP์‚ฌ์šฉ ๋“ฑ)๋ฅผ ํ†ตํ•ด ์•ฑ์˜ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์บ์‹ฑ ์ „๋žต์„ ๊ตฌํ•œํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์š”์ฒญ๋“ฑ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์บ์‹ฑ ์ „๋žต์œผ๋กœ๋Š” ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ์„ค์ •์„ ์ตœ์ ํ™”ํ•˜๊ฑฐ๋‚˜, ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์ด์šฉํ•œ ์˜คํ”„๋ผ์ธ ์บ์‹ฑ, CDN์„ ํ†ตํ•œ ๋ฆฌ์†Œ์Šค ์บ์‹ฑ๋“ฑ์ด ์—ฌ๊ธฐ์— ์†ํ•œ๋‹ค. SSR, SSG ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ธก JavaScript ์‹ค..