본문 바로가기

Node.js

(8)
JWT토큰 1. 종류Access Token: 실제로 API 접근 권한을 부여하는 토큰. 리소스에 접근할 때 사용Refresh Token: Access Token이 만료됐을 때 새로운 Access Token을 발급받기 위한 토큰 유효기간2. 유효기간Access Token: 짧게 설정 (보통 15분~2시간)Refresh Token: 길게 설정 (보통 7일~30일)3. 저장 위치Access Token: 클라이언트만 저장 (localStorage나 메모리)Refresh Token: 클라이언트와 서버 DB 둘 다 저장  굳이 토큰을 두개로 나누는 이유.보안 강화: Access Token이 탈취되어도 짧은 유효기간 때문에 피해 최소화사용자 경험: Refresh Token으로 자동 재발급하여 잦은 로그인 방지토큰 관리: Ref..
async/await 1. async/await 사용async function getUserData() {    const userData = await fetch('url');    console.log(userData); // 서버에서 받아온 실제 데이터}2. async/await 미사용function getUserData() {    const userData = fetch('url');    console.log(userData); // Promise {  }}두 번째 코드에서는:1. fetch가 데이터를 받아오는 것을 기다리지 않고2. Promise 객체를 바로 userData에 할당하고3. 그 Promise를 바로 출력합니다실생활로 비유하면:- async/await 사용: "피자 배달이 도착할 때까지 기다렸다가 피..
morgan, cookie-parser, express-session morgan 라이브러리를 이용해 로그를 관리할 수 있다.npm i morgan 으로 설치하고const morgan = require('morgan') 으로 불러온다 const app = express();위처럼 express를 사용하고 있을 때,app.use(morgan('dev')); # 요청정보, 소요시간 등app.use(morgan('combined')); # ip정보, 시간, 브라우저정보 등 'dev'보다 자세한 정보와 같이 사용할 수 있다.   cookie-parse를 이용하여 쿠키정보를 편리하게 설정할 수 있다.npm i cookie-parserconst cookieParser = require('cookie-parser');라우터 안에app.use(cookieParser(process.env..
미들웨어 const express = require('express')const app = express()app.set('port', process.env.PORT || 3000)app.use((req, res, next) =>{ console.log('모든 요청에서 실행됨') next()})app.post('/', (req, res) =>{ res.send('hello express')})app.get('/about', (req, res) =>{ res.send('hello express')})app.listen(3000, ()=>{ console.log('running')})위 코드에서 app.use 뒤에 나오는 함수가 미들웨어다. 미들웨어를 use에 담은 것.(이부분이 미들웨어)..
쿠키와 세션 http 서버에서는 클라이언트가 서버에게 request정보를 보내면, 서버는 클라이언트에게 response를 보내고 접속을 끊는 특성이 있다.접속을 끊게되면 클라이언트의 정보는 저장되지 않고 버려지기 때문에 이를 유지시켜주는 쿠키와 세션이 필요하다. 1. 클라이언트 -> 서버 : request2. 서버 -> 클라이언트 : response, cookie3. 클라이언트 -> 서버 : request, cookie4. 서버 -> 클라이언트 : response(3, 4 반복) 쿠키는 키와 값의 쌍으로 이루어져있고, 요청의 헤더에 저장된다.ex) name=seein cookie의 정보는 노출되고 수정될 위험이 있기 때문에 사용하는것이 session이다.중요한 정보는 서버에서 관리하고 클라이언트에게는 키만 제공한다...
화살표 함수 일반 함수function add1(x, y){ return x+y} 화살표함수const add2 = (x, y) =>{ return x+y}const add3 = (x, y) => (x+y)위 세 함수는 모두 같은 함수이다. 하지만 화살표 함수가 기존 function() { ...} 을 대체하는건 아니다. (this가 달라짐)
express 사용하기 http모듈로 웹 서버를 만들때 코드가 보기 불편하고, 확장성도 떨어지기 때문에 express프레임워크를 사용하여 해결.(다른 프레임워크들도 많음)  작업중인 폴더에서 npm init 명령어 실행 후 npm i express. const express = require('express')const app = express()app.get('/', (req, res) =>{ res.send('hello express')})app.listen(3000, ()=>{ console.log('running')})위 코드를 npm app.js (또는 npm app)으로 실행시킨다.  * npm i -D nodemon으로 nodemon을 설치한 후, npm app 대신 nodemon app으로 실행시키면 ..
npm 시작하기 npm(Node Package Manager)이란 노드 패키지 매니저로, 다른 사람들이 만든 코드들을 모아둔 저장소이다.남의 코드를 이용할 수 있다.(이미 있는 기능을 다시 구현할 필요가 없음)  npm init 명령어로 package.json파일을 만든다.{  "name": "learn-npm",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1" # npm run test 를 입력하면 Error를 발생시키며 종료.   },  "author": "seein2",  "license": "MIT",} npm i (패키지 이..