PJH's Shopping Mall - ๋ฐฐํฌ

๋ฐ•์ •ํ˜ธยท2022๋…„ 12์›” 29์ผ

Shopping Project

๋ชฉ๋ก ๋ณด๊ธฐ
11/11
post-thumbnail

๐Ÿš€ Start

์ผ๋‹จ ์‡ผํ•‘๋ชฐ์— ํ•„์š”ํ•œ ์ƒํ’ˆ CRUD, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ ์ •๋„๊นŒ์ง„ ๋ชจ๋‘ ๊ฐ–์ท„๋‹ค. UI ๋””์ž์ธ์€ ๋ฐฐํฌ ์ดํ›„์— ํ•ด๋ณด๋„๋ก ํ•˜๊ณ  ์šฐ์„  ๋ฐฐํฌ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•ด๋ณด์ž.

๋Š˜ ์ด ๋‹จ๊ณ„์—์„œ ๋ง‰ํ˜€์„œ ์™„์„ฑ(?)๋œ ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ฐœ๋ฐœ๊นŒ์ง€๋งŒ ํ•˜๊ณ  ๊ทธ์ณค๋Š”๋ฐ, ์ด๋ฒˆ์—” ํ•œ๋ฒˆ๋„ ์•ˆ์จ๋ณธ Vercel๊ณผ Heroku๋ฅผ ์ด์šฉํ•ด๋ณด์ž.

โœ… ์ƒ๊ฐ ์ •๋ฆฌ๋ฅผ ์ข€ ํ•ด๋ณด์ž๋ฉด...

  • graphql์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„๋กœ Heroku

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„๋กค Firebase

  • Client๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„๋กœ Vercel

์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋ ๊ฑฐ ๊ฐ™๋‹ค.

๋”ฐ๋ผ์„œ, Vecel ์ž…์žฅ์—์„œ๋Š” ์„œ๋ฒ„๋กœ Heroku๋ฅผ ๋ฐ”๋ผ๋ด์•ผํ•˜๊ณ , Heroku ์ž…์žฅ์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” Vercel๋ฅผ ๋ฐ”๋ผ๋ด์•ผํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” Firbase๋ฅผ ๋ฐ”๋ผ๋ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ธ ๊ฒƒ ๊ฐ™๋‹ค.



Client Deploy

โœ… Github Repository์˜ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์™€ import

โœ… Deploy ํ›„ Visit ํด๋ฆญ์‹œ ํ”„๋กœ์ ํŠธ ์‚ฌ์ดํŠธ ์˜คํ”ˆ

โœ… ์ž๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๋นŒ๋“œ ์„ค์ •

โœ… ๋นŒ๋“œ ์ง„ํ–‰ ๋ฐ ์ปค๋ฐ‹

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜๋ฉด dist ํŒŒ์ผ ์ƒ์„ฑ
  • ๊ทธ ๋’ค๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ปค๋ฐ‹๋งŒํ•ด๋„ ์ž๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ
"build": "tsc && vite build"

โœ… development, production ๊ตฌ๋ถ„

๊ฐœ๋ฐœํ• ๋•Œ์˜ URL๊ณผ ๋ฐฐํฌ์‹œ ์‚ฌ์šฉํ•  URL์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด envํŒŒ์ผ ์ƒ์„ฑํ›„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

const BASE_URL = import.meta.env.VITE_SERVER_URL as string;


Server Deploy

โœ… Github Repository์™€ ์—ฐ๋™

โœ… ๋นŒ๋“œ ์ง„ํ–‰

"serve": "npm run build && cross-env NODE_ENV=production node ./dist/index.js"

โœ… Confifure variables ์„ค์ •

โœ… development, production ๊ตฌ๋ถ„

  • ๊ฐœ๋ฐœ์‹œ ํด๋ผ์ด์–ธํŠธ URL์€ https://localhost:5173, ๋ฐฐํฌ์‹œ์—๋Š” ์•ž์„œ ์ƒ์„ฑํ•œ Vercel URL์ธ https://pjh-shoppingmall.vercel.app๋กœ ์„ค์ •

โœ… Github Repository ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ์ž๋™๋ฐฐํฌ ์„ค์ •

โœ… ๋นŒ๋“œ ์ง„ํ–‰ํ›„ ๋ฐฐํฌ ์™„๋ฃŒ ํ™•์ธ



๐Ÿ˜ฐ Vite์—์„œ์˜ envํŒŒ์ผ

๋„๋Œ€์ฒด ์™œ ์•ˆ๋˜๋Š”๊ฑฐ์•ผ!!!!!!

Vite์˜ ๊ฒฝ์šฐ process.env๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋Œ€์‹  import.meta.env ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์žˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์—์„œ ์—๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Typescript ์—์„œ ์‚ฌ์šฉ์„ ํ•˜๋ ค๋ฉด ์œ ํ˜•์ •์˜๋ฅผ ์ œ๊ณตํ•ด์ค˜์•ผํ•œ๋‹ค๋Š” ๋ง์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ, env.d.tsํŒŒ์ผ์— ๊ฐœ๋ณ„์ ์œผ๋กœ envํŒŒ์ผ์— ๋Œ€ํ•œ ํƒ€์ž…์ •์˜๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค.

์„œ๋ฒ„์—์„œ๋Š” envํŒŒ์ผ์„ ์•„์˜ˆ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•ด์„œ ์ผ๋‹จ firbase์— ๋Œ€ํ•œ api key์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ firebase.js๋Š” git ignoreํ•ด๋†“์€ ์ƒํƒœ์ด๋‹ค.

์ด๋ถ€๋ถ„์€ ์ถ”ํ›„์— ๋‹ค์‹œ ํ•ด๊ฒฐํ•ด๋ด์•ผ๊ฒ ๋‹ค.

๐Ÿ‘ Finally...

์œ„์˜ ๊ณผ์ •์„ ๋ชจ๋‘ ์™„๋ฃŒํ•˜๊ณ , Vercel์—์„œ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ url๋กœ ์ ‘์†ํ•˜๋ฉด ์ด์ œ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋“ค์–ด์˜จ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ด์ œ UI Design์„ ์ž…ํ˜€๋ณด์ž.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„๋“ค์„ ์ถ”๊ฐ€ ๋ฐ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค.

> โœ”๏ธ ์ƒํ’ˆ ์—…๋กœ๋“œ์‹œ orderby๋กœ ์ •๋ ฌ์‹œํ‚ค๊ธฐ (error ํ•ด๊ฒฐํ•˜๊ธฐ)
โœ”๏ธ admin ํŽ˜์ด์ง€ ์ธ์ฆ์ฒ˜๋ฆฌํ•˜๊ธฐ
โœ”๏ธ ์ด๋ฏธ์ง€ ํŒŒ์ผ ์—…๋กœ๋“œํ•˜๊ธฐ
โœ”๏ธ ๋ฌดํ•œ์Šคํฌ๋กค ๋ฒ„๊ทธ ํ•ด๊ฒฐํ•˜๊ธฐ
โœ”๏ธ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ƒํ’ˆ ์‚ญ์ œ ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ
โœ”๏ธ Vite env ๋™์ž‘ ์—๋Ÿฌ - ์ž„์‹œ๋กœ firebaseํŒŒ์ผ ignore
โœ”๏ธ ๋ฐฐํฌ์‚ฌ์ดํŠธ ํƒ€์ดํ‹€, ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ
โœ”๏ธ ๋กœ๋”ฉ UI ์ถ”๊ฐ€ํ•˜๊ธฐ

profile
๊ธฐ๋กํ•˜์—ฌ ๊ธฐ์–ตํ•˜๊ณ , ๊ณ„ํšํ•˜์—ฌ ์‹ค์ฒœํ•˜์ž. will be a FE developer (HOME๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Notion์œผ๋กœ ๋†€๋Ÿฌ์˜ค์„ธ์š”!)

0๊ฐœ์˜ ๋Œ“๊ธ€