Nuxt.js

Na Jeongยท2023๋…„ 1์›” 12์ผ
0

Nuxt.js

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

๐ŸงNuxt.js ๋ญ”๋ฐ?

Nuxt.js๋Š” Vue.js๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ SSR ๊ธฐ๋ฐ˜์˜ Web Application์„ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•  ๋•Œ ํ•„์š”ํ•œ vuex, router,axios์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ๋ฏธ๋ฆฌ ๊ตฌ์„ฑํ•˜์—ฌ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง, ์ •์  ์›น ์‚ฌ์ดํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

Nuxt.js์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์—, CSR๊ณผ SSR์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋Š”๊ฒƒ ๋จผ์ €ํ•ด์•ผํ•œ๋‹ค!
์ด ๋‘๊ฐ€์ง€ ๊ฐœ๋…์ด Nuxt.js์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

โœณ๏ธ CSRย ย |ย ย SSR

๐Ÿ“ŒCSR (Client Side Rendering)

SPA(Single Page Application)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
SPA๋ž€, ์ตœ์ดˆ ํ•œ๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ์ „์ฒด ๋กœ๋”ฉํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งํ•œ๋‹ค.

์ตœ์ดˆ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•œ ์‹œ์ ๋ถ€ํ„ฐ๋Š” ๋ฆฌ๋กœ๋”ฉ์—†์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฐ›์•„์„œ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๐Ÿ‘ ์žฅ์ 
1. ํ™”๋ฉด ์ด๋™์ด ์ž์—ฐ์Šค๋Ÿฌ์›€
2. ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ ๋กœ๋”ฉ๊ฐ€๋Šฅ -> ํŠธ๋ž˜ํ”ฝ์ด ๊ฐ์†Œํ•จ
3. ์ปดํฌ๋„ŒํŠธ ๋ณ„ ๊ฐœ๋ฐœ์ด ์šฉ์ดํ•จ

๐Ÿ‘Ž ๋‹จ์ 
1. SEO(๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”)์–ด๋ ค์›€
2. ๋ณด์•ˆ ์ด์Šˆ
3. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋ฒˆ๋“ค๋งํ•ด์„œ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋Š๋ฆผ.

๐Ÿ“ŒSSR(Server Side Rendering)

MPA(Multiple Page Application)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ํŽ˜์ด์ง€๋ฅผ ๋ชจ๋‘ ๋ Œ๋”๋ง ํ•˜์—ฌ ๋„์šฐ๋Š” ๋ฐฉ์‹.
request๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ๊ณ ์นจ์ด ์ผ์–ด๋‚œ๋‹ค.
SSR์€ SEO์— ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๊ณ , ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ๊ฐ„๋„ SPA๋ณด๋‹ค ํ›จ์”ฌ ์œ ๋ฆฌํ•œ ์ธก๋ฉด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๐Ÿ‘ ์žฅ์ 
1. SEO(๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”)
2. CSR์— ๋น„ํ•ด ์ดˆ๊ธฐ ๋กœ๋“œ ์†๋„๊ฐ€ ๋น ๋ฆ„

๐Ÿ‘Ž ๋‹จ์ 
1. ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ํ™”๋ฉด์ด ๊นœ๋นก์ž„ ๋ฐ ์ค‘๋ณต๋œ ๋ Œ๋”๋ง ๋น„์šฉ ๋ฐœ์ƒ
2. ์„œ๋ฒ„ ๋ Œ๋”๋ง์— ๋”ฐ๋ฅธ ๋ถ€ํ•˜ ๋ฐœ์ƒ
3. ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ๊ฐœ๋ฐœ์ด ์–ด๋ ค์›€
4. SPA์— ๋น„ํ•ด ์ดˆ๊ธฐ ๋กœ๋“œ ์†๋„๋Š” ๋น ๋ฅด์ง€๋งŒ, ๋งค ํŽ˜์ด์ง€ ๋งˆ๋‹ค ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋กœ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

๐Ÿ“ŒSSR์„ ์™œ ์“ธ๊นŒ?

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋žœ๋”๋ง์„ ์“ฐ๋Š” ๋ชฉ์ ์€ ํฌ๊ฒŒ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”์™€ ๋น ๋ฅธ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง์ด๋‹ค.
SEO๋ž€ ๊ฒ€์ƒ‰ ์‚ฌ์ดํŠธ์—์„œ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งŽ์ด ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์ ํ™” ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.
ํŠนํžˆ, SNS์—์„œ ๋งํฌ๋ฅผ ๊ณต์œ ํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์›น ์‚ฌ์ดํŠธ์˜ ์ •๋ณด๋ฅผ ์ด๋ฏธ์ง€์™€ ์„ค๋ช…์œผ๋กœ ํ‘œ์‹œํ•ด์ฃผ๋Š” OG(Open Graph)Tag๋ฅผ ํŽ˜์ด์ง€ ๋ณ„๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์ด ํšจ์œจ์ ์ด๋‹ค.
๋˜ํ•œ, SSR์€ ๋นˆ HTML ํŽ˜์ด์ง€๋ฅผ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ทธ๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง๊ณผ ๋‹ค๋ฅด๊ฒŒ ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๊ทธ๋ ค์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€๋ฅผ ๊ทธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ํ™”๋ฉด์— ์œ ์˜๋ฏธํ•œ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์‹œ๊ฐ„์ด ๋นจ๋ผ์ง€๋Š” ๊ฒƒ์ด๋‹ค !

๐ŸงNuxt.js์˜ ์žฅ์ 

  • ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”
  • ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ ์„ค์ • ๋น„์šฉ ๊ฐ์†Œ์™€ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
    โ€ข ESLint, Prettier
    โ€ข ๋ผ์šฐํ„ฐ, ์Šคํ† ์–ด ๋“ฑ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐ ์„ค์ • ํŒŒ์ผ ํ•„์š” X
    โ€ข ํŒŒ์ผ ๊ธฐ๋ฐ˜์˜ ๋ผ์šฐํŒ… ๋ฐฉ์‹, ์„ค์ • ํŒŒ์ผ ์ž๋™ ์ƒ์„ฑ
  • ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„์™€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ
    โ€ข ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•˜๋Š” ์ผ์— ์„œ๋ฒ„๋ฅผ ๋‚˜๋ˆ ์ค€๋‹ค.
    โ€ข ๋ชจ๋ฅด๋ฉด ์ง€๋‚˜์น  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…์ด ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •

๐ŸงNuxt.js์˜ ํŠน์ง•

  • ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง
  • ์ฝ”๋“œ ๋ถ„ํ•  ์ž๋™ํ™”
  • ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์˜ ๊ฐ•๋ ฅํ•œ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ
  • ์ •์  ํŒŒ์ผ ์ „์†ก
  • ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…
  • ES6/ES6+ ๋ณ€ํ™˜
  • ์›นํŒฉ์„ ๋น„๋กฏํ•œ ๊ธฐํƒ€ ์„ค์ •

๐ŸงNuxt.js ์–ธ์ œ ์‚ฌ์šฉํ•˜์ง€ ?

๋”ฑ ! ๊ฒฐ์ •์ ์œผ๋กœ, SEO ๊ฐœ์„ ์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๐ŸงNuxt.js Life Cycle

2023.01.12 ์–ด๋ ต๋‹ค ์–ด๋ ต๋‹ค ์–ด๋ ต๋‹ค !!!!

profile
๋Š์ž„์—†์ด ๋…ธ๋ ฅํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž (โธโธโขโธโธ) เท†

0๊ฐœ์˜ ๋Œ“๊ธ€