NEXT.JS : SSR vs CSR

<angeLog/>ยท2024๋…„ 3์›” 5์ผ
0

NEXT.JS

๋ชฉ๋ก ๋ณด๊ธฐ
4/7
post-thumbnail

๐Ÿ’ก๋…ธ๋งˆ๋“œ์ฝ”๋” ๋‹ˆ๊ผฌ์Œค์˜ ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค.

๋ชฉํ‘œ

  1. ์ด์ „ ํฌ์ŠคํŠธ์—์„œ usePathname์˜ ์—๋Ÿฌ๋ฅผ ์™œ use client๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ์ดํ•ด
  2. client component๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ

SSR vs CSR

rendering
react component(JavaScript function)๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•˜๋Š” html๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…

CSR : Client side rendering
๋ชจ๋“  ๋ Œ๋”๋ง์ด ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ฐœ์ƒ.
ํด๋ผ์ด์–ธํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ UI๋ฅผ ๋นŒ๋“œํ•จ.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ ์ „์—๋Š” UI๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ์ˆœ๊ฐ„์ด ๋ฐœ์ƒํ•จ.
โ€ป์˜ˆ์‹œ) ํŽ˜์ด์ง€ ๋กœ๋“œ์‹œ ํ™”๋ฉด ๊นœ๋นก์ž„
Google์„ ๋น„๋กฏํ•œ ๊ฒ€์ƒ‰์—”์ง„๋“ค์€ ํŽ˜์ด์ง€์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์—”์ง„ ๊ธฐ์ค€์œผ๋กœ CSR์€ ๋นˆํŽ˜์ด์ง€๋กœ ๋ณด์—ฌ์ง. ๋”ฐ๋ผ์„œ SEO์— ๋ถ€์ ํ•ฉํ•จ.

SSR : server side rendering
NextJS๋กœ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋นŒ๋“œํ•  ๋•Œ, ๊ธฐ๋ณธ์ ์œผ๋กœ SSR์„ ์‚ฌ์šฉํ•จ.
์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” server๋Š” ๋ธŒ๋ผ์šฐ์ €๋‚˜ front๊ฐ€ ์•„๋‹Œ backend server๋ฅผ ๋งํ•จ.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด์žˆ์–ด๋„ ์ตœ์ดˆ์˜ UI๋นŒ๋“œ๋Š” user์—๊ฒŒ ๋ณด์—ฌ์ง.
์ตœ์ดˆ์˜ UI๋นŒ๋“œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•˜์ง€ ์•Š์Œ.

โ—client component, server component, use client๋ฅผ ์‚ฌ์šฉํ•œ component ๋ชจ๋‘ SSR์ด ์ž‘๋™ํ•จ

use client๋Š” client server๊ฐ€ ์•„๋‹ˆ๋‹ค
๋ช…์นญ์ด use client์ด๊ธฐ ๋•Œ๋ฌธ์— client๋‹จ์—์„œ render๋œ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์ง€๋งŒ server์ธก์—์„œ render๋œ๋‹ค. ๊ฐœ๋ฐœ์ž๋„๊ตฌ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ˆ ์ƒํƒœ์—์„œ ์ฝ˜์†”์„ ์ฐ์–ด๋ณด๋ฉด ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ํ•œ๋‹ค.
server์ชฝ console์— ์ถœ๋ ฅ๋œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๊ทธ๊ฒŒ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค...๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฑด๊ฐ€?

์š”์•ฝ

Next.js์˜ SCR์€ ์ปดํฌ๋„ŒํŠธ์™€ ํŽ˜์ด์ง€ ๋ชจ๋‘ server(back-end server)์—์„œ render๋œ๋‹ค.

profile
์ผ๋‹จ ํ•ด๋ณผ๊ฒŒ์š”!โœ๐Ÿป

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