๋ชฉ๋ก์ ์ฒด ๊ธ (1005)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
๐ฉ๐ป AWS (Amazon WeB Service) ์๋ง์กด์์ ๋ง๋ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค ๐ฉ๐ป AWS EC2 : AWS์ ๊ฐ์ ๋จธ์ ์๋น์ค (Instance) -> IaaS (Infrastructure as a Service) CPU + Memory + Disks + OS + Network + ์ฌ์ ์คํฌ๋ฆฝํธ โ ๊ฐ์๋จธ์ : ์๋น์ค๋ฅผ ๊ฐ์ ๋จธ์ ์ด๋ฏธ์ง๋ก ๋ฌถ์ด ๋ฐฐํฌ : ๊ฐ์ํ๋ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋์จ์ด๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์ด๋ฅผ ํตํด ์ฌ๋ฌ ์ด์ ์ฒด์ ๋ฅผ ๋์์ ์คํ. ์ฅ) VM ์ด๋ฏธ์ง๋ก ๊ธฐ์ ์คํ์ ์บก์ํ, ์๋น์ค ์ธ์คํด์ค๊ฐ ๊ฒฉ๋ฆฌ๋จ ๋จ) ๊ธฐ์ ์คํ์ ์บก์ํํ ์ ์์, ์๋น์ค๋ณ๋ก ๋ฐํ์ ๋ฒ์ ์ด ์ ํด์ ธ ์์ โ ์ปจํ ์ด๋ : OS ์์ค์์ ๊ฐ์ํํ ๋ฉ์ปค๋์ฆ (์ปจํ ์ด๋ ๋ฐํ์(์ปจํ ์ด๋ ์คํ์ ๋ด๋นํ๋ ์ํํธ์จ..
๐ฉ๐ป AWS CLI (๋ช ๋ น์ค ์ธํฐํ์ด์ค) ์์ธ์ค ํค์ ๋น๋ฐ ํค ํ์ํจ pip install awscli โ IAM/์ฌ์ฉ์/๋ง๋ ๊ฑฐ ๋ค์ด๊ฐ๊ธฐ (์ฐ๋๋ ์๋ test ๋ง๋ค์์๋๋ฐ, ๊ณผ๊ฑฐ์ ๋ง๋ gani๋ก ๋ค์ด๊ฐ๊ฒ ์ผ) โ IAM/์ฌ์ฉ์/๋ง ์์ธ์ค ํค์ ๋น๋ฐ๋ฒํธ ํค ์ ์ฅํด๋๊ธฐ (์๋ ๋ค์ด๋ก๋) โ CLI๋ก ๋ค์ด๊ฐ๊ธฐ โ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์์ค ํ์ธ aws cliโ
๐ฉ๐ป ๋ฐ์ดํฐ ์ผํฐ : ๋ฌผ๋ฆฌ์ ์ธ ์ฅ๋น๋ค์ ์์ ์ ์ด๊ณ ์ค๋จ ์๋ ์๋น์ค ์ ์ง ๋ชฉ์ ๐ฉ๐ป ๊ฐ์ํ : ํ๋์ ๋ฌผ๋ฆฌ์ ์ธ ์ฅ๋น์์ ์ํํธ์จ์ด์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ ผ๋ฆฌ์ ์ธ ์์์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๋น์ฉ๋๋น ํจ์จ์ฑ ์ฆ๋ ๋ชฉ์ ๐ฉ๐ป AWS = ํด๋ผ์ฐ๋ : ํน์ ๊ธฐ์ ์ด ํธ์คํ ํ์ฌ ์ธํฐ๋ท์ ํตํด ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ์๋น์ค : ํ๋ซํผ ์ ๊ณต์์ ๋ฐ๋ผ ๋ถ๋ฅ : ํ๋ผ์ด๋น / ํผ๋ธ๋ฆญ ์๋น์ค ํํ์ ๋ฐ๋ผ ๋ถ๋ฅ : IaaS/PaaS/SaaS โ AWS (Amazon Web Service) : ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต ์ ์ฒด : 300๊ฐ ์ด์์ ์จ ๋๋งจ๋ (On-Demand) ํด๋ผ์ฐ๋ ์๋น์ค : ํด๋ผ์ฐ๋๋ ๋น ๋ฅด๊ณ , ์์ ์ , ๋น์ฉ ํจ์จ์ ์ธ ์ปดํจํ ์๋น์ค โ AWS ๋ฆฌ์ (Regions) -> ์ฌ๋ฌ ๊ฐ ๋ฐ์ดํฐ ์ผํฐ์ ๋ฌถ์ ๋จ์ : ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํฐ์ผํฐ ..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท login ์ ์ ๋ณด๊ฐ ๋ง๋์ง ํ์ธํ๊ธฐ ๊ธฐ์กด ๋น๋ฐ๋ฒํธ์ ์ ๋ ฅํ ๋น๋ฐ๋ฒํธ๊ฐ ๋์ผํ์ง ํ์ธํ๊ธฐ ๐ท jwt (json webtoken) Header : ์๊ณ ๋ฆฌ์ฆ๊ณผ ํ์ Payload : ๋ฐ์ดํฐ SIGNATURE : ํ ํฐ์ ์ธ์ฝ๋ฉํ๊ฑฐ๋ ์ ํจ์ฑ ๊ฒ์ฆ์ ํ ๋, ์ฌ์ฉํ๋ ๊ณ ์ ํ ์ฝ๋ => Header ์ Payload๋ฅผ ํฉ์น ๋ฌธ์์ด์ BASE64๋ก ์ธ์ฝ๋ฉ => ์ธ์ฝ๋ฉํ ๊ฐ์ Secret Key๋ฅผ ์ด์ฉํด ํค๋์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด์ฑ => ์ด ๊ฐ์ ๋ค์ BASE64๋ก ์ธ์ฝ๋ฉํ์ฌ ์์ฑ ์ด ์ธ ๋ถ๋ถ์ ํฉ์ณ์ ์ํธํ๋ฅผ ํ ๊ฒ์ด JWT npm i jsonwebtoken ๐ท role์ผ๋ก ์ฌ..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท Async Request Handler async๋ฅผ ์ฝ๊ฒ ์ฌ์ฉ Request Handler๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ๊ณตํต์ ์ผ๋ก ์ค๋ฅ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๊ฑฐ๋ ๊ฐ๋จํ๊ฒ ๊ตฌํ npm i express-async-handler โ request handler์์ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ - promise().catch(next) - async function, try ~ catch, next ๐ท bcrypt๋ก ๋น๋ฐ๋ฒํธ hash ์ ์ฉํ๊ธฐ ๐ท ์ฝ๋ โ index.js const express = require("express"); const bodyParser = require("body-parser");..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท User์ ํ์๊ฐ์ ๋ด์ญ์ MongoDB ์ฐ๋ ๐ท PostMan ํ์ธ ๐ท ์ฝ๋ โ models/User.js const mongoose = require("mongoose"); const UserSchema = new mongoose.Schema({ firstname: { type: String, required: true }, lastname: { type: String, required: true }, email: { type: String, required: true, unique: true }, mobile: { type: String, required: true..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท ํ๊ฒฝ ์ค์ ๐ package.json ๋ง๋ค์ด์ค๋ค npm init ๐ ํ์ํ ํจํค์ง ๋ค์ด๋ก๋ ํ๋ค npm i express mongoose bcrypt body-parser dotenv npm install nodemon --save ๐ ํด๋๋ฅผ ์์ฑํ๋ค ๐ ์๋ฒ์ MongoDB๋ฅผ ์ฐ๊ฒฐํ๋ค ๐ท ์ฝ๋ โ config/dbConnect.js const mongoose = require("mongoose"); require("dotenv").config(); // DB config const db = process.env.MONGODB_URI; // connect to Mongo..
๐ฉ๐ป ์ฃ์ง ํด๋ผ์ฐ๋ : ๊ธฐ์ง๊ตญ ๊ณผ์ ํต์ ์ ํตํด ๊ธฐ์ง๊ตญ์์ ํด๋ผ์ฐ๋ ์ปดํจํฐ์ ์ ์ํ๋ ๋ฐฉ์ : ์ฌ์ฉ์ ๋๋ ๋ฐ์ดํฐ ์์ค์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๋ ๊ทธ ๊ทผ์ฒ์์ ์ปดํจํ ์ ์ํํ๋ ๊ฒ โญ ์์ฉ ์์ : ์์จ์ฃผํ, Smart Grid, AR/VR ๐ฉ๐ป AWS : VM/Container/Serverless, Edge Cloud Computing ๋ฑ ๋ค์ํ ์๋ฃจ์ ์ ๊ณต