๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

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.