๐Ÿธminzzi
Minzzi์•ผ
๐Ÿธminzzi
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (131)
    • ์˜ค๋ฅ˜ํ•ด๊ฒฐ (14)
    • FE (36)
      • Next.js (17)
      • React (4)
      • React Native (0)
      • TypeScript (1)
      • JavaScript (14)
    • BE (0)
      • Nest.js (0)
    • ๋ฐ๋ธŒ์ฝ”์Šค (7)
    • ์›น ํ”„๋กœ์ ํŠธ (5)
    • CS (28)
      • Algorithm (5)
      • Python (4)
      • C++ (2)
      • Operating System (4)
      • Computer Networking (3)
      • Data Structure (1)
      • Machine Learning (3)
      • Tip (6)
    • Github (4)
    • Flutter (3)
      • ํ”„๋กœ์ ํŠธ (3)
    • Private (27)
      • ํšŒ๊ณ  (7)
      • ๋ฉด์ ‘ (17)
    • ๊ฐœ๋ฐœ๋„์„œ (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • next.js
  • ๋ ‰์‹œ์ปฌ
  • ์‹คํ–‰์ปจํƒ์ŠคํŠธ
  • ์‹คํ–‰์ปจํ…์ŠคํŠธ
  • react
  • reflow
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
  • layout shift
  • ์›์‹œํƒ€์ž…
  • ํ˜ธ์ด์ŠคํŒ…
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์ฝœ์Šคํƒ
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • ํž™์˜์—ญ
  • ๋ฉด์ ‘
  • ๋ชจ๋˜๋ฆฌ์•กํŠธ๋”ฅ๋‹ค์ด๋ธŒ
  • SSR
  • ์˜ค๋ธ”์™„
  • ์ด๋ฒคํŠธ๋ฃจํ”„

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐Ÿธminzzi

Minzzi์•ผ

[Next.js] Next.js?
FE/Next.js

[Next.js] Next.js?

2025. 5. 1. 20:10
ํ•œ ์ž… ํฌ๊ธฐ๋กœ ์ž˜๋ผ๋จน๋Š” Next.js ํ•™์Šต์ •๋ฆฌ์šฉ์ž…๋‹ˆ๋‹ค. 
1.1) Next.js๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
1.2) Next.js ์‚ฌ์ „๋ Œ๋”๋ง ์ดํ•ดํ•˜๊ธฐ
1.3) ์‹ค์Šต์šฉ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์„ธํŒ…ํ•˜๊ธฐ
1.4) ๋ณธ๊ฒฉ์ ์ธ ํ•™์Šต์— ์•ž์„œ

Next.js ๋ผ๋Š” ๊ธฐ์ˆ ์€ ์–ด๋–ค ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€?

Next.js

- Next.js : ๋ฆฌ์•กํŠธ๋งŒ์„ ์œ„ํ•œ ๋ฆฌ์•กํŠธ ์ „์šฉ์˜ ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ
   ๊ธฐ์กด์˜ ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  + ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… + ๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ๊ธฐ๋Šฅ ๋“ฑ๋“ฑ์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๋“ค์„ ๋ช‡ ๊ฐœ ๋ง๋ถ™์—ฌ ๋†“์€ ๋ฆฌ์•กํŠธ์˜ ํ™•์žฅํŒ

   vercel์—์„œ ๊ฐœ๋ฐœ

Framework vs Library

Next.js๋Š” ๋ฆฌ์•กํŠธ ์ „์šฉ์˜ ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ด์ง€๋งŒ, React๋Š” UI ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

 

1. ๊ธฐ๋Šฅ ๊ตฌํ˜„์˜ ์ฃผ๋„๊ถŒ์ด ๋ˆ„๊ตฌ์—๊ฒŒ ์žˆ๋Š”๊ฐ€

Framework : ์ฃผ๋„๊ถŒ์„ Framework๊ฐ€ ๊ฐ€์ง„๋‹ค -> ์ž์œ ๋„๊ฐ€ ๋‚ฎ๋‹ค

Library : ์ฃผ๋„๊ถŒ์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์ง„๋‹ค. -> ์ž์œ ๋„๊ฐ€ ๋†’๋‹ค

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ด๋Ÿฐ ์ž์œ ๋„๊ฐ€ ๋„ˆ๋ฌด ๋†’์•„๋„ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌ์•กํŠธ์™€ ๊ฐ™์ด ์ž์œ ๋„๊ฐ€ ๋‚ฎ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์„ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ž์œ ๋„๊ฐ€ ๋†’๋‹ค๋ฉด ์›น ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๊ฑฐ์˜ ๋ชจ๋“  ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•ด์ค€๋‹ค.

 

๋”ฐ๋ผ์„œ Next๊ฐ€ ์ฃผ๋Š” ์žฅ์ ์€?

ํŽ˜์ด์ง€ ๋ผ์šฐํŒ…, ์ตœ์ ํ™”, ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ค ํ›จ์”ฌ ๋” ํŽธํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์›น์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.


Next.js์˜ ์‚ฌ์ „๋ Œ๋”๋ง

๋ฆฌ์•กํŠธ์˜ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋žœ๋”๋ง์ด๋ž€?

ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์—์„œ ์ง์ ‘ ํ™”๋ฉด์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹

1. ์œ ์ €๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐ ์ ‘์† ์š”์ฒญ์„ ์›น์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

2. ์›น์„œ๋ฒ„๋Š” ๋นˆ ๊ป๋ฐ๊ธฐ html ํŒŒ์ผ์ธ index.html์„ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

3. ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ html ํŒŒ์ผ์„ ๋ Œ๋”๋งํ•œ๋‹ค.

4. ์›น์„œ๋ฒ„๋Š” ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ(๋ฆฌ์•กํŠธ ์•ฑ)๋ฅผ ํ•˜๋‚˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ ๋ฌถ์–ด ๋ฒˆ๋“ค๋งํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

5. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฒˆ๋“ค๋ง๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ณ  ํ™”๋ฉด์— ๋ Œ๋”๋งํ•œ๋‹ค.

7. ์ด๋•Œ๊ฐ€ ๋˜๋ฉด ์œ ์ €๋Š” ์ž์‹ ์ด ์š”์ฒญํ•œ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. --- FCP

 

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋žœ๋”๋ง์˜ ์žฅ์ ๊ณผ ๋‹จ์ 

์žฅ์  : ์ดˆ๊ธฐ ์ ‘์† ์ดํ›„์— ๋ฐœ์ƒํ•˜๋Š” ํŽ˜์ด์ง€ ์ด๋™๋“ค์„ ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

- ์™œ๋ƒํ•˜๋ฉด ๋ฆฌ์•กํŠธ์•ฑ์„ ๋ชจ๋‘ ๋ฒˆ๋“ค๋งํ–ˆ์„ ๋•Œ ๋ชจ๋“  ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค ๋“ค์–ด์žˆ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

- ๋”ฐ๋ผ์„œ ์ดˆ๊ธฐ ์ ‘์† ์ดํ›„๋กœ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋‹จ์  : ์ดˆ๊ธฐ ์ ‘์† ์†๋„๊ฐ€ ์ข€ ๋А๋ ค์ง„๋‹ค. FCP๊ฐ€ ๋А๋ฆฌ๋‹ค.

 

FCP (First Contentful Paint) - ์›นํŽ˜์ด์ง€์˜ ์„ฑ๋Šฅ์„ ๋Œ€ํ‘œํ•  ์ •๋„๋กœ ์ค‘์š”ํ•œ ์ง€ํ‘œ. ์˜ค๋ž˜ ๊ฑธ๋ฆด์ˆ˜๋ก ์ดํƒˆ๋ฅ ์ด ์‹ฌํ•จ

 

Next์˜ ์‚ฌ์ „ ๋ Œ๋”๋ง์ด๋ž€?

React.js์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•œ Next.js๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜

1. ์œ ์ €๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐ ์ ‘์† ์š”์ฒญ์„ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

2. ๋„ฅ์ŠคํŠธ ์„œ๋ฒ„๊ฐ€ ์„œ๋ฒ„ ์ธก์—์„œ ์ง์ ‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ(๋ฆฌ์•กํŠธ ์•ฑ)๋ฅผ ์‹คํ–‰์‹œ์ผœ ๋ชจ๋“  ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋“ค์„ HTML๋กœ ๋ณ€ํ™˜(๋ Œ๋”๋ง)ํ•œ๋‹ค.

3. ์™„์„ฑ๋œ HTML์„ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

4.  ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ๊ทธ๋Œ€๋กœ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•œ๋‹ค. ---FCP

- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ HTML๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—… ์—ญ์‹œ ๋ Œ๋”๋ง์ด๋ผ๊ณ  ํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ปจํ…์ธ ๋ฅผ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •๋„ ๋ Œ๋”๋ง์ด๋ผ๊ณ  ํ•œ๋‹ค.
- ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ๋ Œ๋”๋ง์ด ๋‘ ๊ฐœ์˜ ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด์ฉ” ์ˆ˜ ์—†๋‹ค.

 

ํ™”๋ฉด์— ์ปจํ…์ธ ๋“ค์ด ๋‹ค ๋ณด์ด๊ธด ํ•˜์ง€๋งŒ ์•„์ง ํด๋ฆญ๊ณผ ๊ฐ™์€ ์›นํŽ˜์ด์ง€์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ด๋‹ค. 

5. ๋„ฅ์ŠคํŠธ ์„œ๋ฒ„๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ(๋ฆฌ์•กํŠธ ์•ฑ)๋ฅผ ๋ฒˆ๋“ค๋งํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

6. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด ๋ฒˆ๋“ค๋งํ•œ ํŒŒ์ผ์„ ํ˜„์žฌ ํ™”๋ฉด์— ๋ Œ๋”๋ง ๋˜์–ด์žˆ๋Š” HTML ์š”์†Œ๋“ค๊ณผ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค. (Hydration)

hydration(์ˆ˜ํ™”) : HTML๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •. ๋ฉ”๋ง๋ผ ์žˆ๋˜ HTML ์š”์†Œ๋“ค์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ผ๋Š” ๋ฌผ์„ ๋ฟŒ๋ ค์ฃผ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ํ•ด์„œ ์ˆ˜ํ™”(hydration)๋ผ๊ณ  ํ•œ๋‹ค. 

 

7. ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅ --- TTI

TTI(Time to Interactive) : ์ƒํ˜ธ์ž‘์šฉ๊นŒ์ง€ ๊ฐ€๋Šฅํ•ด์ง„ ์‹œ์ 

 

8. ์ดํ›„ ํŽ˜์ด์ง€ ์ด๋™์€ CSR๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋ณ„๋„์˜ ํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์š”์ฒญํ•˜์ง€ ์•Š๊ณ  ๋ธŒ๋ผ์šฐ์ € ์ธก์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ต์ฒดํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ Next.js์˜ ์‚ฌ์ „ ๋ Œ๋”๋ง์„ ํ†ตํ•ด ๋ฆฌ์•กํŠธ์˜ ๋А๋ฆฐ FCP๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  CSR์˜ ์žฅ์ ์€ ๊ทธ๋Œ€๋กœ ๊ณ„์Šนํ•œ ๋ฐฉ์‹์ด๋‹ค.


 

์‹ค์Šต์šฉ ์„œ๋ฒ„ ์‹คํ–‰

๋นŒ๋“œ : npm run build

์‹คํ–‰ : npm run start

๋กœ์ปฌ์ฃผ์†Œ : localhost:12345

api : localhost:12345/api

๋ฐ์ดํ„ฐ ์กฐํšŒ : npx prisma studio

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'FE > Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Next.js] page router - API Routes  (0) 2025.05.03
[Next.js] page router - ํ”„๋ฆฌํŽ˜์นญ  (0) 2025.05.03
[Next.js] Page Router, ์„ค์ •, ๋„ค๋น„๊ฒŒ์ดํŒ…  (1) 2025.05.02
[Next.js] reactStrictMode  (0) 2025.04.21
[Next.js] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ  (0) 2024.06.10
    'FE/Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Next.js] page router - ํ”„๋ฆฌํŽ˜์นญ
    • [Next.js] Page Router, ์„ค์ •, ๋„ค๋น„๊ฒŒ์ดํŒ…
    • [Next.js] reactStrictMode
    • [Next.js] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
    ๐Ÿธminzzi
    ๐Ÿธminzzi

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”