๋ชฉ๋ก์ ์ฒด ๊ธ (1005)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
๐ฉ๐ป HTTP (Hyper Text Transfer Protocol) : ์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ : ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ โญ ๊ตฌ์กฐ - Start Line : ์์ฒญ๋ผ์ธ/์ํ๋ผ์ธ - Header : ํค๋ ์๋ต ๊ฐ๋ฅ : ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์ฒญ ๋๋ ์๋ต์ผ๋ก ๋ถ๊ฐ์ ์ธ ์ ๋ณด ์ ์กํ ์ ์๊ฒ ํจ : ํค๋ ์์ฑ์ ์ด๋ฆ-๊ฐ์ผ๋ก ์ค์ , :๋ก ๊ตฌ๋ถ - Empty Line : ๊ณต๋ฐฑ ๋ผ์ธ - Message Body : ๋ฉ์์ง ๋ณธ๋ฌธ โญ HTTP ๋ฉ์๋ - CRUD : ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ ๐ฉ๐ป ์ํ์ฝ๋ (Status Code) : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์ํ์ ๋ํ ์๋ฒ์ ์๋ต - 1xx : ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ํ๋ก์ธ์ค ๊ณ์ ์งํ - 2xx : ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์์ผ๋ฉฐ ์ธ์ํ๊ณ ์์ฉ - 3xx : ์์ฒญ..
๐ฉ๐ป TCP/IP : ๋ฐ์ดํฐ๊ฐ ์ ํํ ๋ชฉ์ ์ง์ ๋๋ฌํ ์ ์๋๋ก ํด์ฃผ๋ ํต์ ๊ท์ฝ : ๋๋ฐ์ด์ค๋ฅผ ์ฐ๊ฒฐํ๋ ํ๋กํ ์ฝ์ ์งํฉ : ๋ฐ์ดํฐ ํจํท์ ์ปดํ์ผ, ์ฌ๋ฐ๋ฅธ ์์น๋ก ์ ์ก, ๋ค๋ฅธ ์ปดํจํฐ์ ํต์ ๊ฐ๋ฅ โญ TCP (Transmission Control Protocol) : ๋ฐ์ดํฐ ์ ์ก์ ์ํ ์ฐ๊ฒฐ์งํฅ ํ๋กํ ์ฝ - ์ ๋ขฐ์ฑ : ์ ๊ทน์ ์์ , ํต์ ์ฌ์ ์ก ์ฒด๊ณ ์ฌ์ฉ - ํ๋ฆ์ ์ด : ์ก์ ์๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ์ ์์ ์ ์ดํ๋ ๋ฉ์ปค๋์ฆ ๊ตฌํ - ๋ค์คํ : ์๊ฒฉ ์ปดํจํฐ์ ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค ์ฌ์ด์ ์ฌ๋ฌ ์ฐ๊ฒฐ ์กด์ฌ โญ IP (Internet Protocol) : ์ธํฐ๋ท ๋๋ ๋ก์ปฌ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ ํ์์ ๊ด๋ฆฌํ๋ ๊ท์น ์งํฉ โญ 1๊ณ์ธต ๋คํธ์ํฌ ์ก์ธ์ค ๊ณ์ธต(Network Access Layer or Networ..
๐ฉ๐ป IP ์ฃผ์ : ๋คํธ์ํฌ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ๋ด ์ปดํจํฐ์ ์ฃผ์ : ๋คํธ์ํฌ ID + ํธ์คํธ ID โญ MAC ์ฃผ์ : ๋คํธ์ํฌ ํ๊ฒฝ ๋ด์์ ์ฌ์ฉํ๋ ๋ฌผ๋ฆฌ์ ์ธ ์ปดํจํฐ ์ฃผ์ โญ IP ์๋ธ๋ท ๋ง์คํฌ : ๋ก์ปฌ ๋คํธ์ํฌ ๋ด๋ถ์์ ์ ์ํ ํธ์คํธ์ IP ๋์ญ์ ์ธ๋ถ ๋คํธ์ํฌ์ ๋ช ํํ๊ฒ ๊ตฌ๋ถํ ์ ์๋ ์๋จ : ์๋ธ๋ท (ํ๋์ ๋คํธ์ํฌ๊ฐ ๋ถํ ๋์ด ๋๋ ์ง ์์ ๋คํธ์ํฌ) โญ IPv4 : 32๋นํธ์ ์ ๋ณด ๊ฐ์ง๋ฏ๋ก ์ต๋ 2^32๊ฐ, ์ฝ 43์ต๊ฐ์ ๊ณ ์ ์ฃผ์ ๋ถ์ฌ ๊ฐ๋ฅ โญ IPv6 : 128 ๋นํธ์ ์ ๋ณด ๊ฐ์ง๋ฏ๋ก, 4์๋ฆฌ์ 16์ง์ ์ซ์ 8๊ฐ ํ๊ธฐ, ๊ฐ๊ฐ ์์ ์ผ๋ก ๊ตฌ๋ถ โญ ์ฌ์ค ๋คํธ์ํฌ : ์ฌ์ค IP ์ฌ์ฉ : ์ ํ๋ ์ฌ์ฉ์ (ํ์ฌ, ์ง) โญ NAT (Network Address Translation) ์์คํ ๋์ ๋ฐฐ๊ฒฝ : ..
๐ฉ๐ป ๋คํธ์ํฌ (Network) : ๋ ๋ ์ด์์ ์ปดํจํฐ๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ ธ๋๋ค์ด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์๋๋ก ํ๋ ํต์ ๋ง - ์ด๋๋ท ์ผ์ด๋ธ : ์ ์ ์ ์ก ๋งค์ฒด - ๋ผ๋์คํ : ๊ธฐ์ง๊ตญ์ ์ค์ฌ์ผ๋ก ์ฌ์ฉ์ ๋ฐ์ง๋๊ฐ ๋์ ๊ณณ์์ ์ฃผ๋ก ์ฌ์ฉ, ๋ฐ์ดํฐ ์ก์์ ํ ๋ ์ ๋ฐฉํฅ ์ ํ์ ๋ฒฝ ํต๊ณผ ๊ฐ๋ฅ - ๋ง์ดํฌ๋กํ : ์ ์ ์ ์ก ๋งค์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ํ๋ ์ฌ๋ง, ๊ฐ ๋ฑ์ ์ฅ์ ๋ฌผ์ ๊ฐ๋ก์ง๋ฌ ํต์ ์ ์ ํฉ, ๊ฐ์ ํ์(์์คํ ์ง๋ ์๋์ง, ๋ง์ฐฐ ๊ฐ์ ์์ธ์ ์ํด ์์ค๋์ด ์ง๋์ด ๊ฐ์) ๊ฐ๋ฅ์ฑ ํถ - ๊ด์ฌ์ ์ผ์ด๋ธ : ์ฅ๊ฑฐ๋ฆฌ ๋ฐ ๊ณ ์ ํต์ ๊ฐ๋ฅ, ํด์ ์ผ์ด๋ธ๋ก ์ด์ฉ ๐ฉ๐ป ๋คํธ์ํฌ ํ ํด๋ก์ง : ์ปดํจํฐ ๋คํธ์ํฌ์ ์์๋ค(๋งํฌ, ๋ ธ๋ ๋ฑ)์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐํ ๊ตฌ์กฐ ๋ฐ ์ฐ๊ฒฐ ๋ฐฉ์ โญ ์คํํ : ๊ฐ ๋ ธ๋๋ค์ด ์ฐ๊ฒฐ๋ ์ค์ ์ง์ค์ ํํ : ๊ณ ์์ ..
=> Node.js With Passport Authentication | Full Project => authentication app with login, register and access control using Node.js, Express, Passport, Mongoose ๐ฅ DB์ ์ ์ฅํ User Schema & ํ์๊ฐ์ ์ ๊ท์น ์์งํค๋ฉด message ๋์ฐ๊ธฐ ๐ง models/User.js User schema ์์ฑ const mongoose = require("mongoose"); const UserSchema = new mongoose.Schema({ name: { type: String, required: true }, email: { type: String, required: tru..
๐ฉ๐ป ์๋ธ์ฟผ๋ฆฌ : ํ๋์ ์ฟผ๋ฆฌ ์์ ํฌํจ๋ ๋ ํ๋์ ์ฟผ๋ฆฌ : ๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ๋ ์ข ์์ ์ธ ๊ด๊ณ SELECT * FROM ํ ์ด๋ธ WHERE ์ปฌ๋ผ > (SELECT ์ปฌ๋ผ FROM ํ ์ด๋ธ WHERE ์กฐ๊ฑด); โญ ํน์ง - ์๋ ค์ง์ง ์์ ๊ธฐ์ค์ ์ด์ฉํ ๊ฒ์ ์ ์ฉ - ๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ธฐ ์ ํ๋ฒ ์คํ - ํ ๋ฌธ์ฅ์์ ์ฌ๋ฌ๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ โญ ์ฃผ์์ฌํญ - ๊ดํธํ ํจ๊ป ์ฌ์ฉ - ORDER BY ์ฌ์ฉ X - ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฌ์ฉ - ์ค๋ก์ง SELECT๋ฌธ์ผ๋ก๋ง ์์ฑ ๐ฉ๐ป ๋จ์ผ ํ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๊ฐ ํ ํ๋ง ๋์ค๋ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๋ฅผ 1๊ฐ ๊ฐ๋ง ๋ฐํํ๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๋ฌ ๐ฉ๐ป ๋ค์ค ํ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๋ฅผ 2๊ฐ ์ด์ ๊ฐ๋ง ๋ฐํํ๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๋ฌ SELECT * FROM ํ ์ด๋ธ ..
=> Node.js With Passport Authentication | Full Project => authentication app with login, register and access control using Node.js, Express, Passport, Mongoose ๐ฅ ํ์๊ฐ์ DB ๋ฃ๊ธฐ ๐ง app.js const express = require("express"); const expressLayouts = require("express-ejs-layouts"); const mongoose = require("mongoose"); require("dotenv").config(); const app = express(); // DB config const db = process.env...
=> Node.js With Passport Authentication | Full Project => authentication app with login, register and access control using Node.js, Express, Passport, Mongoose ๐ฅ Dashboard ํ์ด์ง ๐ง views/dashboard.ejs Dashboard Welcome Logout ๐ฅ MongoDB ์ฐ๊ฒฐํ๊ธฐ ๐ง app.js const express = require("express"); const expressLayouts = require("express-ejs-layouts"); const mongoose = require("mongoose"); require("dotenv").conf..