๋ชฉ๋ก์ ์ฒด ๊ธ (1005)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
(์ฝ๋๋ ์ ์๊ถ์ ๊ณต์ ์๋ฉ๋๋น!!) ๐ฅ RGB LED : ํ๋์ LED์ Red, Green, Blue ์ธ๊ฐ์ ๋ฐ๊ด ์์๋ฅผ ๋ฃ์ด ์ธ๊ฐ์ง ์์ ์ด์ฉํด ์ํ๋ ์ปฌ๋ฌ๋ฅผ ์กฐํฉ ๐ฅ RGB LED ๋ก ๋ฌด์ง๊ฐ ํํํ๊ธฐ : ์ธ ๊ฐ์ง ์์์ ์กฐํฉํ์ฌ ๋นจ, ์ฃผ, ๋ ธ, ์ด, ํ, ๋จ, ๋ณด 7๊ฐ์ง ์์์ ๋ํ๋ด๊ธฐ ๐ฅ ์์์ ์ฝ๋ ๊ฐ์ ์ ๋ ฅ๋ฐ์ RGB LED์ ํํํ๊ธฐ : ์๋ฆฌ์ผ ํต์ ์ผ๋ก RGB ๊ฐ๊ฐ์ ์์ ๊ฐ์ ์ ๋ ฅ๋ฐ๊ธฐ : Serial ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ parseInt ํจ์๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ์ผ๋ก ๋ณํํ์ฌ ๋ฐํ ์ ์ํ ๋ณ์ = Serial.parseInt();
(์ฝ๋๋ ์ ์๊ถ์ ๊ณต์ ์๋ฉ๋๋น!!) ๐ฅ ๋์งํธ ์ ํธ : digitalWrite (๋ณด๋ด๊ธฐ), digitalRead (๋ฐ๊ธฐ) ๋ก ๋์งํธ ์ ํธ๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๋๋ค ๐ฅ ์๋ ๋ก๊ทธ ์ ํธ ์ฝ๊ธฐ ์ฝ์ด์จ ๊ฐ = analogRead(์ฐ๊ฒฐ๋ ํ); : 0~5V ์ฌ์ด์ ๊ฐ์ 1024 ๋จ๊ณ๋ก ๋๋์ด ์ ๋๋ฅผ ํํ ๐ฅ ์๋ ๋ก๊ทธ ์ ํธ ์ถ๋ ฅํ๊ธฐ analogWrite(ํ ๋ฒํธ, ์ถ๋ ฅ ์ ํธ); : ์ ๊ธฐ์ ์ ํ์ค (pulse) ์ ํธ, ์ ์์ ON/OFF ๊ฐ ์ผ์ ํ ์ฃผ๊ธฐ๋ก ๋ฐ๋ณต๋๋ ๊ฒ ๐ PWM (Pulse Width Modulation) : ๋์งํธ ์ ํธ์ ํญ (pulse width)์ ์กฐ์ ํจ์ผ๋ก์จ ์๋ ๋ก๊ทธ ์ ํธ๋ฅผ ํํํ๋ ๊ฒ : duty cycle์ ํ ์ฃผ๊ฐ (2ms) ์์ ์ง์๋๋ HIGH ๊ตฌ๊ฐ์ ๋น์จ ๐ฅ ADC (Analog to Dig..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท ๋ธ๋๋ ์กฐํํ๊ธฐ (GET) ๐ท ๋ชจ๋ ๋ธ๋๋ ์กฐํํ๊ธฐ (GET) ๐ท ์ฝ๋ โ controllers/brandCtrl.js const Brand = require("../models/Brand"); const asyncHandler = require("express-async-handler"); const { validateMongodbID } = require("../utils/validateMongodbID"); // ๋ธ๋๋ ์์ฑํ๊ธฐ const createBrand = asyncHandler(async (req, res) => { try { const newBrand =..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท ๋ธ๋๋ ์์ฑํ๊ธฐ (POST) ๐ท ๋ธ๋๋ ์์ ํ๊ธฐ (PUT) ๐ท ๋ธ๋๋ ์ญ์ ํ๊ธฐ (DELETE) ๐ท ์ฝ๋ โ controllers/brandCtrl.js const Brand = require("../models/Brand"); const asyncHandler = require("express-async-handler"); const { validateMongodbID } = require("../utils/validateMongodbID"); // ๋ธ๋๋ ์์ฑํ๊ธฐ const createBrand = asyncHandler(async (req, res) => { try ..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท prodCategory & blogCategory ํ์ผ๋ช ๋ฐ๊พธ๊ธฐ ๐ท ์ฝ๋ โ controllers/prodCategoryCtrl.js const prodCategorySchema = require("../models/ProdCategory"); const asyncHandler = require("express-async-handler"); const { validateMongodbID } = require("../utils/validateMongodbID"); // ์นดํ ๊ณ ๋ฆฌ ์์ฑํ๊ธฐ const createCategory = asyncHandler(async (req, ..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท ์นดํ ๊ณ ๋ฆฌ ์กฐํํ๊ธฐ (GET) ๐ท ๋ชจ๋ ์นดํ ๊ณ ๋ฆฌ ์กฐํํ๊ธฐ (GET) ๐ท ์ฝ๋ โ controllers/prodCategoryCtrl.js const prodCategorySchema = require("../models/ProdCategory"); const asyncHandler = require("express-async-handler"); const { validateMongodbID } = require("../utils/validateMongodbID"); // ์นดํ ๊ณ ๋ฆฌ ์์ฑํ๊ธฐ const createCategory = asyncHandler(async (req,..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท ์นดํ ๊ณ ๋ฆฌ ์์ฑํ๊ธฐ (POST) ๐ท ์นดํ ๊ณ ๋ฆฌ ์์ ํ๊ธฐ (PUT) ๐ท ์นดํ ๊ณ ๋ฆฌ ์ญ์ ํ๊ธฐ (DELETE) ๐ท ์ฝ๋ โ controllers/categoryCtrl.js const Category = require("../models/Category"); const asyncHandler = require("express-async-handler"); const { validateMongodbID } = require("../utils/validateMongodbID"); // ์นดํ ๊ณ ๋ฆฌ ์์ฑํ๊ธฐ const createCategory = asyncHandler(async (req..
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท ์ข์ํ๋ ๋ธ๋ก๊ทธ ํฌ์คํธ ํ๊ธฐ (PUT) ์ข์ํ๋ ๋ธ๋ก๊ทธ๊ฐ ์๋ค๋ฉด ํฌ์คํธํ ๋ธ๋ก๊ทธ๋ฅผ PUSH!!! ์ทจ์ํ๋ค๋ฉด PULL!!! $push ์ ํ์ : Field๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ์์๋ฅผ ๋ฐฐ์ด ๋์ ์ถ๊ฐ : pushํ๋ ์๊ฐ ๋ฐฐ์ด๋ก ๋ฐ๋ $pull ์ ํ์ : ์กฐ๊ฑด์ ์ ์ผ๋ฉด ๊ทธ ๋ถ๋ถ๋ง ์ญ์ : ํฌ์คํธ์ ๋๊ธ์ ์ฌ๋ฌ ๊ฐ ๋ฑ๋กํ๊ณ ๊ทธ ์ค ํ๋ ์ญ์ ํ๊ธฐ ๐ท ์ซ์ดํ๋ ๋ธ๋ก๊ทธ ํฌ์คํธ ํ๊ธฐ (PUT) ์ซ์ดํ๋ ๋ธ๋ก๊ทธ๊ฐ ์๋ค๋ฉด ํฌ์คํธํ ๋ธ๋ก๊ทธ๋ฅผ PUSH!!! ์ทจ์ํ๋ค๋ฉด PULL!!! ๐ท ์ฝ๋ โ controllers/blogCtrl.js const Blog = require("../models/B..