Vue+express์์ Next.js๋ก, '์จ๊ณ '์ ๋ง์ด๊ทธ๋ ์ด์ (1,2)
Vue+express์์ Next.js๋ก, '์จ๊ณ '์ ๋ง์ด๊ทธ๋ ์ด์ (1,2) ๊ด๋ จ
[FEConf2023์์ ๋ฐํํ Vue+express์๋ ์๋น์ค๊ฐ ์ด์ธ๊ณ์์ Next.js? (ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์ )][1]๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ฐํ ๋ด์ฉ์ 2ํ๋ก ๋๋์ด ๋ฐํํฉ๋๋ค. 1ํ์์๋ ์จ๊ณ ์ ์๋น์ค ํ๋ ์์ํฌ๋ฅผ Vue์์ Next๋ก ์ ํํ๊ฒ ๋ ๋ฐฐ๊ฒฝ๊ณผ ์ฌ์ ์์ ์ ๋ํด ์ดํด๋ด ๋๋ค. 2ํ์์๋ ํ์ด์ง url ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์งํํ๋ฉฐ ๊ฒช์๋ ๋ฌธ์ ์ ๊ณผ ๊ฐ์ ๊ณผ์ ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค. ๋ณธ๋ฌธ์ ์ฝ์ ๋ ์ด๋ฏธ์ง์ ์ถ์ฒ๋ ๋ชจ๋ ์ด ์ฝํ ์ธ ์ ๊ฐ์ ์ ๋ชฉ์ ๋ฐํ ์๋ฃ๋ก, ๋ฐ๋ก ์ถ์ฒ๋ฅผ ํ๊ธฐํ์ง ์์์ต๋๋ค. ๋ฐํ ์๋ฃ๋ FEConf2023 ํํ์ด์ง์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
์จ๊ณ ๊ฐ๋ฐํ์ ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์
์จ๊ณ ์์ ๊ธฐ์ ๋ถ์ฑ ํด๊ฒฐ, ํ์ ์์ฐ์ฑ์ ๊ฐ์ ํ๋ ์ ๋ฌด๋ฅผ ๋งก๊ณ ์๋ ํ๋ก ํธ์๋ ์์ง๋์ด ์ ์ง๋ง์ ๋๋ค. ์ด ๊ธ์์๋ ์๋น์ค์ ํ๋ ์์ํฌ๋ฅผ Vue์์ Next๋ก ์ ํํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.
ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์ ๋ฐฐ๊ฒฝ, ์ ์ง์ ์ธ ํ์ด์ง ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ , ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์ ๊ณ ๋ คํด์ผ ํ๋ ํฌ์ธํธ, ๊ทธ๋ฆฌ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ค์ ๊ฒช์๋ ์ด์์ ๊ทธ๊ฑธ ํด๊ฒฐํ ๊ณผ์ ์ ๊ณต์ ํฉ๋๋ค.
1. Next.js ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฐ์ ๋ฐฐ๊ฒฝ
ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ธฐ์กด์ ์ฌ์ฉํ๋ ๊ธฐ์ ์คํ์ด ๋ ์ด์ ์ ์ง๋ณด์๊ฐ ๋ถ๊ฐํ ๋, ์๋ก์ด ํ๋ ์์ํฌ์ ์ฑ๋ฅ์ด ํ์ํ ๋, ๋๋ ์์ฅ์ ์ ์ ํ๋ ๊ธฐ์ ์ ๋ฐ๋ผ๊ฐ ํ์๊ฐ ์์ ๋ ๊ณ ๋ ค๋ฉ๋๋ค.
์จ๊ณ ํ์ ๊ฒฝ์ฐ, Vue2 ๊ธฐ๋ฐ์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ฌ SSR์ ๊ตฌ์ถํ์๋๋ฐ, ์ด๋ SEO(๊ฒ์์์ง ์ต์ ํ)์ ๊ฐ์ ์ฌ๋ฌ ์ด์ ์ ์ ๊ณตํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ์ด ์ง๋๋ฉด์ Vue2์ LTS(์ฅ๊ธฐ ์ง์) ์ข ๋ฃ๊ฐ ์์ ๋์ด ์์๊ณ , ์์ฒด ๊ตฌ์ถ๋ ํ๋ ์์ํฌ๋ ์ปค๋ฎค๋ํฐ ์ง์์ด ๋ถ์กฑํ์ฌ ์ ์ง๋ณด์์ ์ด๋ ค์์ด ์์ธก๋์์ต๋๋ค.
์ด๋ฌํ ์ํฉ ์์์, ์๋น์ค ๊ท๋ชจ์ ํ์ฅ๊ณผ ํจ๊ป ๊ธฐ์ ์คํ์ ํ๊ณ์ ์ด ๋ช ํํด์ก์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฌธ์ ์ ๋๋ฆฐ ๋น๋ ์๊ฐ, ๊ทธ๋ฆฌ๊ณ ๋ถ๋ง์กฑ์ค๋ฌ์ด LCP(Largest Contentful Paint) ์ฑ๋ฅ์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฑฐ๋ํ ๊ธฐ์ ์คํ์ ๊ธฐ์กด ํ๋ ์์ํฌ ๋ด์์ ๊ฐ์ ํ๋ ๊ฒ๋ณด๋ค, ๋ค๋ฅธ ํ๋ ์์ํฌ๋ก์ ์ ํ์ ํตํด ์๋ก์ด ์์์ ํ๋ ๊ฒ์ด ๋ ํ๋ช ํ ๊ฒฐ์ ์ผ๋ก ํ๋จ๋์์ต๋๋ค.
2. ํ๋ ์์ํฌ ์ ์ ์ด์ : ํจ์จ์ ์ธ ํ๋ก๋ํธ/์กฐ์ง ์ด์
Vue3๊ธฐ๋ฐ์ Nuxt.js ๋์ Next.js๋ฅผ ์ ํํ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Next.js๋ ์คํ ์ด๋ธํ ํ๋ ์์ํฌ๋ก, ์จ๊ณ ํ์ ๋ณต์กํ ์ ํ ์์กด์ฑ์ ๊ด๋ฆฌํ๊ธฐ์ ์ ํฉํ์ต๋๋ค. ๋ํ, ๋ฆฌ์กํธ๋ ๋ฉ์ด์ ์ ๋ฐ์ดํธ๊ฐ ์๋์ ์ผ๋ก ์ฉ์ดํ์ฌ, ์ ํ์ ์ต์ ์ํ๋ก ์ ์ง๊ด๋ฆฌ ํ๋ ๋ฐ ์ ๋ฆฌํ ์ ์ ์ ๊ณตํ์ต๋๋ค. ๋ฆฌ์กํธ์ ์์ฅ ์ ์ ์จ์ ์ฑ์ฉ ์์ฅ์์๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์ณค์ผ๋ฉฐ, ๋ฆฌ์กํธ ๊ธฐ๋ฐ์ ์์ง๋์ด๊ฐ ๋ง์ ๊ฒ๋ Next.js๋ฅผ ์ ํํ๋ ๋ฐ ํ๋ชซํ์ต๋๋ค. ๊ฒฐ๊ตญ์๋ ๋น ๋ฅธ ์ฑ์ฅ์ ํด์ผ ํ๋ ์คํํธ์ ์ ํน์ฑ์ ๊ณ ๋ คํ์ฌ, ์ด์์ ์ธ ์ธก๋ฉด์์ ์ด์ ์ ์ทจํ ์ ์๋ Next.Js๋ฅผ ์ ํํ๊ฒ ๋์์ต๋๋ค.
3. ์์ฉ B2C ์๋น์ค์ ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํ ๊ณผ์
๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์ ๊ฐ์ฅ ๋จผ์ ๊ณ ๋ คํ ์ ์ ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋๋ค. ์ ํ์ ๊ท๋ชจ๊ฐ ์๋นํ ํฌ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ชจ๋์ ํ ๋ฒ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ ์ค์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ์ต๋๋ค. ์ด๋ฌํ ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ธฐ๋ฅ ๊ฐ๋ฐ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ง์ํ๋ฉด์๋ ์ ํ์ ์์ ์ฑ์ ์ ์งํ ์ ์๊ฒ ํด์ค๋๋ค. ์ ์ง์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์คํํ๊ธฐ ์ํ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ํ์ด์ง URL ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ ์ปดํฌ๋ํธ ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋๋ค. ์จ๊ณ ํ์ ํ์ด์ง ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ํํ์ต๋๋ค. ์ด ๋ฐฉ์์ ์๋น์ค์ ๊ฐ ํ์ด์ง๋ฅผ ์ฐจ๋ก๋ก ์ ํ๋ ์์ํฌ๋ก ์ด์ ํจ์ผ๋ก์จ, ๊ธฐ์กด ์๋น์ค์ ์ ์๋น์ค๊ฐ ๋์์ ์ด์๋๋ฉฐ ์ ์ง์ ์ผ๋ก ์ ํ๋ ์ ์๋๋ก ํฉ๋๋ค.
ํ์ง ๊ด๋ฆฌ๋ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ ํธ์์ ์ค์ํ ๋ ๋ฒ์งธ ๊ณผ์ ์ ๋๋ค. ํนํ B2C ์๋น์ค์ธ ๊ฒฝ์ฐ, ๊ฒ์ ์์ง ์ต์ ํ(SEO)๊ฐ ํต์ฌ ์์์ ๋๋ค. ์จ๊ณ ์๋น์ค์ ๊ฐ์์ฑ๊ณผ ์ ๊ทผ์ฑ์ ๋์ด๊ธฐ ์ํด SEO๋ฅผ ์ค์ํ๊ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์์ ์ ํ์จ ์ญ์ ๋งค์ฐ ์ค์ํ ์งํ์ ๋๋ค. ์๋น์ค์ ์ฑ๊ณต์ ์ฌ์ฉ์๊ฐ ์ํ๋ ์์ ์ ํจ๊ณผ์ ์ผ๋ก ์ํํ ์ ์๊ฒ ํ๋ ๋ฐ ์์ผ๋ฏ๋ก, ์ ํ์จ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ง์ ๋ฐ์ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ธํ๋ผ๋ Next.js์ ๊ฐ์ด ์๋ฒ ๋ ๋ฒจ์์ ๋์ํ๋ ํ๋ ์์ํฌ๋ฅผ ๋์ ํ ๋ ํน๋ณํ ๊ณ ๋ คํด์ผ ํ ์์์ ๋๋ค. ์๋ฒ์ ๊ตฌ์ฑ์ด๋ ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํ ์๋ ์์ผ๋ฏ๋ก, ์ธํ๋ผ ์์ค์์์ ์ค๋น์ ํ ์คํธ๊ฐ ํ์์ ์ ๋๋ค.
4. ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํ ์ฌ์ ์์ : ์ธํ๋ผ ๊ด๋ฆฌ
์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ์๋ ๋ค์ํ ์ฌ์ ์์ ์ด ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธฐ์กด Vue๋ก ์์ฑ๋ ์ฝ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ React๋ก ์ฌ์ค์นํ๊ณ , ๋ชจ๋์ React์ hooks๋ก ์ฌ์ค๊ณํด์ผ ํฉ๋๋ค. ๋ก๊ทธ์ธ ์ํ์ ์ ์ง, ์ธํ๋ผ์ ๊ตฌ์ถ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ๊ณผ์ ๋ ์ค์ํฉ๋๋ค.
ํนํ ์ธํ๋ผ์ ๊ฒฝ์ฐ, AWS์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ ํ์ฉํด Next.js์ Vue.js๋ก๋ถํฐ ์๋น๋๋ URL์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ํํ์ต๋๋ค. ์ด๋ฌํ ์ธํ๋ผ์ ๋ณํ๋ ๋ค์ํ ๋ก๋๋ฐธ๋ฐ์ ์ค์์๋ ํนํ ๋ ์ด์ด 7 ์ ํ๋ฆฌ์ผ์ด์ ๋ก๋๋ฐธ๋ฐ์์ ํ์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
Next.js ๋ฐฐํฌ ์งํ ์ ์ ๋์ ๋ํ๋๋ 404์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋๊ธฐํ ์์ ์ด ํ์ํฉ๋๋ค. ๋ฐฐํฌ ํ๋ก์ธ์ค์์๋ Next.js ์๋ฒ๊ฐ ์ ์ ๊ตฌ๋๋ ํ์ Vue์ ALB(์ ํ๋ฆฌ์ผ์ด์ ๋ก๋ ๋ฐธ๋ฐ์)๋ฅผ ๋ฐฐํฌํ๋ ์์๋ฅผ ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์์ฐ์ฑ ํฅ์์ ์ํด์๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ค์ ์ ์๋ํํ์ฌ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ํตํฉํ๋ ์ ๊ทผ ๋ฐฉ์์ด ํจ๊ณผ์ ์ ๋๋ค. CI/CD ํ์ดํ๋ผ์ธ์ Ingress ์ค์ ์ ์๋ํํ๋ฉด ํ ์คํธ ํ๊ฒฝ์ด ์ถ๊ฐ๋๋๋ผ๋ ์๋์ผ๋ก ์๋ํ ํ ์คํธ ํ๊ฒฝ์ผ๋ก ์กฐ์ ๋ฉ๋๋ค.
์นด๋๋ฆฌ ๋ฐฐํฌ๋ ์ฌ์ด๋ ์ดํํธ ์กฐ๊ธฐ๊ฐ์ง ๋ฐ AB test๊ฐ ๊ฐ๋ฅํ๋ค๋ ์ด์ ์ด ์์ง๋ง, Vue์ Next ๋ชจ๋๋ฅผ ์ ์ง๋ณด์ ํด์ผ ํ๋ค๋ ์ ๊ณผ Sticky Session ๋ฌธ์ ๋๋ฌธ์ ๋ณด๋ฅ๋์์ต๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์ ๋๋ฉ์ธ ๋ถ๋ฆฌ์ ๋ํ ๊ณ ๋ฏผ๋ ์์์ต๋๋ค. ํ์ง๋ง SEO ๊ด๋ฆฌ์ ์ค์์ฑ ๋๋ฌธ์ ๋๋ฉ์ธ ๋ถ๋ฆฌ ๋ฐฉ์์ ์ฑํํ์ง ์์์ต๋๋ค. ๊ฒ์ ์์ง์ ๋๋ฉ์ธ ๋ณ๊ฒฝ์ ์๋ก์ด ์น ํ์ด์ง๋ก ํ๋จํ ์ ์์ต๋๋ค. ์ด๋ ๋ง์ด๊ทธ๋ ์ด์ ํ ๊ฒ์ ๊ฒฐ๊ณผ ์์์ ์ํฅ์ ์ค ์ ์์ผ๋ฏ๋ก, SEO์ ์ถ๊ฐ์ ์ธ ๋ชจ๋ํฐ๋ง์ด ํ์ํ ์ ์์ต๋๋ค.
์ง๊ธ๊น์ง ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉด, ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํด ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ง์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ํด ํ์ด์ง URL ๋จ์๋ก ์๋น์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ ์ ์ฌ์ ์์ ์ด ๋ง์ด ํ์ํ์ง๋ง, ๊ทธ์ค์์๋ ์ธํ๋ผ์ ๊ดํ ๋ด์ฉ์ ์ข ๋ ์ค์ ์ ์ผ๋ก ๋ง์์ ๋๋ ธ์ต๋๋ค.
5. ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ : ํ์ด์ง url ๋จ์ ๋ง์ด๊ทธ๋ ์ด์
์๋ก์ด ํ๋ ์์ํฌ๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์๋ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ SEO ์ต์ ํ๋ฅผ ๊ณ ๋ คํ ํ์ด์ง ์ ํ ์ ๋ต์ ์ค์์ฑ์ด ๊ฐ์กฐ๋ฉ๋๋ค. ํนํ, SPA(Single Page Application)์ SSR(Server-Side Rendering)์ ๊ฒฐํฉ์ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ๋๋ฆฌ ์ฑํ๋๊ณ ์๋ ํจํด์ ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฒซ ํ์ด์ง ์ง์ ์ SSR์ ํตํด ์ฌ์ฉ์์๊ฒ ์ด๊ธฐ ํ์ด์ง๋ฅผ ์ ๊ณตํ๊ณ , ์ดํ์ ๋ด๋น๊ฒ์ด์ ์ ํ์คํ ๋ฆฌ API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ SPA ๋ฐฉ์์ผ๋ก ๋งค๋๋ฝ๊ฒ ์ ํ๋์ด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค. ๋ํ, ์ด ๋ฐฉ๋ฒ์ ๊ฒ์์์ง์ด ์๋ฒ์์ ๋ ๋๋ง๋ HTML์ ์ฝ๊ฒ ์ธ๋ฑ์ฑํ ์ ์๋๋ก ํ์ฌ SEO์ ์ ๋ฆฌํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ ๊ฐ์ง ์ด์์ ํ๋ ์์ํฌ๊ฐ ๊ณต์กดํ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ํฉ์์๋ SPA์ฒ๋ผ ๋งค๋๋ฌ์ด ํ์ด์ง ์ ํ์ ๊ตฌํํ๋ ๊ฒ์ ๋ช ๊ฐ์ง ๋์ ๊ณผ์ ๊ฐ ์์ต๋๋ค. ๊ธฐ์กด์๋ ์ฌ์ฉ์๊ฐ ์ฒซ ํ์ด์ง์ ์ง์ ํ ๋ ํ์ํ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค์ ๋ก๋ํจ์ผ๋ก์จ ์ดํ ํ์ด์ง ์ ํ ์์๋ ๋น ๋ฅด๊ณ ๋งค๋๋ฌ์ด ๊ฒฝํ์ ์ ๊ณตํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ ํ๋ ์์ํฌ๊ฐ ๊ณต์กดํ๋ ๊ฒฝ์ฐ, ์๋ฅผ ๋ค์ด ๋ฆฌ์คํธ ํ์ด์ง์์ ๋ค์ ํ์ด์ง๋ก์ ์ ํ ์ ํ์ํ React ์ฑ์ ๋ ๋๋งํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค์ด ๋ฏธ๋ฆฌ ๋ก๋๋์ด ์์ง ์๋ค๋ฉด, ํ์ด์ง ์ ํ ๊ณผ์ ์์ 404 ์๋ฌ ํ์ด์ง๊ฐ ๋ ธ์ถ๋ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ํ์ดํผ๋งํฌ ๋ฐฉ์์ ํตํ ํ์ด์ง ์ ํ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ์ ํํ ๋๋ง๋ค ์๋ก์ด ํ์ด์ง ์์ฒญ์ด ๋ฐ์ํ๊ณ , ์ด์ ๋ฐ๋ผ ์๋ก์ด HTML๊ณผ ํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค์ด ๋ก๋๋ฉ๋๋ค. ์ด ๋ฐฉ์์ HTML์ ๊ธฐ๋ณธ์ ์ธ ์ต์ปค ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ๋ผ์ฐํ ์ด๋ฒคํธ๋ฅผ ์ง์ ์ ์ดํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ์ง์์ ์ธ ๋ณ๊ฒฝ์ ํผํ๊ธฐ ์ํด ๋ ํจ์จ์ ์ธ ๋ผ์ฐํ ์ด๋ฒคํธ ์ ์ด ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ๋ ์ข ๋ฅ์ ํ๋ ์์ํฌ๊ฐ ๊ณต์กดํ๋ ํ๊ฒฝ์์๋ SPA์ ๊ฐ์ ๋งค๋๋ฌ์ด ํ์ด์ง ์ ํ์ ๊ธฐ๋ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด์๋ ์ฌ์ฉ์๊ฐ ์๋ก์ด ํ์ด์ง๋ก ์ ํํ ๋๋ง๋ค ์ ํต์ ์ธ ํ์ดํผ๋งํฌ ๋ฐฉ์์ ์ ์ฉํ๊ฑฐ๋ ๋ผ์ฐํ ์ด๋ฒคํธ๋ฅผ ์ง์ ์ ์ดํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํตํด ์๋ก์ด ํ๋ ์์ํฌ๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ต์ ํํ๊ณ , ํ๋ก์ ํธ์ ์ ํ ๊ณผ์ ์ ์ํํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
6. ํ์ด์ง ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋จ์ : ์ ํ ์ง์ฐ
ํ์ด์ง ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต์ ์ ํํ๋ฉด์, ์จ๊ณ ํ์ ์ด๊ธฐ์ ์ค๋ฒํค๋๊ฐ ์๋์ ์ผ๋ก ์ ๋ค๋ ์ฅ์ ์ ๋๋ฆด ์ ์์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ ์์ ์ ๋ณต์ก์ฑ์๋ ๋ถ๊ตฌํ๊ณ , ์ฝ๋ ๋ ๋ฒจ์์์ ํน๋ณํ ์ฃผ์๊ฐ ํ์ ์์ด, ํ๋ก์ ํธ์ ๊ด์ฌ์ฌ๋ฅผ ์ ๋ถ๋ฆฌํ๊ณ ๋จ์๋ณ๋ก ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ ๋ต์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ํ์ด์ง ์ ํ ์ ๋ฐ์ํ๋ ๋ฐฐํฌ ์ง์ฐ์ด์์ต๋๋ค.
๊ธฐ์กด์ ๋ฐฉ์์์๋ ํ์ด์ง ์ ํ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ฉฐ, ์ฌ์ฉ์๊ฐ ํ์คํ ๋ฆฌ API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ํํธ ๋ด๋น๊ฒ์ด์ ์ ํตํด ๋น ๋ฅด๊ฒ ํ์ด์ง๋ฅผ ์ ํํ ์ ์์์ต๋๋ค. ์ด๋ ํผ๋์ ํตํ ์ฌ์ฉ์์ ์ํํ ์ด๋์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ์ต์ข ์ ์ผ๋ก ์ ํ์จ์ ์ฆ๊ฐ๋ก ์ด์ด์ก์ต๋๋ค.
ํ์ง๋ง, ๋ง์ด๊ทธ๋ ์ด์ ๋ ํ์ด์ง์์ ํ์ดํผ๋งํฌ ๋ฐฉ์์ผ๋ก ํ์ด์ง ์ ํ์ ๊ตฌํํ๋ฉด์ ๋ฐ์ํ ์ง์ฐ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ํ์์ผฐ๊ณ , ์ด๋ ๋น์ฆ๋์ค์ ์ผ๋ก ํฐ ๋ฌธ์ ๊ฐ ๋์์ต๋๋ค.
์ฒซ ํ์ด์ง๋ก ๋ฆฌ์คํธ ํ์ด์ง๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด์, ์ฐ๋ฆฌ๋ ์ด ์ง์ฐ์ด ๋น์ฆ๋์ค ์งํ, ํนํ ์ ํ์จ์ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ผ๋ ์์ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ๊ฐ๋ฐํ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์์ ๋ฐฉ์์ ์์ด์๋ ์์ ๊ฐ์ด ์์์ง๋ง, QA ๋จ๊ณ์์ ๋น์ฆ๋์ค ์กฐ์ง๊ณผ ํจ๊ป ๋ชจ๋ํฐ๋งํ๋ ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ๋ช ํํด์ก์ต๋๋ค. ์ด์ ๋ฐ๋ผ, ์ ํ ์์ ์(PO) ์ธก์์๋ ์ ํ์จ ํ๋ฝ์ ์ฐ๋ คํ์ฌ ๋ฐฐํฌ์ 1% ๋กค๋ฐฑ์ ์ ์ํ๊ณ , ๊ฒฐ๊ตญ ๊ฐ๋ฐํ๋ ์ด์ ๋์ํ์ฌ ๋ฐฐํฌ๋ฅผ ๋ฏธ๋ฃจ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋ฐฐํฌ ์ง์ฐ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์ ํฐ ๋ญ๋น๋ก ์ฌ๊ฒจ์ก์ต๋๋ค. ๊ธฐ์กด ํ์ด์ง์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ฉด, ๋ง์ด๊ทธ๋ ์ด์ ์ด ๊ฑฐ์ ์๋ฃ๋ ํ์ด์ง์๋ ํด๋น ๊ธฐ๋ฅ์ ๋๊ธฐํํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ๋ฐ์ํ์ต๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ ๊ฐ๋ฐ ํจ์จ์ฑ์ ์ ํ์ํค๊ณ , ๋ฌด์๋ณด๋ค๋ ๋น์ฆ๋์ค์ ์ผ๋ก ์ค์ํ ์ ํ์จ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค. ํนํ B2C ์๋น์ค์์๋ ์ฌ์ฉ์๊ฐ ๋ง์ง๋ง ํ์ด์ง๊น์ง ์ํํ๊ฒ ์ ํ๋์ด์ผ๋ง ์ต์ข ์ ์ธ ์ฑ๊ณผ๊ฐ ๋ํ๋๋ ๊ตฌ์กฐ์ธ๋ฐ, ๋ํ ์ผ ํ์ด์ง๋ก์ ์ ํ ์ง์ฐ์ ์ด๋ฌํ ์ฑ๊ณผ ๋ฌ์ฑ์ ํฐ ์ฅ์ ๊ฐ ๋์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ์ ์ง๋ฉดํ์ฌ, ํ๋ก ํธ์๋์ PO ์ฑํฐ์ ํฉ์ ํ์ ๋ฆฌ์คํธ ํ์ด์ง์ ๋ฐฐํฌ๋ ๋ฌด๊ธฐํ ์ฐ๊ธฐ๋์์ต๋๋ค.
7. ๊ธฐ์ ์ ๋์ ๊ฒํ : ์ปดํฌ๋ํธ ๋จ์ ๋ง์ด๊ทธ๋ ์ด์
์ด๋ฌํ ๋งฅ๋ฝ์์, ์ฐ๋ฆฌ ๊ฐ๋ฐํ์ ์ปดํฌ๋ํธ ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํ ์ ๋ ฅํ ๋์์ผ๋ก ์์ด ํ๋ ์(iFrame)์ ๊ณ ๋ คํ๊ฒ ๋์์ต๋๋ค. ์์ด ํ๋ ์์ ์ฌ์ฉํ๋ ์ ๊ทผ ๋ฐฉ์์ ํนํ ๋ฆฌ์คํธ ํ์ด์ง์ ๊ฐ์ ๋ณต์กํ ํ์ด์ง์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
์์ด ํ๋ ์์ ํ์ฉํ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ธฐ์กด ๋ทฐ(Vue) ์ ํ๋ฆฌ์ผ์ด์ ์ ํค๋๋ ์ฌ์ด๋๋ฐ๋ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๋ด๋ถ ์ฝํ ์ธ ๋ง Next.js๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐฉ์์ ๋๋ค. ์ด ์ ๊ทผ๋ฒ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ํ์ด์ง ์ ํ ์ ์ํํธ ๋ด๋น๊ฒ์ด์ ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํค๋ฉฐ, ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ๋จ์ถ์ํค๋ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋๋ค. ๋ํ, ๋ฐฐํฌ ๋จ์๋ฅผ ์๊ฒ ๊ฐ์ ธ๊ฐ ์ ์์ด, ์๋ก์ด ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ๋ ๋ฐ ์ ๋ฆฌํฉ๋๋ค.
ํ์ง๋ง ์ด๋ฌํ ์ ๊ทผ๋ฒ์ ๋ช ๊ฐ์ง ๊ณ ๋ คํด์ผ ํ ์ ์ด ์์ต๋๋ค. ์ฒซ์งธ๋ก, ํ์ด์ง์ ์์ด ํ๋ ์ ์ฌ์ด์ ํต์ ํ๋กํ ์ฝ ์ค๊ณ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ ์ฃผ๋ก ํฌ์คํธ ๋ฉ์์ง ๊ธฐ๋ฐ์ ์ด๋ฒคํธ๋ก ์ ์๋๋ฉฐ, ํ์ด์ง์ ์ ์ง๋ณด์ ๊ธฐ๊ฐ ๋์ ์ง์์ ์ผ๋ก ๊ด๋ฆฌ๋์ด์ผ ํฉ๋๋ค. ๋ํ, ๋ง์ด๊ทธ๋ ์ด์ ์ด ์๋ฃ๋ ํ์๋ ์์ด ํ๋ ์์ ์ ๊ฑฐํ๋ ์์ ๋ ํ์ํฉ๋๋ค.
๋์งธ๋ก, SEO(๊ฒ์์์ง ์ต์ ํ)์ ๋ฏธ์น๋ ์ํฅ์ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์์ด ํ๋ ์์ ์ฌ์ฉํ๋ฉด ๋งํฌ์ ๋ ๋ฒจ์์ ์๋นํ ๋ณํ๊ฐ ๋ฐ์ํ๋ฉฐ, ์ด๋ SEO์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๊ณต์์ ์ธ ๋ฌธ์๋ ๋ ํผ๋ฐ์ค์์ ์์ด ํ๋ ์์ SEO ์ํฅ์ ๋ํด ๋ช ํํ ์ธ๊ธ์ ์ฐพ๊ธฐ ์ด๋ ค์ ๊ณ , ์ฌ๋ฌ ์นผ๋ผ์์ ์์ด ํ๋ ์์ด SEO์ ์ข์ง ์๋ค๋ ์๊ฒฌ์ ์ฐพ์๋ณผ ์ ์์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋ก, ์์ด ํ๋ ์์ ๋์ ์ ๊ณ์ํด์ ๊ฒํ ์ค์ธ ์ํ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ด ํ๋ ์์ ์ฅ์ ์ด ๋ถ๋ช ํ ๋ง๊ธฐ ๋๋ฌธ์, ์ธ์ ์ด ํ์ํ ํ์ด์ง์์๋ ์ด๋ฅผ ์ ๊ทน์ ์ผ๋ก ๊ณ ๋ คํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
8. ์ ์ฑ ์ ํด๊ฒฐ: ํ๋ก๋ํธ ํ๊ณผ์ ํ์ ์ ํตํ ๋น์ฆ๋์ค์ ์ ๊ทผ
๋์ ๊ฒํ ์์ ์๋ฏธ ์๋ ๋์์ด ๋์ถ๋์ง ๋ชปํ์ ๋, ๊ธฐ์กด์ ๋งค์ปค๋์ฆ์ ์ ์งํ๋ฉฐ ์ ์ฑ ์ ์ธ ์กฐ์ ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ์จ์ ์ธ ์ ๋ต์ผ ์ ์์ต๋๋ค. ์จ๊ณ ํ์ ํ์ด์ง ๋จ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์์ ๊ฒช์๋ ์ ํ ์ง์ฐ ๋ฌธ์ ๋ฅผ ๊ธฐ์ ์ ๋ณํ๊ฐ ์๋, ์ ์ฑ ์ ์ ๊ทผ์ผ๋ก ํด๊ฒฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ด ๊ณผ์ ์์ ํ๋ก๋ํธ ํ๊ณผ์ ๊ธด๋ฐํ ํ์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก ์ฌ์ฉ์ ์งํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํผ๋์ ์ฌ์ ์ํ์ต๋๋ค. ํน์ ํ์ด์ง ์ ํ ์ธํฐ๋์ ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฏธ์น๋ ์ํฅ์ ๋ฏผ๊ฐํ๊ฒ ์ธก์ ํ์ฌ, ๊ทธ์ ๋ฐ๋ผ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐ์ ์์๋ฅผ ์ฌ์กฐ์ ํ์ต๋๋ค. ์ด๋ ๊ฒ ์ฌ๊ตฌ์ฑ๋ ํผ๋ ๋ด์์ ๋ฆฌ์น ์ํฉํธ๋ฅผ ๊ณ ๋ คํด ์์ฐจ์ ์ผ๋ก ํ์ด์ง๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ์ ์งํํ์์ต๋๋ค.
๋ ๋ฒ์งธ๋ก๋ ๋ธ๋ผ์ฐ์ ์๋ก๊ณ ์นจ์ ์ต์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ผ์์ต๋๋ค. ์ด๊ธฐ์๋ Vue์์ Next.js๋ก ์ ํ ์ ๋ก๋ฉ ์๊ฐ์ด ๊ธธ์ด ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ Next.js์ ๋ก๋ฉ ์๊ฐ์ ์ต์ ํํ์ฌ, ์ฌ์ฉ์๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ๋ ํ์ด์ง๋ฅผ ๊ฒฝํํ ๋ ๋ก๋ฉ ์ง์ฐ์ ์ต์ํํ ์ ์๋๋ก ์กฐ์นํ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋ง์ด๊ทธ๋ ์ด์ ํ์ด์ง์ LCP(Largest Contentful Paint)๋ฅผ 2.5์ด ์ด๋ด๋ก ์ ํํ๋ ๊ธฐ์ค์ ์ค์ ํ์ฌ, QA ๊ณผ์ ์์ ์ด ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ๋ชปํ๋ ํ์ด์ง๋ ๋ฐฐํฌ๋ฅผ ์ง์ฐ์ํค๋ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค.
์ด๋ฌํ ์ ์ฑ ์ ์กฐ์ ์ ํตํด, ํผ๋ ๋ง์ง๋ง ์ ํ ๊ณผ์ ์์์ ์ง์ฐ์ ๊ฑฐ์ ์ฒด๊ฐ๋์ง ์๋ ์์ค์ ์ด๋ฅด๋ ์ต๋๋ค. ๋ํ ๋ง์ด๊ทธ๋ ์ด์ ๋ ํ์ด์ง์ ํผ๋์ด ์ ํ์จ ์งํ๋ฅผ ์ ์งํ๋ฉฐ ์ฑ๊ณต์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋ ์ ์์์ต๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ๋ง์น๊ณ ๋์, ์จ๊ณ ํ์ ์๋ฌด๋ฆฌ ํ๋ ์์ํฌ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ด๋ผ๋ ๊ทธ ์์ฌ๊ฒฐ์ ์ ๋น์ฆ๋์ค ์กฐ์ง๊ณผ ํจ๊ปํ๋ค๋ฉด ์ข ๋ ์์ฐ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์๋ค๋ ๊ตํ์ ์ป์ ์ ์์์ต๋๋ค.
9. ์์ผ๋ก์ ๊ณผ์
๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ ํธ๋ ์ฒ์์๋ ๋จ์ํ ์ ํ์จ ์งํ๋ฅผ ์ ์งํ๋ฉฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ ๋ฐ ์ค์ ์ ๋์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ๊ทธ ๋ชฉํ๋ฅผ ํ์ฅํ์ฌ, ๋ง์ด๊ทธ๋ ์ด์ ์ ํตํด ๋น์ฆ๋์ค์ ์ธ ์ฑ๊ณผ๊น์ง ์ด๋์ด๋ด๋ ๊ฒ์ผ๋ก ์ฌ์ค์ ํ์ต๋๋ค. ํ๋ก์ ํธ๋ก๋ถํฐ ๊ตฌ์ฒด์ ์ธ ์ฑ๊ณผ๊ฐ ๋ํ๋๋ค๋ฉด, ์ด๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์์ฑ์ ๋ท๋ฐ์นจํ๊ณ , ๋น์ฆ๋์ค ์กฐ์ง๊ณผ์ ์ํํ ํ์๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ ๊ฒ์ ๋๋ค.
๋๋ถ์ด, ๋ง์ด๊ทธ๋ ์ด์ ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ์์ดํ๋ ์์ ์ฌ์ฉํ๋ ๋์์ ๋ํด์๋ ๊ณ์ํด์ ํ๊ตฌํด ๋ณผ ์๊ฐ์ ๋๋ค. ๋ฆฌ์์ค์ ํจ์จ์ ์ฌ์ฉ๊ณผ ์์ ๊ฐ ์ถฉ๋์ ์ต์ํํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ์ ์ ๊ฐ์ ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ ์ง๋ ๋ชจ๋ฆ ๋๋ค.
FEConf2023์์ ๋ฐํ๋ 'Vue+express์๋ ์๋น์ค๊ฐ ์ด์ธ๊ณ์์ Next.js? (ํ๋ ์์ํฌ ๋ง์ด๊ทธ๋ ์ด์ )'/์ ์ง๋ง ์จ๊ณ ํ๋ก ํธ์๋ ์์ง๋์ด โฉ๏ธ