250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

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

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์œ„์ž„
  • ์ปดํฌ์ง€์…˜
  • MySQL
  • ใ…ฃใ„ท

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

[Next.js] Next.js๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?
Javascript/next.js

[Next.js] Next.js๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

2022. 12. 12. 15:59
728x90

ํ™ˆํŽ˜์ด์ง€ ๋Œ€๋ฌธ์—๋Š”

ํ”„๋กœ๋•์…˜์šฉ React ํ”„๋ ˆ์ž„์›Œํฌ 

๋ผ๊ณ  ์จ์ ธ์žˆ๋Š” Next.js

React ๊ฐœ๋ฐœ์ž์—๊ฒŒ, NextJS์˜ ์‚ฌ์šฉ์ด ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž

 

<๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ ์ง€์‹>

React๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์ถ•์„ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

ReactJS๋Š” ์„œ๋“œ ํŒŒํ‹ฐ ํŒจํ‚ค์ง€๋กœ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

React๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํ˜ธ ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ(๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ๋ณต์žกํ•œ) ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง : ํด๋ผ์ด์–ธํŠธ ์ธก์ด ์•„๋‹Œ ์„œ๋ฒ„ ์ธก์˜ ํŽ˜์ด์ง€ ์ƒ์— ๋ Œ๋”๋ง๋˜๋Š” ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ๋ฅผ ์˜๋ฏธํ•จ

 ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง์ด ๋˜๋Š” ์ฆ‰, ์š”์ฒญ์ด ์„œ๋ฒ„๋กœ ๋„๋‹ฌํ•  ๋•Œ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์ด ์„œ๋ฒ„ ์ธก์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค๋ฉด

๋ชจ๋“  ๋‚ด์šฉ์„ ํฌํ•จํ•œ ํŽ˜์ด์ง€๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๊ฒ€์ƒ‰ ์—”์ง„ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ œ๊ณต๋  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์‚ฌ์šฉ์ž๋“ค์ด ํŽ˜์ด์ง€๊ฐ€ ๊นœ๋นก์ด๋Š” ๋กœ๋”ฉ ์ƒํƒœ๋ฅผ ๊ฒฝํ—˜ํ•  ํ•„์š”๋„ ์—†๊ณ 

๊ฒ€์ƒ‰ ์—”์ง„์„ ํ†ตํ•ด์„œ๋„ ํŽ˜์ด์ง€์˜ ์ฝ˜ํ…์ธ  ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

React ํŽ˜์ด์ง€, ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„œ๋ฒ„ ์ธก์—๊ฒŒ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง ํ•ด์ฃผ๊ธฐ์— ๊ฐ€๋Šฅํ•˜๋‹ค.

 

ReactJS์—๋Š” ์‚ฌ์‹ค ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง์„ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•ด์ฃผ๋Š” ๋‚ด์žฅ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ณ 

์ง์ ‘ ๊ฑฐ์ณ์•ผ ํ•  ์„ค์ • ๋‹จ๊ณ„๊ฐ€ ๋” ๋งŽ์•„์ง„๋‹ค.

NextJS์—๋Š” ๋‚ด์žฅ ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง์ด ์žˆ์–ด ์ž๋™์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋ฏธ๋ฆฌ ๋ Œ๋”๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰ NextJS๋ฅผ ์‚ฌ์šฉํ•ด ์•ฑ์„ ๊ตฌ์ถ•ํ•˜๋ฉด ์•„๋ฌด ์ถ”๊ฐ€ ์„ค์ •์ด ์—†์ด๋„ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด, ์„œ๋ฒ„ ์ธก์—์„œ ๋ Œ๋”๋ง์ด ๋ฐ”๋กœ ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋Š” ์ ์ ˆํ•œ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”๊ฐ€ ๋œ๋‹ค.

๊ฒ€์ƒ‰ ์—”์ง„์—์„œ ์•ก์„ธ์Šคํ•ด๋„ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉ์ž๋“ค์€ ๋กœ๋”ฉ๋˜๋Š” ๊นœ๋นก์ž„ ํ˜„์ƒ์„ ๊ฒช์ง€ ์•Š์•„์„œ ๋กœ๋”ฉ ๊ฒฝํ—˜ ๋˜ํ•œ ๊ฐœ์„ ๋œ๋‹ค.

 

NextJS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ถ๊ทน์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ฐ ์„œ๋ฒ„ ์ธก์˜ ์ฝ”๋“œ๊ฐ€ ์œตํ•ฉ์ด ๋œ๋‹ค.

 

ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ ์ œ๊ณต

File-based Routing

๊ธฐ์กด์˜ React์—๋Š” ๋ผ์šฐํ„ฐ๊ฐ€ ์•„์˜ˆ ์—†๋‹ค. 

๋ผ์šฐํŒ…์ด๋ž€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š” ๋“ฏํ•œ ์ฐฉ๊ฐ์„ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

๋ผ์šฐํ„ฐ๋Š” URL์„ ํ™•์ธํ•ด URL์ด ๋ณ€๊ฒฝ๋  ๋•Œ

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ฐฉ์ง€ํ•˜๊ณ (์„œ๋ฒ„์— ์ถ”๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ ๋„),

๊ทธ ๋Œ€์‹ ์— React๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€ ์ƒ์— ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ ๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.

URL์— ๊ธฐ๋ฐ˜ํ•ด ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ๋‚ด์šฉ์„ ๋ณ€๊ฒฝ(๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ)์ด ๋ฐ”๋กœ ๋ผ์šฐํŒ…์ด๋‹ค.

 

React Router๋„ ํ›Œ๋ฅญํ•œ ํŒจํ‚ค์ง€์ด์ง€๋งŒ ๋ณ„๋„์˜ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ณ„ ํด๋”์— ํŽ˜์ด์ง€๋กœ์„œ ์ž‘๋™ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ

์ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฝ”๋“œ ๋‚ด์—์„œ ๋ผ์šฐํŠธ ์„ค์ •์„ ๋ชจ๋ฐฉํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ NextJS๋กœ๋Š” ์ฝ”๋“œ ๋‚ด ๋ผ์šฐํŠธ ์ •์˜๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๊ฒŒ ๋œ๋‹ค.

NextJS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ํŒŒ์ผ๊ณผ ํด๋”์— ํŽ˜์ด์ง€์™€ ๋ผ์šฐํŠธ๋ฅผ ์ •์˜ํ•˜๊ฒŒ ๋œ๋‹ค.

pages๋ผ๋Š” ํด๋”์— ํŽ˜์ด์ง€๊ฐ€ ์ง€์›ํ•œ๋А ๋ผ์šฐํŠธ(Route)์™€ ๊ฒฝ๋กœ(Path)๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ฒŒ ๋œ๋‹ค.

์ค‘์ฒฉ ๋ผ์šฐ๋“œ, ํ˜น์€ ๋™์  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์  ๋ผ์šฐํŠธ ๋“ฑ์„ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค.

 

 

ReactJS์˜ ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ   

NextJS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž๋“ค์ด React ํ”„๋กœ์ ํŠธ์— ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…๋„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋ฒ„ ์ธก ์‚ฌ์ „ ๋ Œ๋”๋ง์„ ํ†ตํ•œ ํด๋ผ์ด์–ธํŠธ ์ธก ์ฝ”๋“œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ

์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์ž‘๋™์„ ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ „๋‹ฌ์ด ๋˜๋Š” ๋…๋ฆฝ์ ์ธ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋„ ํฌํ•จํ•˜๋Š” ํ’€์Šคํƒ React ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์„ ๋•Œ NextJS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NodeJS ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์•„์ฃผ ์‰ฝ๊ฒŒ ๋ฐฑ์—”๋“œ API๋ฅผ React ํ”„๋กœ์ ํŠธ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ˜น์€ ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ๋‚˜

๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ธ์ฆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—… NextJs๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„์ฃผ ๊ฐ„ํŽธํ•ด์ง„๋‹ค. 

๊ทธ๋Ÿฌ๋ฉด ๋…๋ฆฝ์ ์ธ REST API ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ํ•„์š” ์—†์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋กœ ์ž‘์—…์„ ํ•˜๋ฉด์„œ

React ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์ธ ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์ฝ”๋“œ๋„ ์ „๋ถ€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ

๋ฐฑ์—”๋“œ API ์ฝ”๋“œ์™€๋„ ์œตํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

next ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

next ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํด๋”์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด์น˜๊ณ  ์—”ํ„ฐ!

npx create-next-app

 

728x90

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

[Next.js] ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ธฐ  (0) 2022.12.10
    'Javascript/next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Next.js] ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ธฐ
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

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