CS/๋ณด์3 [CS] : ์ฟ ํค์ ์ธ์ ์ฟ ํค ๋๋ ์ธ์ ์ ์ฌ์ฉ ์ด์ HTTP ํ๋กํ ์ฝ ํ๊ฒฝ์ ํน์ฑ ๋ฐ ์ฝ์ ์ ๋ณด์ํ๊ธฐ ์ํด์ HTTP ํ๋กํ ์ฝ์ ํน์ฑ ๋ฐ ์ฝ์ connectionless stateless ์๋ฒ๋ ์ ์ํ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฌ์ธ์ง ๋งค๋ฒ ํ์ธ์ ํด์ผํ๋ค. Connectionless ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๊ฒ์ ๋ํ ์๋ต์ ๋ฐ๊ฒ๋๋ฉด, ๊ทธ ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฌ๋ ํน์ฑ HTTP์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ req๋ฅผ ๋ณด๋ด๊ณ ์๋ฒ๋ ์๋ง์ res๋ฅผ ์ ๊ณตํ๋ค๋ฉด res๋ฅผ ๋ณด๋ด๊ณ ์ ์์ ๋๋ ํน์ฑ์ด ์กด์ฌํ๋ค. Stateless ํต์ ์ด ๋๋๊ฒ๋๋ฉด ์ํ๋ฅผ ์ ์งํ์ง ์๋ ํน์ฑ connectionless์ ํน์ฑ์ผ๋ก ์ฐ๊ฒฐ์ด ๋๊ธฐ๊ฒ ๋๋ฉด ๊ทธ ์๊ฐ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ํต์ ์ ๋๋๊ฒ ๋๋ฉฐ, ๊ทธ ๋น์ ์ํ์ ๋ณด๋ ์ ์งํ์ง ์๋ ํน์ฑ์ด ๋ฐ๋ก stateless ์ด๋ค. ์ ๋๊ฐ์ง์ ํน.. 2023. 8. 28. [๋ณด์] : CORS ? CORS ? Cross-Origin Resource Sharing(๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ ) ์ ์์ฒ ์๋ฅผ ๋ฐ์ ๋ง๋ ์ฉ์ด์ด๋ฉฐ, ์น ๋ธ๋ผ์ฐ์ ์์ ํ์ฌ ์คํ์ค์ธ JS๊ฐ ์ด๋ ํ ์ถ์ฒ์์(origin) ๋ถ๋ฌ์จ ์น ํ์ด์ง๊ฐ ๋ค๋ฅธ ์ถ์ฒ์์ ๋ถ๋ฌ๋ค์ด๋ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ ๋ณด์ ์ ์ฑ ์ด๋ค. ๋ง์ฝ ์๋ฒ๊ฐ ํ๋ฝ์ ํ๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ์์๋ ์์ฒญ์ ํ๋ฝํ๊ณ ์๋ฒ์์ ๋์๋ฅผ ํ์ง ์๋๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ์์๋ ๊ฑฐ์ ์ ํ๋ค. ์ด๋ฌํ ํ๋ฝ/๊ฑฐ์ ์ ๊ตฌํ๋ ๋ฉ์ปค๋์ฆ์ด HTTP-Header ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ฅํ๊ฒ์ธ๋ฐ, ์ด๋ฅผ CORS ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ์์ Cross-Origin ์์ฒญ์ ์์ ํ๊ฒ ํ ์ ์๋๋ก ํ๋ ๋งค์ปค๋์ฆ์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค. Cross-Origin ? ๋ค์ ์ค ํ๊ฐ์ง๋ผ๋ ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋ค๋ฉด ๊ทธ๊ฒ์ Cros.. 2023. 8. 23. [๋ณด์] : .ENV ์ ์ฉํ๊ธฐ ํ๊ณ ์ถ์ ๊ฒ ๋ก๊ทธ์ธ๊ณผ์ ์์ ์์ฑ๋๋ JSONWEBTOKEN์ SECRET_KEY๋ฅผ "๋ณด์์ ์ง"๋ฅผ ์ํด ํ๊ฒฝ๋ณ์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ ํ๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํ const express = require('express'); const router = express.Router(); const jwt = require('jsonwebtoken'); require('dotenv').config(); // const { Users } = require('../models'); API ์ค์ router.post('/login', async (req, res) => {}) Request Data const { email, password } = req.body; ์์ธ์ฒ๋ฆฌ // ์ ์ ํ์ธ const user = await U.. 2023. 7. 20. ์ด์ 1 ๋ค์