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

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป dev

[spotify-api] VINYLIFY : ์Šคํฌํ‹ฐํŒŒ์ด apiํ™œ์šฉํ•œ ๊ฒ€์ƒ‰ + ์žฌ์ƒ ํ”„๋กœ์ ํŠธ(2) ์ค€๋น„๋ฌผ: authorization์„ ๋‹ด๋‹นํ•  ์„œ๋ฒ„

2024.06.12 - [๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป dev] - [spotify-api] VINYLIFY : ์Šคํฌํ‹ฐํŒŒ์ด apiํ™œ์šฉํ•œ ๊ฒ€์ƒ‰ + ์žฌ์ƒ ํ”„๋กœ์ ํŠธ(1) ์ค€๋น„๋ฌผ:spotify dev ๊ณ„์ •, application ์— ์ด์–ด์„œ..

 

[spotify-api] VINYLIFY : ์Šคํฌํ‹ฐํŒŒ์ด apiํ™œ์šฉํ•œ ๊ฒ€์ƒ‰ + ์žฌ์ƒ ํ”„๋กœ์ ํŠธ(1) ์ค€๋น„๋ฌผ:spotify dev ๊ณ„์ •, application

2024.06.12 - [๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป dev] - [spotify-api] VINYLIFY : ์Šคํฌํ‹ฐํŒŒ์ด apiํ™œ์šฉํ•œ ๊ฒ€์ƒ‰ + ์žฌ์ƒ ํ”„๋กœ์ ํŠธ ์— ์ด์–ด์„œ [spotify-api] VINYLIFY : ์Šคํฌํ‹ฐํŒŒ์ด apiํ™œ์šฉํ•œ ๊ฒ€์ƒ‰ + ์žฌ์ƒ ํ”„๋กœ์ ํŠธ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ GitHu

pyotato-dev.tistory.com

 

์ด๋ฒˆ์—๋Š” authorization์„ ๋‹ด๋‹นํ•  ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ณ , vercel์— ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐํฌํ•ด ๋ณด์ž

 

์ผ๋‹จ vercel์—์„œ express ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ์—์ œ ์ฝ”๋“œ์—์„œ ์‚ด์ง ๋ณ€ํ˜•์„ ํ•ด์•ผ ํ•œ๋‹ค.

 

๋จผ์ € vercel์— express๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ

 

1. ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ  

mkdir ${๋‚ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„}
cd ${๋‚ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„}
npm init -y

 

2. Express.js ์„ค์น˜ 

npm install express

 

3. Express.js app ์„ค์ •

  •  {๋‚ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„}์— api ํด๋”๋ฅผ ์ƒ์„ฑ
  •  {๋‚ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„}/api ์— index.ts ํŒŒ์ผ ์ƒ์„ฑ. ์ด ํŒŒ์ผ์ด ๋ฉ”์ธ ์„œ๋ฒ„ ํŒŒ์ผ์ด๋‹ค.

4. Express.js sever ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ

const express = require("express");
const app = express();

app.get("/", (req, res) => res.send("Express on Vercel"));

app.listen(3000, () => console.log("Server ready on port 3000."));

module.exports = app;
  • ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋ฅผ / ๋กœ ์„ค์ •ํ•˜๊ณ , ํ˜ธ์ถœ๋˜๋ฉด vercel์— Express๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
  • ์‹œ์ž‘ํ•˜๋ฉด port3000์—์„œ ์„œ๋ฒ„๊ฐ€ ๋Œ์•„๊ฐ„๋‹ค.

5. Vercel config ํ•ด์ฃผ๊ธฐ

{ "version": 2, "rewrites": [{ "source": "/(.*)", "destination": "/api" }] }

 

์ตœ์ƒ๋‹จ์— vercel.json ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์œ„์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์ž.

vercelํ•œํ…Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด /api ๊ฒฝ๋กœ๋กœ ๋ณด๋‚ด๋ผ๊ณ  ์„ค์ •ํ•œ ๊ฒƒ์ด๋‹ค.

 

6. ๋กœ์ปฌ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ๋ฆฌ๊ธฐ

npm i -g vercel

 

vercel CLI๋ฅผ ์„ค์น˜ํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๊ฒŒ ๋กœ์ปฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ํ„ฐ๋ฏธ๋„์—์„œ ์„ค์น˜๋ฅผ ํ•ด์ฃผ๊ณ , 

vercel login

 

์œ„์˜ ์ฝ”๋ฉ˜๋“œ๋กœ ๋กœ๊ทธ์ธํ•ด ์ฃผ์ž. ๋กœ๊ทธ์ธ ํ›„ ์•„๋ž˜์˜ ์ฝ”๋ฉ˜๋“œ๋กœ ๋กœ์ปฌ๋กœ ๋Œ์•„๊ฐ€๋Š” ์„œ๋ฒ„๋ฅผ http://localhost:3000์—์„œ

ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

vercel dev

 

7. ๋ฐฐํฌ๋Š” ์•„๋ž˜์˜ ์ฝ”๋ฉ˜๋“œ๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค.

vercel --prod

๐Ÿ“ References

https://vercel.com/guides/using-express-with-vercel

https://github.com/spotify/web-api-examples