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

BODYLIKE ์ƒ์„ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„

by ์€์ง€:) 2022. 8. 26.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

๐Ÿ‘† ์ƒ์„ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„ ์›€์งค

 

 

 

 

 

 

BODYLIKE  project

 

 

 

 

์ด 5๋ช…์ด์„œ ๊ตฌ์„ฑ๋œ Team coner ( FE : 3, BE : 2 )์—์„œ

2์ฃผ๊ฐ„ ์˜ค๋กœ์ง€ ํ•™์Šต์šฉ์œผ๋กœ bodylike๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ค‘ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ์ฐฝ / ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ๋งก์•˜์Šต๋‹ˆ๋‹ค.

 

 

 

์ƒ์„ธ ํŽ˜์ด์ง€ ์ฐฝ 

 

 

 


 

 

 

๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ

 

 

 

  • ์ƒํ’ˆ ์ •๋ณด ์˜† ๋ฆฌ๋ทฐ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ํ•˜๋‹จ ๋ฆฌ๋ทฐ๋กœ ์Šฌ๋ผ์ด๋“œ
  • ์ƒํ’ˆ ์นด์šดํŠธ ์Œ์ˆ˜๋กœ ๋‚ด๋ ค๊ฐˆ ์‹œ, ์žฌ๊ณ  ์ด์ƒ ๋ˆ„๋ฅผ ์‹œ ์•Œ๋ฆผ์ฐฝ ๋œธ
  • ์ƒํ’ˆ ์นด์šดํŠธ ๋ˆ„๋ฅธ ํ›„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํด๋ฆญ ์‹œ ๋กœ๊ทธ์ธ ๋˜์–ด ์žˆ์„ ์‹œ ๋ชจ๋‹ฌ์ฐฝ ๋œจ๋ฉด์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ/์‡ผํ•‘ํ•˜๊ธฐ ๋ฒ„ํŠผ ๋œธ, ๋กœ๊ทธ์ธ ์•ˆ ๋˜์–ด ์žˆ์„ ์‹œ ์•Œ๋žŒ์ฐฝ ๋œจ๋ฉฐ ๋กœ๊ทธ์ธ ์ฐฝ์œผ๋กœ ์ด๋™
  • ๋ชจ๋‹ฌ ์ฐฝ์—์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐ€๊ธฐ ํด๋ฆญ์‹œ ์ œํ’ˆ์ด ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธฐ๋ฉฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ์ด๋™ (๋ชจ๋‹ฌ์ฐฝ ๊ตฌํ˜„ x)

 

 

 


 

 

 

 

์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์€

data๋ฅผ ๋ฐ›์•„์˜ค๋Š” fetch ํ•จ์ˆ˜์˜€๋‹ค

 

 

์ด 3๊ฐœ์˜ fetch ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ–ˆ๋Š”๋ฐ

์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๋Š” (๋™์  ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ, method : GET) ํ•จ์ˆ˜์™€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ๊ณผ ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ์— ๋“ค์–ด๊ฐˆ ํ•จ์ˆ˜์˜€๋‹ค

 

 

 

 

 

 

์ œํ’ˆ ์ƒ์„ธ ์ •๋ณด ๋ฐ›๋Š” fetch ํ•จ์ˆ˜

 

 

์ด๋ ‡๊ฒŒ ์งฐ๋‹ค

 

 

params ๋ฅผ ์ด์šฉํ•ด ์ •๋ณด๋ฅผ ๋ฐ›๊ณ  params.id๋ฅผ productId ๋ผ๋Š” ๋ณ€์ˆ˜์— ๋„ฃ์–ด url ๋์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค

product ๋ฐ์ดํ„ฐ๋Š” ๊ฐ์ฒด ์•ˆ์˜ ๋ฐฐ์—ด๋กœ ์˜ค๊ธฐ ๋•Œ๋ฌธ์— useState์— ([]) ๋นˆ ๋ฐฐ์—ด์„ ๋„ฃ์–ด ์ฃผ์—ˆ๊ณ 

๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋”ฐ๋ผ ๊ฐ๊ฐ name, thumbnail_image_url, price, detail, stock ์„ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹นํ•ด ๊ฐ๊ฐ ํ•„์š”ํ•œ ๊ณณ์— ๋„ฃ์—ˆ๋‹ค

 

 

๐Ÿ‘† ๋ฐ์ดํ„ฐ ํ˜•์‹, ์ฒ˜์Œ์—” ๋ชฉ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ์ผ๋‹ค

 

 

 

 

 

 

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฒ„ํŠผ / ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ ๊ด€๋ จ fetch 

 

 

์ดˆ๋ฐ˜์— ๊ตฌํ˜„ํ–ˆ์„ ๋• ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž… ์ฐฝ๊ณผ ๊ฐ™์ด merge ๋˜์ง€ ์•Š์•„ 

๋ฐฑ์—”๋“œ๋ถ„๊ป˜ ๋”ฐ๋กœ ํ† ํฐ์„ ๋ฐœ๊ธ‰ ๋ถ€ํƒ๋“œ๋ ค 

const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjYsImV4cCI6MTY2MTQ0MzI2NSwiaWF0IjoxNjYxMDgzMjY1fQ.KmF-Jp46fdHKwxS01SJ8PtF5yD1SkQP8rwQFA6tU9rQ"

 

๋ฅผ ๋ณ€์ˆ˜์— ๋‹ด์•„ ์ผ์—ˆ๋‹ค ๐Ÿ˜…

 

 

๊ทธ๋กœ์ธํ•ด ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—  ํ† ํฐ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ถ€๋ถ„์€ ํ†ต์‹ ์ด ๋Šฆ์—ˆ๋Š”๋ฐ

์ด๋•Œ Token ํ‚ค ๊ฐ’์„ ํ™•์ธํ•˜์ง€ ์•Š์•„์„œ ๊ธด ์‹œ๊ฐ„ ๊ณ ์ƒ์„ ๋งŽ์ด ํ–ˆ๋‹ค

 

๊ดœํžˆ ๋กœ์ง ๋‹ค์‹œ ์จ๋ณด๊ณ  ๋œฏ์–ด๊ณ ์น˜๊ณ ... ๋•๋ถ„์— fetch ํ•จ์ˆ˜๋ฅผ ์ •๋ง ์˜ค๋žœ์‹œ๊ฐ„ ๋“ค์—ฌ๋‹ค๋ณด์•˜๋‹ค

 

 

 

 

 

 

 

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ / ๊ตฌ๋งคํ•˜๊ธฐ fetch ํ•จ์ˆ˜ ๐Ÿ‘‡

 

 

 

๐Ÿ‘† token ๋ณ€์ˆ˜๋Š” ์žฅ๋ฐ”๊ตฌ๋‹ˆ์™€ ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ƒ๋‹จ์— ์˜ฌ๋ ค๋†“์•˜๋‹ค

 

 

 

 

์–ผ๋ฆฌ ๋ฆฌํ„ด์„ ์œ„ํ•ด token์ด ์—†์„ ๊ฒฝ์šฐ๋ฅผ ๋จผ์ € ์งฐ๋‹ค

์ด๋ ‡๊ฒŒ ์งœ๋ฉด ๊ตณ์ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์ง€ ์•Š์•„๋„ ํ† ํฐ ์—ฌ๋ถ€๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋จผ์ € ํ™•์ธํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค

 

method : post ๋กœ ์„œ๋ฒ„์— ์ˆ˜๋Ÿ‰์„ ๋‹ด์•„ ๋ณด๋‚ด์ฃผ์—ˆ๊ณ 

์ˆ˜๋Ÿ‰์ด ์žฌ๊ณ ๊ฐ€ ๋„˜์„ ์‹œ (status 401๋ฒˆ) ์žฌ๊ณ  ์ˆ˜๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ์•Œ๋ฆผ์ด ๋œจ๊ฒŒ ํ–ˆ๋‹ค

 

 

 

 

์žฌ๊ณ  ์ˆ˜๋Ÿ‰ ๊ด€๋ จํ•ด์„œ ์ œํ’ˆ ์นด์šดํŠธ ํ•  ์‹œ ์•Œ๋ฆผ์ฐฝ์— ๋œจ๊ฒŒ๋” ๋ง‰์•„๋†“๊ธด ํ–ˆ์œผ๋‚˜

 

 

์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์ด์ค‘์œผ๋กœ ๋ง‰์•„ ์ข€ ๋” ์ฒ ์ €ํ•˜๊ฒŒ ๋ณด์•ˆ์„ ํ–ˆ๋‹ค

( + ์Œ์ˆ˜๊ฐ€ ๋˜์ง€ ๋ชปํ•˜๊ฒŒ ๋กœ์ง ์งฌ)

 

 

 

 

๋กœ๊ทธ์ธ ํ† ํฐ์ด ์ œ๋Œ€๋กœ ์žˆ๋Š” ์ƒํƒœ์—์„œ ์žฌ๊ณ  ์ดํ•˜์˜ ๋ฌผ๊ฑด์„ ๋‹ด์•„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฒ„ํŠผ๋ฅผ ํด๋ฆญํ•  ์‹œ

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ๊ฐ€๊ธฐ / ์‡ผํ•‘ ๊ณ„์†ํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ๋‚˜์˜ค๋Š” ๋ชจ๋‹ฌ์ฐฝ์ด ๋œจ๊ฒŒ ํ–ˆ๋Š”๋ฐ

 

ํŒ€์›์ด ๊ตฌํ˜„ํ•œ ๋ชจ๋‹ฌ์ฐฝ ๊ด€๋ จ ํ•จ์ˆ˜๋ฅผ (false)๋กœ ์ง€์ •ํ•ด๋†“๊ณ  (true)๋กœ ๋ฐ”๊พธ์–ด ๋ชจ๋‹ฌ์ฐฝ์ด ๋œจ๊ฒŒ๋” ํ–ˆ๋‹ค

 

 

 

 

 

 

 

 

์ƒ์„ธ ํŽ˜์ด์ง€ ๋‚ด ๋ฆฌ๋ทฐ ์นธ์œผ๋กœ ์Šฌ๋ผ์ด๋“œ ํ•˜๋Š” ๊ธฐ๋Šฅ

 

 

 

๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ useRef hooks์„ ์ฒ˜์Œ ์ ‘ํ•ด๋ณด์•˜๋‹ค

 

 

๋ Œ๋”๋ง ํ•˜์ง€ ์•Š๊ณ ๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์œผ๋กœ ์Šฌ๋ผ์ด๋“œ ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ

 

 

useRef ๋ฅผ homeRef ๋ณ€์ˆ˜์— ๋‹ด์•„

์ด๋ฅผ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” ๋ฆฌ๋ทฐ์ฐฝ์— ๊ทผ์ ‘ํ•œ div์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค 

์Šค๋ฅด๋ฅต ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋”ฐ๋กœ {behavior : 'smooth'} ์Šคํƒ€์ผ๋„ ๊ฑธ์–ด์ฃผ์—ˆ๋‹ค

 

 

์ฒ˜์Œ ์ ‘ํ•œ ํ›…์ด๋ผ ์–ด๋ ต๋‹ค๊ณ ๋งŒ ๋Š๊ผˆ๋Š”๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์•„ ์ฆ๊ฒ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค โ˜บ๏ธ

 

 

 

 

 

 

 

 

๋Š๋‚€์ 

 

 

 ์ฒซ ํ”„๋กœ์ ํŠธ์˜€๋˜ ๋งŒํผ ์•„์‰ฌ์›€์ด ๋งŽ์ด ๋‚จ๋Š”๋‹ค

ํŠนํžˆ fetch ํ•จ์ˆ˜ ๊ด€๋ จํ•ด์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋„ˆ๋ฌด ์ง‘์ค‘ํ•œ ๋‚˜๋จธ์ง€ ๊ตฌ๋งคํ•˜๊ธฐ fetch๊ฐ€ ์กฐ๊ธˆ ํ—ˆ์ˆ ํ•œ ๊ฒŒ ์•„๋‹ˆ์—ˆ๋‚˜ํ•œ๋‹ค

 

 

๊ทธ๋Ÿฌ๋‚˜ ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊นจ๋‹ฌ์€ ๊ฒƒ์€

 

data ํ˜•์‹์„ ์ž˜ ๋ณด๊ณ  ํ•จ์ˆ˜๋ฅผ ์งœ์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ

๊ผญ ๋ฐฑ์—”๋“œ๋ถ„๊ณผ ๊ฐ™์ด ๋งž์ถ”์–ด์•ผ ์˜ค๋ฅ˜๋ฅผ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค

 

 

์˜ค๋ฅ˜๊ฐ€ ๋‚  ์‹œ ๊ฐ™์ด ์ฝ˜์†”์„ ์ฐ์–ด๋ณด๋ฉฐ

 

 

ํ”„๋ก ํŠธ, ๋ฐฑ์—”๋“œ ์ค‘ ์–ด๋Š ์ชฝ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€

ํ”„๋ก ํŠธ ์—”๋“œ ํ•จ์ˆ˜์‹ ๋ฌธ์ œ๋ผ๋ฉด ์–ด๋””๊นŒ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์™”๋Š”์ง€, ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€

๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๋Š” ์ชฝ๊ณผ ๋ฐ›๋Š” ์ชฝ ๋ชจ๋‘ ๊ฐ™์ด ๊ณ ๋ฏผํ•˜๋Š” ๊ณผ์ •์ด ๋งค์šฐ ์ฆ๊ฑฐ์› ๊ณ 

๋˜ ์„œ๋กœ์˜ ์—…๋ฌด์— ๋Œ€ํ•œ ์ดํ•ด๋„๋„ ๋†’์•„์ ธ ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ๋‹ค ๋Š๋‚€๋‹ค

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'BODYLIKE Project' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BODYLIKE Project ํšŒ๊ณ ๋ก  (2) 2022.08.27
BODYLIKE ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ์ฐฝ ๊ตฌํ˜„  (0) 2022.08.26
BODYLIKE ๋กœ๊ณ  ๊ด€๋ จ  (0) 2022.08.24

๋Œ“๊ธ€