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

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[2025 1ํ•™๊ธฐ React.js ์Šคํ„ฐ๋””] ํ•œํ˜œ๋ฏผ #6์ฃผ์ฐจ

๋ฐ˜์‘ํ˜•

๐Ÿ™ API ์—ฐ๋™์˜ ๊ธฐ๋ณธ

 

โœ… API๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒˆํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

โœ… API๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ axios ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

 

  • REST API ๋ฉ”์„œ๋“œ
๋ฉ”์„œ๋“œ ์˜๋ฏธ
GET ๋ฐ์ดํ„ฐ ์กฐํšŒ
POST ๋ฐ์ดํ„ฐ ๋“ฑ๋ก
PUT ๋ฐ์ดํ„ฐ ์ˆ˜์ •
DELETE ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ

 

  • useState์™€ useEffect๋กœ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉํ•˜๊ธฐ

useState๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , useEffect๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ์‹œ์ ์— ์š”์ฒญํ•ด๋ณด๊ฒ ์Œ.

 

๋‹จ, ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ

์š”์ฒญ์˜ ๊ฒฐ๊ณผ

๋กœ๋”ฉ ์ƒํƒœ

์—๋Ÿฌ

๊ด€๋ฆฌํ•ด์ค˜์•ผํ•จ.

 

Users.js

App.js

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

===================== ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ API ์žฌ์š”์ฒญํ•˜๊ธฐ =====================

๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ API๋ฅผ ์žฌ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Œ. ์ด๋ฅผ ์œ„ํ•ด์„œ fetchUsers ํ•จ์ˆ˜๋ฅผ ๋ฐ”๊นฅ์œผ๋กœ ๊บผ๋‚ด์ฃผ๊ณ , ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ด์ค„ ๊ฑฐ์ž„.

 

Users.js

 

์‹คํ–‰ ๊ฒฐ๊ณผ

"๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ" ๋ฒ„ํŠผ์ด ์ƒ๊ฒผ์Œ !!!!!

 

 

๐Ÿ™ React Router v6 ํŠœํ† ๋ฆฌ์–ผ

 

๐Ÿ’ก ๋ผ์šฐํŒ…์ด๋ž€?

 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ผ์šฐํŒ…์ด๋ž€ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ URL์— ๋”ฐ๋ผ ์•Œ๋งž๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.

์‰ฝ๊ฒŒ ๋งํ•ด์„œ ๋ธ”๋กœ๊ทธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ์„ ๋ณด๋ฉด "๊ธ€์“ฐ๊ธฐ ํŽ˜์ด์ง€/ ํฌ์ŠคํŠธ ๋ชฉ๋ก ํŽ˜์ด์ง€/ ํฌ์ŠคํŠธ ์ฝ๊ธฐ ํŽ˜์ด์ง€" ๋“ฑ์˜ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ. 

 ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ ํŽ˜์ด์ง€๋ณ„๋กœ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋ถ„๋ฆฌํ•ด๊ฐ€๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์ด๋‹ค.

 ๋ฆฌ์•กํŠธ์—์„œ ๋ผ์šฐํŠธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ(React Router)๋‚˜ Next.js๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

  • ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ > ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
  • Next.js > Create React App์ฒ˜๋Ÿผ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์„ค์ •, ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ, ์ตœ์ ํ™”, ๋‹ค๊ตญ์–ด ์‹œ์Šคํ…œ ์ง€์›, ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž„. ํŒŒ์ผ ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ๋Œ€์•ˆ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋จ.

๊ทผ๋ฐ ์ž๋ฃŒ์—์„œ ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋‹ˆ๊นŒ ๋‚˜๋„ ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ์‚ฌ์šฉํ•  ๊ฑฐ์ž„

 

๐Ÿ’ก์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ž€?

 

ํ•œ ๊ฐœ์˜ ํŽ˜์ด์ง€๋กœ ์ด๋ฃจ์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž„.

์•„๊นŒ ๋ถ„๋ช… ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™œ ๋ฐฐ์šฐ๋Š”์ง€ ์ดํ•ด์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฉ€ํ‹ฐ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘๋™ ๋ฐฉ์‹๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Œ.

 ๋ฉ€ํ‹ฐ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด html์„ ๋ฐ›์•„์˜ค๊ณ , ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ CSS, JS, ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ๋ณด์—ฌ์คฌ์Œ. ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค ๋‹ค๋ฅธ html ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์œ ๋™์ ์ธ html์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ–ˆ์Œ.

 

BUT

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

 

๊ทธ๋ž˜์„œ ..!!!

๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ทฐ ๋ Œ๋”๋ง์„ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ด๋‹นํ•˜๊ณ , ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ธŒ๋ผ์šฐ์ €์— ๋ถˆ๋Ÿฌ์™€ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‚ฌ์šฉ์ž์™€์˜ ์ธํ„ฐ๋ž™์…˜์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ js๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊พธ๊ฒŒ ๋จ.

์ฆ‰, ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์„œ๋ฒ„ API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋์Œ.

 ๊ทธ๋ฆฌ๊ณ  html์€ ํ•œ๋ฒˆ๋งŒ ๋ฐ›์•„์™€์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚จ ํ›„, ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ›์•„์™€์„œ ํ™”๋ฉด์— ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž„.

 

 

 

๐Ÿ’ก๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ์ ์šฉ ๋ฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

 

โœ…  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

 

 

๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ ํ›„, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

 

โœ…  ํ”„๋กœ์ ํŠธ์— ๋ผ์šฐํ„ฐ ์ ์šฉ

 

src/index.js ํŒŒ์ผ์— react-router-dom์— ๋‚ด์žฅ๋˜์–ด์žˆ๋Š” BrowserRouter ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์ค„ ๊ฑฐ์ž„.

์ด ์ปดํฌ๋„ŒํŠธ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์˜ค์ง€์•Š๊ณ  ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ํ˜„์žฌ ์ฃผ์†Œ์˜ ๊ฒฝ๋กœ์— ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ.

 

src/index.js

 

๋ผ๊ณ  ์ž๋ฃŒ์—๋Š” ๋‚˜์™€์žˆ์ง€๋งŒ ์ €๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ?๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ฝ”๋“œ ๋ฐ”๊ฟ”์คฌ์Œ

 

 

โœ…  ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ

 

๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๊ฑฐ์ž„. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ๋“ค์–ด์˜ค๊ฒŒ ๋์„ ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ๋ณด์—ฌ์ง€๊ฒŒ ๋  Home ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ์™€ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์†Œ๊ฐœํ•˜๋Š” About ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Œ !!

 

src/pages/Home.js

 

 

 

src/pages/About.js

 

 

 

โœ…  Route ์ปดํฌ๋„ŒํŠธ๋กœ ํŠน์ • ๊ฒฝ๋กœ์— ์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ๋ณด์—ฌ์ฃผ๊ธฐ

 

src/App.js

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

yarn start๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด

 

 

 

โœ… Link ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๋งํฌ ๋ณด์—ฌ์ฃผ๊ธฐ

 

src/pages/Home.js

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

โœ… URL ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง

 

URL ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ฃผ์†Œ์˜ ๊ฒฝ๋กœ์— ์œ ๋™์ ์ธ ๊ฐ’์„ ๋„ฃ๋Š” ํ˜•ํƒœ๊ณ , ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์€ ์ฃผ์†Œ์˜ ๋’ท๋ถ€๋ถ„์— "?" ์ดํ›„์— key=value๋กœ ๊ฐ’์„ ์ •์˜ํ•˜๋ฉฐ &๋กœ ๊ตฌ๋ถ„ํ•จ.

  • URL ํŒŒ๋ผ๋ฏธํ„ฐ ์˜ˆ์‹œ: /profile/velopert
  • ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ์˜ˆ์‹œ: /articles?**page=1&keyword=react

 

โœ… URL ํŒŒ๋ผ๋ฏธํ„ฐ

 

src/pages/Profile.js

 

 

 

src/App.js

 

 

 

src/pages/Home.js

 

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

 

โœ… ์ฟผ๋ฆฌ์ŠคํŠธ๋ง

 

src/pages/About.js

 

 

์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ useLocation ์ด๋ผ๋Š” Hook์„ ์‚ฌ์šฉํ–ˆ์Œ. ์ด Hook์€ location ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์ด ๊ฐ์ฒด๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ณ ์žˆ๋Š” ํŽ˜์ด์ง€์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง.

location ๊ฐ์ฒด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์ด ์žˆ์Œ

pathname ํ˜„์žฌ ์ฃผ์†Œ์˜ ๊ฒฝ๋กœ (์ฟผ๋ฆฌ์ŠคํŠธ๋ง ์ œ์™ธ)
search ๋งจ ์•ž์˜ ? ๋ฌธ์ž ํฌํ•จํ•œ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ๊ฐ’
hash ์ฃผ์†Œ์˜ # ๋ฌธ์ž์—ด ๋’ค์˜ ๊ฐ’
state ํŽ˜์ด์ง€๋กœ ์ด๋™ํ• ๋•Œ ์ž„์˜๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ ๊ฐ’
key location ๊ฐ์ฒด์˜ ๊ณ ์œ  ๊ฐ’, ์ดˆ๊ธฐ์—๋Š” default ์ด๋ฉฐ ํŽ˜์ด์ง€๊ฐ€ ๋ณ€๊ฒฝ๋ ๋•Œ๋งˆ๋‹ค ๊ณ ์œ ์˜ ๊ฐ’์ด ์ƒ์„ฑ๋จ

 

 

 

โœ… ์ค‘์ฒฉ๋œ ๋ผ์šฐํŠธ

 

src/pages/Articles.js

 

 

src/pages/Articles.js

 

 

src/App.js

 

 

src/pages/Home.js

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

 

โœ… ๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ

 

์ด๋ฒˆ์—๋Š” ์ค‘์ฒฉ๋œ ๋ผ์šฐํŠธ๋ฅผ ํ†ตํ•ด ๊ณตํ†ต ๋ ˆ์ด์›ƒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Œ

 

src/Layout.js

 

 

src/App.js

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

Header๊ฐ€ ์ž˜๋‚˜ํƒ€๋‚œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Œ !!

 

 

 

๐Ÿ’ก๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ๋ถ€๊ฐ€๊ธฐ๋Šฅ

 

์ด์ œ๋ถ€ํ„ฐ๋Š” ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ์—์„œ ๋ผ์šฐํŒ… ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์šฉํ•œ API๋“ค์„ ์‚ดํŽด๋ณด๊ฒ ์Œ

 

โœ… useNavigate

 

Link ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ

 

src/Layout.js

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

ํ—ค๋”์— ๋ฒ„ํŠผ ๋‘๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ

 

 

โœ… NavLink

 

๋งํฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ํ˜„์žฌ ๋ผ์šฐํŠธ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํŠน์ • ์Šคํƒ€์ผ ๋˜๋Š” CSS ํด๋ž˜์Šค๋ฅผ ์ ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž„

 

src/pages/Articles.js

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

"๊ฒŒ์‹œ๊ธ€1"์ด ํฌ๊ธฐ๊ฐ€ ๋” ์ปค์ง€๊ณ  ์ƒ‰๋„ ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋ฐ”๋€ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Œ !

 

 

โœ… NotFound ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

 

 

NotFound ํŽ˜์ด์ง€๋Š” ์‚ฌ์ „์— ์ •์˜๋˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ง„์ž…ํ–ˆ์„ ๋•Œ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€์ž„.

 

 

src/pages/NotFound.js

 

 

 

src/App.js

 

 

 

 

โœ… Navigate ์ปดํฌ๋„ŒํŠธ

 

Navigate ์ปดํฌ๋„ŒํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ์ˆœ๊ฐ„ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž„.

์šฐ์„  ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•œ ํŽ˜์ด์ง€์ด๋ฏ€๋กœ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋ถ€ํ„ฐ ๋ณด์—ฌ์ฃผ๊ฒ ์Œ.

 

src/pages/Login.js

 

 

 

src/pages/MyPage.js

 

 

 

src/App.js

 

 

 

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

 

/mypage ๋กœ ์ด๋™ํ•˜๋ฉด ๋ฐ”๋กœ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ€์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ

 

 

 

 

๐Ÿ™ ์ •๋ฆฌ

 

๋‚ด๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ์ฝ”๋“œ์— ๋”ฐ๋ผ ์›น ํŽ˜์ด์ง€ ํ™”๋ฉด์ด ๋‹ค์–‘ํ•˜๊ฒŒ ๋ฐ”๋€Œ๋Š”๊ฒŒ ์žฌ๋ฐŒ์—ˆ์Œ

 

 

 

 

๋

 

๋ฐ˜์‘ํ˜•