gngsn / EARLY-BUDDY-SERVER

๐Ÿฅ SOPT 25๊ธฐ ์ผ์ • ์•Œ๋ฆผ ์„œ๋น„์Šค 'EARLY-BUDDY' ๐Ÿฅ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EARLY-BUDDY-SERVER

project_early-buddy_server

"dependencies": {
    "clean-css": "^4.2.1",
    "constantinople": "^4.0.1",
    "cookie-parser": "~1.4.4",
    "data-utils": "0.0.2",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "firebase-admin": "^8.9.0",
    "http-errors": "~1.6.3",
    "jade": "~1.11.0",
    "jsonwebtoken": "^8.5.1",
    "moment": "^2.4.0",
    "moment-timezone": "^0.5.27",
    "morgan": "~1.9.1",
    "node-schedule": "^1.3.2",
    "node-scheduler": "^1.0.0",
    "pbkdf2": "^3.0.17",
    "promise-mysql": "^4.1.1",
    "rand-token": "^0.4.0",
    "request": "^2.88.0",
    "urlencode": "^1.1.0",
    "xml2js": "^0.4.23"
  }

ERD diagram

erd

์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜

earlybuddy architecture

์ฃผ์š” ๊ธฐ๋Šฅ ์„ค๋ช…

์ผ์ • ๋“ฑ๋ก

  • 1 ๋‚˜๋งŒ์˜ ์ผ์ •์„ ๋“ฑ๋ก(์ถœ๋ฐœ ๋ฐ ๋„์ฐฉ ์žฅ์†Œ์™€ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„๊นŒ์ง€)
  • 2 ์„ค์ •ํ•œ ์•ฝ์† ์‹œ๊ฐ„๊นŒ์ง€ ๋Šฆ์ง€ ์•Š๊ธฐ ์œ„ํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ผญ ํƒ€์•ผ๋งŒ ํ•˜๋Š” ๋ฒ„์Šค ๊ธฐ์ค€์œผ๋กœ ๋ช‡ ๋Œ€ ์ „๋ถ€ํ„ฐ ํ•ด๋‹น ๋ฒ„์Šค์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›์„์ง€๋ฅผ ์„ค์ •
  • -3 ์œ„์—์„œ ์„ค์ •ํ•œ ๋ฒ„์Šค์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฒ„์Šค๊ฐ€ ์ •๋ฅ˜์žฅ์— ๋„์ฐฉํ•˜๊ธฐ ๋ช‡ ๋ถ„ ์ „๋ถ€ํ„ฐ ์•Œ๋ฆผ์„ ๋ฐ›์„์ง€๋ฅผ ์„ค์ •(ํ‘ธ์‰ฌ ์•Œ๋ฆผ์œผ๋กœ ๋ฐ›์Œ) ํ‘ธ์‰ฌ ์•Œ๋ฆผ
  • ์ผ์ • ๋“ฑ๋ก ์‹œ ์„ค์ •ํ•ด ๋†“์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ์„œ ๋‚ด๊ฐ€ ํƒ€์•ผ ํ•˜๋Š” ๋ฒ„์Šค์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›์Œ
    • โ†’ ๋ฒ„์Šค ํƒ€์•ผ ํ•˜๋Š” ์‹œ๊ฐ„์— ๊ณ„์† ๋ฐฐ์ฐจ๋ฅผ ์ผ์ผ์ด ํ™•์ธํ•˜๋˜ ๋ถˆํŽธํ•จ ํ•ด์†Œ ์บ˜๋ฆฐ๋” ๊ธฐ๋Šฅ
  • ์บ˜๋ฆฐ๋”๋ฅผ ํ†ตํ•˜์—ฌ ๋‚ด๊ฐ€ ๋“ฑ๋กํ•œ ์ผ์ •์„ ํ•œ ๋ˆˆ์— ํŒŒ์•… ๊ฐ€๋Šฅ

์‹œ์ž‘ํ•˜๊ธฐ

๋ชจ๋“  ์†Œ์Šค์ฝ”๋“œ๋Š” vscode+ Windows10/MAC + Node.js 10 ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Node.js์˜ Aysnc/Await ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด (Promise) ๋น„๋™๊ธฐ ์ œ์–ด๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Node.js์˜ ๋ฒ„์ „์„ 7.6 ์ด์ƒ์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ํ•˜๊ธฐ

npm start
  • localhost:3456 ์œผ๋กœ ์ ‘์†์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

AWS EC2 ์‹คํ–‰ ํ•˜๊ธฐ

*nodejs์™€ npm์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•์€ node.org๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  • Node.js 8 LTS ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰์— ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
npm install 

์‹คํ–‰ํ•˜๊ธฐ

  • Express ์•ฑ์šฉ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž pm2 ๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌ ํ•ฉ๋‹ˆ๋‹ค.
npm install pm2 -g
  • Express ์•ฑ์šฉ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž pm2 ๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌ ํ•ฉ๋‹ˆ๋‹ค.
 pm2 start ./bin/www --name "์•ฑ ์ด๋ฆ„"
  • ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
 pm2 list
  • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
pm2 delete --name "์•ฑ ์ด๋ฆ…"
  • ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ ํ•ฉ๋‹ˆ๋‹ค.
pm2 moni t --name "์•ฑ ์ด๋ฆ„"

๋ฐฐํฌ

  • AWS EC2 - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„
  • AWS RDS - db ์„œ๋ฒ„

์‚ฌ์šฉ๋œ ๋„๊ตฌ

  • Node.js - Chrome V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„
  • Express.js - Node.js ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ
  • NPM - ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
  • PM2 - Express ์•ฑ์šฉ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž
  • vscode - ํŽธ์ง‘๊ธฐ
  • Mysql - DataBase
  • AWS EC2 - ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ
  • AWS RDS - ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • AWS S3 - ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

์‚ฌ์šฉ ๋ชจ๋“ˆ

์ฐธ์—ฌ์ž + ์—ญํ• ๋ถ„๋‹ด

  • ์‹ฌ์ •์šฑ - ๊ธธ์ฐพ๊ธฐ API, ์ผ์ • ๋“ฑ๋ก, ์ผ์ • ์กฐํšŒ, ์ผ์ • ์ˆ˜์ •
  • ๋ฐ•๊ฒฝ์„  -์•Œ๋ฆผ(fcm), ์ผ์ • ํ™•์ธ ,์ผ์ • ์—…๋ฐ์ดํŠธ / ์‚ญ์ œ
  • ์–‘์‹œ์—ฐ - ํ™ˆ , ์บ˜๋ฆฐ๋”
  • ์†์˜ˆ์ง€- ์œ ์ €, ๋งˆ์ดํŽ˜์ด์ง€, ReadME
  • ๊ธฐ์—ฌ์ž ๋ชฉ๋ก์„ ํ™•์ธํ•˜์—ฌ ์ด ํ”„๋กœ์ ํŠธ์— ์ฐธ๊ฐ€ํ•˜์‹  ๋ถ„๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EARLY-BUDDY์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ

About

๐Ÿฅ SOPT 25๊ธฐ ์ผ์ • ์•Œ๋ฆผ ์„œ๋น„์Šค 'EARLY-BUDDY' ๐Ÿฅ


Languages

Language:JavaScript 99.6%Language:HTML 0.3%Language:CSS 0.1%