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

React

[ NEXT.JS ] Next.js์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ.

 

 

NEXT.JS๋Š” ๋ฌด์—‡์ผ๊นŒ?

 

 

Next.js ๋Š” ๋น ๋ฅธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋นŒ๋”ฉ ๋ธ”๋ก์„ ์ œ๊ณตํ•˜๋Š” React ํ”„๋ ˆ์ž„ ์›Œํฌ๋กœ, React์— ํ•„์š”ํ•œ ๋„๊ตฌ ๋ฐ ๊ตฌ์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ตฌ์กฐ, ๊ธฐ๋Šฅ ๋ฐ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

Next.js๋Š” SSR(Server-Side-Rendering), ์ •์  ์›น ํŽ˜์ด์ง€ ์ƒ์„ฑ ๋“ฑ React ๊ธฐ๋ฐ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” Node.js ์œ„์—์„œ ๋นŒ๋“œ๋œ ์˜คํ”ˆ ์†Œ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

 

React๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UI๋ฅผ ๊ตฌ์ถ•ํ•œ ๋‹ค์Œ, Next.js ๊ธฐ๋Šฅ์„ ์ ์ง„์ ์œผ๋กœ ์ฑ„ํƒํ•˜์—ฌ ๋ผ์šฐํŒ…, ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ, ํ†ตํ•ฉ๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋™์‹œ์— ๊ฐœ๋ฐœ์ž ๋ฐ ์ตœ์ข… ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

React์˜ ๊ณต์‹ ํŽ˜์ด์ง€์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ๊ฐœํ•œ๋‹ค.

Next.js

Next.js๋Š” ์ธ๊ธฐ ์žˆ๋Š” ๊ฒฝ๋Ÿ‰์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ React๋กœ ๋งŒ๋“ค์–ด์ง„ ์Šคํƒœํ‹ฑ ์„œ๋ฒ„ ๋ Œ๋”๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํƒ€์ผ๋ง๊ณผ ๋ผ์šฐํŒ… ํ•ด๊ฒฐ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ Node.js๋ฅผ ์„œ๋ฒ„ ํ™˜๊ฒฝ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
Next.js๋ฅผ ์ •์‹ ๊ฐ€์ด๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๋ฐฐ์›Œ๋ณด์„ธ์š”.

 

์ถœ์ฒ˜ - NEXT.JS

NEXT์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋”ฉ ๋ธ”๋ก 

  • UI (์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) - ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • Routing (๋ผ์šฐํŒ…) - ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ์‚ฌ์ด๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • Data Fetching (๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ) - ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜์™€ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•.
  • Rendering (๋ Œ๋”๋ง) - ์ •์  ๋˜๋Š” ๋™์  ์ฝ˜ํ…์ธ ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์‹œ๊ธฐ ๋ฐ ์œ„์น˜.
  • Integrations (ํ†ตํ•ฉ) - ์‚ฌ์šฉํ•˜๋Š” ํƒ€์‚ฌ ์„œ๋น„์Šค(CMS, ์ธ์ฆ, ๊ฒฐ์ œ ๋“ฑ) ๋ฐ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•.
  • Infrastructure (์ธํ”„๋ผ) - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ(์„œ๋ฒ„๋ฆฌ์Šค, CDN, Edge ๋“ฑ)๋ฅผ ๋ฐฐํฌ, ์ €์žฅ ๋ฐ ์‹คํ–‰.
  • Performance (์„ฑ๋Šฅ) - ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • Scalability (ํ™•์žฅ์„ฑ) - ํŒ€, ๋ฐ์ดํ„ฐ ๋ฐ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์กฐ์ •๋˜๋Š” ๋ฐฉ์‹.
  • Developer Experience (๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜) - ํŒ€์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ• ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฒฝํ—˜.

 

 


 

Next.js ์ž‘๋™ ๋ฐฉ์‹

 

 

 

 

Compiling

์ถœ์ฒ˜ - Next.js

 

 

 

Minifying

์ฃผ์„, ๊ณต๋ฐฑ, ๋“ค์—ฌ์“ฐ๊ธฐ ๋ฐ ์—ฌ๋Ÿฌ ์ค„๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ฑฐ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋กœ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋‹ค.

์ถœ์ฒ˜ - Next.js

 

 

 

 

Bundling

๋ชจ๋“ˆ, ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๋‚ด๋ถ€ ๋ชจ๋“ˆ๊ณผ ์™ธ๋ถ€ ํƒ€์‚ฌ ํŒจํ‚ค์ง€๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ๊ฐ€์ ธ์˜ค๋ฉด ํŒŒ์ผ ์ข…์†์„ฑ์ด ๋ณต์žกํ•œ ์›น์ด ์ƒ์„ฑ ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์š”์ฒญ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์›น ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ณ  ํŒŒ์ผ(๋˜๋Š” ๋ชจ๋“ˆ)์„ ๋ธŒ๋ผ์šฐ์ €์— ์ตœ์ ํ™”๋œ ๋ฒˆ๋“ค๋กœ ๋ณ‘ํ•ฉ(๋˜๋Š” ํŒจํ‚ค์ง•) ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.

์ถœ์ฒ˜ - Next.js

 

 

 

 

Code Splitting

Next.js์—์„œ๋Š” ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฝ”๋“œ๋งŒ ๋กœ๋“œํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ๊ฐ„ ๊ฐœ์„ ๋“ฑ์„ ์œ„ํ•ด ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ 'page/' ์•ˆ์— ์žˆ๋Š” ๊ฐ ํŒŒ์ผ๋“ค์„ ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ์ž์ฒด JS๋ฒˆ๋“ค๋กœ ์ž๋™ ์ฝ”๋“œ ๋ถ„ํ• ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•œ๋‹ค.

์ถœ์ฒ˜ - Next.js

 

 

 

 

 

 

 

 

 

์ถœ์ฒ˜)

NEXT.JS

React

About Next.js