/InventoryBox_Server

๋งฅ์ฃผ์ฐฝ๊ณ ๐Ÿบ์—์„œ ์ดˆ์ฝ”์šฐ์œ ๐Ÿผ๐Ÿซ delete ํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š๋„ค~ yo!!!๐Ÿค˜

Primary LanguageJavaScript

๐Ÿ“ฆ ์žฌ๊ณ ์ฐฝ๊ณ 



node_badge

npm_bedge


๐Ÿ“‘ ํ”„๋กœ์ ํŠธ ์„ค๋ช…

'๋‚˜๋งŒ์˜ ๋‹ค์ด์–ด๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋“ฏ ๋งค์ผ๋งค์ผ ์‰ฝ๊ฒŒ ๊ธฐ๋กํ•˜๊ณ  ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ๊ณ ๊ด€๋ฆฌ ํ”Œ๋žซํผ', ์žฌ๊ณ ์ฐฝ๊ณ ์ž…๋‹ˆ๋‹ค. ๐Ÿ“ฆ
๋ฐœ์ฃผ์‹œ์ ์„ ๋†“์น˜์ง€ ์•Š๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ฐœ์ฃผ ์•Œ๋ฆผ ๊ธฐ๋Šฅ, ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ถ•์ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ๊ณ  ๊ธฐ๋ก ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ๏ผŒ์žฌ๊ณ ๊ตํ™˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์žฌ๊ณ ๊ฐ€ ๋–จ์–ด์ง€๋Š” ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ƒํ™ฉ์—๋„ ๊ฐœ์ธ ์‚ฌ์—…์ž๋“ค๊ฐ„ ๋„คํŠธ์›Œํฌ ํ˜•์„ฑ์„ ํ†ตํ•ด ์žฌ๊ณ ๋ฅผ ๋ณด์ถฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“‘ WorkFlow

node_badge


๐ŸŒŽ Team Role

๐Ÿ„โ€โ™‚๏ธ ๊น€์ •์šฑ

  • ๋ฐฑ์—”๋“œ ๋ฆฌ๋“œ ๊ฐœ๋ฐœ์ž
  • DB ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•
  • ํ™ˆํ™”๋ฉด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์žฌ๋ฃŒ์ถ”๊ฐ€ ํ™”๋ฉด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๊ธฐ๋ก์ˆ˜์ • ํ™”๋ฉด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์˜ค๋Š˜ ์žฌ๊ณ  ๊ธฐ๋กํ•˜๊ธฐ ํ™”๋ฉด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์นดํ…Œ๊ณ ๋ฆฌ ์ •๋ณด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์žฌ๋ฃŒ์ถ”๊ฐ€ ์ €์žฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๊ธฐ๋ก์ˆ˜์ • ๋ฐ ์˜ค๋Š˜์žฌ๊ณ ๊ธฐ๋ก ์ €์žฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ ์žฌ๋ฃŒ ๋ณ€๋™ ์ €์žฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ„โ€โ™‚๏ธ ์ž„ํ˜•์ค€

  • DB ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•
  • AWS(EC2, RDS, S3) ์—ฐ๊ฒฐ
  • ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์œ ์ € ๊ด€๋ จ ๊ธฐ๋Šฅ ( CRUD ) ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์ด๋ฉ”์ผ ์ธ์ฆ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ํ™ˆํ™”๋ฉด ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์žฌ๊ณ  ์ •๋ณด ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ( ๋ณด๋ฅ˜ )

๐Ÿ„โ€โ™€๏ธ ๋ฐฑ์„ ํ˜œ

  • DB ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•
  • ๋”๋ฏธ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์žฌ๊ณ ๋Ÿ‰ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ํ•œ ์•„์ดํ…œ ์ฃผ๋ณ„ ์„ ํƒ ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„
  • ํ•œ ์•„์ดํ…œ ์ฃผ๋ณ„ ๋น„๊ต ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„
  • ํ•œ ์•„์ดํ…œ ๋ฐœ์ฃผ์ •๋ณด ์ˆ˜์ • ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์žฌ๊ณ ๊ตํ™˜ ํ™ˆํ™”๋ฉด ๊ฑฐ๋ฆฌ์ˆœ, ๊ฐ€๊ฒฉ์ˆœ, ์ตœ์‹ ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์žฌ๊ณ ๊ตํ™˜ ๊ฒ€์ƒ‰ ๊ฑฐ๋ฆฌ์ˆœ, ๊ฐ€๊ฒฉ์ˆœ, ์ตœ์‹ ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์žฌ๊ณ ๊ตํ™˜ ์‚ฌ์šฉ์ž ์‚ฌ์—…์žฅ ์ฃผ์†Œ ์ˆ˜์ • ๊ธฐ๋Šฅ ๊ตฌํ˜„

โœ”๏ธ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์„ค๋ช…

  • (ํ™ˆํ™”๋ฉด) ๋ฐœ์ฃผํ•ด์•ผ ํ•  ์žฌ๋ฃŒ์˜ ๋ชฉ๋ก ๋ฐ 5์ผ๊ฐ„ ์žฌ๊ณ ๋Ÿ‰ ๋ณ€ํ™” ์ถœ๋ ฅ
  • (์žฌ๊ณ ๊ธฐ๋ก) ๋‚ ์งœ์— ๋”ฐ๋ฅธ ์žฌ๊ณ ๊ธฐ๋ก ๋ฐ ์‚ฌ์šฉ์ž๋ณ„ ์นดํ…Œ๊ณ ๋ฆฌ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ
  • (์žฌ๊ณ ๋Ÿ‰ ์ถ”์ด) ์›” or ์ฃผ์ฐจ๋ณ„ ์žฌ๊ณ ๋Ÿ‰ ๋ณ€ํ™” ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„ ๋ฐ ์„ ํƒ ์ฃผ์ฐจ ์žฌ๋ฃŒ์ถ”์ด ๋น„๊ต
  • (์žฌ๊ณ ๊ตํ™˜) ์ž‰์—ฌ ์žฌ๊ณ ๊ตํ™˜์„ ์œ„ํ•œ ์‹œ์Šคํ…œ ์ œ๊ณต, ๊ฑฐ๋ฆฌ์ˆœ ๊ฒŒ์‹œ๊ธ€ ์ •๋ ฌ ๋ฐ ์ข‹์•„์š” ๋ชฉ๋ก ํ™œ์„ฑํ™”

๐Ÿ“˜ Package

์‚ฌ์šฉ ํŒจํ‚ค์ง€(๋ชจ๋“ˆ)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • crypto : ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™” ๋ฐ ์ธ์ฆ
  • express : ์›น, ์„œ๋ฒ„ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ
  • express-formidable : form-data ํŒŒ์‹ฑ ๋„๊ตฌ
  • jsonwebtoken : JWT(Json Web Token) ์ƒ์„ฑ ๋ฐ ์ธ์ฆ
  • multer : ํŒŒ์ผ ์—…๋กœ๋“œ ๋„๊ตฌ
  • multer-s3 : AWS S3 ํŒŒ์ผ ์—…๋กœ๋“œ ๋„๊ตฌ
  • rand-token : ๋žœ๋ค ํ† ํฐ ์ƒ์„ฑ ๋„๊ตฌ
 "dependencies": {
    "aws-sdk": "^2.713.0",
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "jade": "~1.11.0",
    "jsonwebtoken": "^8.5.1",
    "morgan": "~1.9.1",
    "multer": "^1.4.2",
    "multer-s3": "^2.9.0",
    "nodemailer": "^6.4.10",
    "passport": "^0.4.1",
    "passport-kakao": "^1.0.0",
    "promise-mysql": "^4.1.3",
    "rand-token": "^1.0.1"
  }

๐Ÿ“— Architecture

architecture


๐Ÿ“™ DB ERD

ERD


๐Ÿ“• ๋ฐฐํฌ

  • AWS EC2 - ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ
  • AWS elastic beanstlak - ์„œ๋ฒ„ ๋ฐฐํฌ๋ฐ ๊ด€๋ฆฌ ํ”„๋กœ๋น„์ €๋‹ ์„œ๋น„์Šค
  • AWS S3 - ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

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

  • Node.js
  • Express.js
  • NPM - ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
  • PM2 - ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž

๐Ÿ’ป ๊ฐœ๋ฐœ์ž


๐Ÿข ํšŒ๊ณ  ๋ฐ ํ”ผ๋“œ๋ฐฑ