# [[Single Page Applications (SPA)]] ## ๐ Brief Summary Single Page Applications (SPA)์ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ ํ ์๋ก์ด ํ์ด์ง๋ฅผ ์ ์ฒด ๋ก๋ํ๋ ๊ธฐ๋ณธ ๋ฐฉ์ ๋์ , ์น ์๋ฒ์์ ์๋ก์ด ๋ฐ์ดํฐ๋ง ๋ฐ์์ ํด๋ผ์ด์ธํธ ์ธก์์ JavaScript๋ฅผ ํตํด ํ์ฌ ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ค์ ์์ฑํ๋ฉฐ ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์น์ฌ์ดํธ๋ฅผ ๋ปํฉ๋๋ค [1]. ์ด๊ธฐ ์ ธ(Shell) ํ์ผ์ด ๋ก๋๋ ํ์๋ ์ฆ๊ฐ์ ์ธ ํ์ด์ง ์ ํ๊ณผ ์ํํ ์ํ ์ ์ง๊ฐ ๊ฐ๋ฅํ์ฌ ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค [1, 2]. ํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ธก ๋ ๋๋ง(CSR)์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๊ฒ์ ์์ง ์ต์ ํ(SEO) ์ฒ๋ฆฌ์ ์ด๊ธฐ ๋ก๋ฉ ๋ฐ ์ํธ์์ฉ ์ฑ๋ฅ(Core Web Vitals) ์ธก๋ฉด์์ ๊ณ ์ ํ ๊ธฐ์ ์ ๊ณผ์ ๋ค์ ๋๋ฐํฉ๋๋ค [3-5]. ## ๐ Core Content * **SPA์ ์ฅ์ ๋ฐ ํ์ฉ:** ์ด๊ธฐ ์น์ ์ ์ฒด ์๋ก๊ณ ์นจ ๋ฐฉ์์์ ๋ฐ์ ํ SPA๋ AJAX๋ฅผ ๊ฑฐ์ณ ์ค๋๋ React, Vue, Svelte, Angular ๋ฑ ํ๋ ์์ํฌ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ฉ๋๋ค [1, 2]. ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์ ํ ์๋๊ฐ ๋น ๋ฅด๊ณ , ํ์ด์ง ๊ฐ ์ด๋ ์์๋ ์ค๋์ค ์ฌ์ ๋ฑ๊ณผ ๊ฐ์ ์ํ(State Persistence)๊ฐ ์ ์ง๋๋ค๋ ์ ์ ๋๋ค [2]. ํ๋ก ํธ์๋ UI์ ๋ฐฑ์๋ API๊ฐ ๋ช ํํ ๋ถ๋ฆฌ๋์ด ๊ฐ๋ฐ์ ๊ฒฝํ๋ ์ฐ์ํ๋ฉฐ, ๋ํ์ ์ผ๋ก Gmail, Spotify Web, Figma, Trello ๋ฑ์ ์ ์ฉ๋์ด ์์ต๋๋ค [2]. * **ํด๋ผ์ด์ธํธ ์ธก ๋ ๋๋ง(CSR)์ผ๋ก ์ธํ SEO์ ํ๊ณ:** SPA๋ ์ฒ์ ๋ก๋ฉ ์ ๋น์ด ์๋ HTML ์ ธ(`
`)์ ์ ์กํ๊ณ ์ดํ์ JavaScript๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๋ ๋๋งํ๋ CSR์ ๊ธฐ๋ณธ์ผ๋ก ํฉ๋๋ค [4]. ๊ตฌ๊ธ๋ด ๋ฑ์ ๋น HTML์ ๋จผ์ ์์ธํํ ํ ๋์ค์ JS ์คํ์ ์ํด ๋๊ธฐ์ด์ ๋ฃ๋ 2๋จ๊ณ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์น๋ฏ๋ก ์์ธ์ด ์ง์ฐ๋๊ฑฐ๋ ๋ฌด๋ฝ๋ ์ ์์ต๋๋ค [5-7]. ๋ํ ์ต์ AI ๋ชจ๋ธ(ChatGPT, Perplexity ๋ฑ)์ ํ๋ จ์ ๋๋ ์์ด์ ํธ ํฌ๋กค๋ฌ๋ค์ ๋น์ฉ ๋ฌธ์ ๋ก JavaScript ์คํ์ ์๋ตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ์์ SPA ํํ๋ผ๋ฉด AI ๊ฒ์ ์์ง ๋ฐ ์์ฝ ๊ธฐ๋ฅ์์ ์ฝํ ์ธ ๊ฐ ๋ฌด์๋ ์ํ์ด ๋งค์ฐ ํฝ๋๋ค [8]. * **์ฝ์ด ์น ๋ฐ์ดํ(Core Web Vitals) ์ฑ๋ฅ ์ ํ ์์ธ:** ๋๊ท๋ชจ์ JavaScript ๋ฒ๋ค์ ๋ค์ด๋ก๋ํ๊ณ ์คํํ๋ ์ด๋ฅธ๋ฐ 'ํ์ด๋๋ ์ด์ ๋น๋ํ(Hydration Bloat)'๋ ๋ธ๋ผ์ฐ์ ์ ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฅ์๊ฐ ์ ์ ํฉ๋๋ค [9, 10]. ์ด๋ก ์ธํด ์ฝํ ์ธ ๊ฐ ๋น ๋ฅด๊ฒ ํ์๋๋ ์๊ฐ์ธ LCP(Largest Contentful Paint)์ ์ฌ์ฉ์์ ์ฒซ ์ํธ์์ฉ ์ ๋ฐ์ ์๋๋ฅผ ๋ํ๋ด๋ INP(Interaction to Next Paint) ์ฑ๋ฅ์ด ๋ฎ์์ ธ ๊ตฌ๊ธ์ ํ์ด์ง ๊ฒฝํ ํ๊ฐ์์ ํ๋ํฐ๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค [9, 10]. * **๋ผ์ฐํ (Routing) ๋ฐ ๋ฉํ๋ฐ์ดํฐ์ ๊ตฌ์กฐ์ ๋ฌธ์ :** ๋ผ์ฐํ ์ด ํด๋ผ์ด์ธํธ ๋จ์์ ์ฒ๋ฆฌ๋๋ฉด์ ์กด์ฌํ์ง ์๋ ํ์ด์ง URL์ ์ ์ํ๋๋ผ๋ ์๋ฒ๋ ์ฌ์ ํ ์ ์ ์ฝ๋๋ฅผ ๋ฐํํ๋ ์ํํธ 404(Soft 404) ๋ฌธ์ ๊ฐ ๋ฐ์ํด ํฌ๋กค๋ง ์์ฐ์ ๋ญ๋นํ๊ฒ ๋ฉ๋๋ค [10, 11]. ๋๋ถ์ด ๋์ ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๋์ง ์์ผ๋ฉด ์ฌ๋ฌ ํ์ด์ง๊ฐ ๋์ผํ `