일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- insomnia
- JavaScript
- map
- ucpc 2024 예선 e번
- 자바스크립트
- Express.js
- ucpc 2023 예선 d번
- Prisma
- 백준 28298번
- branch
- ccw 알고리즘
- 더 흔한 색칠 타일 문제
- localstorage
- Next
- 백준 2623번
- Github
- MongoDB
- string
- pm2
- html5
- 그리디
- 게임 서버 아키텍처
- 백준 28303번
- HTTP
- koi 2002 중등부 1번
- router
- PROJECT
- MySQL
- ucpc 2023 예선 i번
- ERD
- Today
- Total
목록내일배움캠프/Node.js[숙련] (8)
dh_0e
Prisma Transaction여러 개의 쿼리를 하나의 트랜잭션으로 수행할 수 있는 Sequential 트랜잭션,Prisma가 자체적으로 트랜잭션의 성공과 실패를 관리하는 Interactive 트랜잭션이 존재함 Sequential 트랜잭션Prisma의 여러 쿼리를 배열([ ])로 전달받아, 각 쿼리들을 순서대로 실행하는 특징이 있어 여러 작업이 순차적으로 실행되어야 할 때 사용 가능import { PrismaClient } from '@prisma/client';const prisma = new PrismaClient();// Sequential 트랜잭션은 순차적으로 실행됩니다.// 결과값은 각 쿼리의 순서대로 배열에 담겨 반환됩니다.const [posts, comments] = await prisma..
로그 미들웨어(Log Middleware)클라이언트의 모든 요청 사항을 기록하여 서버의 상태를 모니터링하기 위한 미들에어어플리케이션을 모니터링하고 문제가 발생할 때 빠르게 진단할 수 있음로그 데이터는 사용자의 행동을 분석하는 등 데이터 분석 작업에도 활용 가능함모든 로그를 일일이 확인하는 것은 불가능하며 morgan, winston 등의 라이브러리나 DATADOG, Grafana, AWS CloudWatch 등을 사용하여 로그를 수집하거나 관리할 수 있음 winston 사용 방법라이브러리 설치yarn add winston winston 라이브러리의 format 메소드를 사용하여 로그 포맷winston 라이브러리의 transports 메소드를 사용하여 로그 콘솔에 출력// src/middlewares/lo..
Access Token사용자의 인증이 완료된 후 해당 사용자를 인증하는 용도로 발급하는 토큰(쿠키에 jwt를 설정하고 만료 시간이 지나면 인증이 만료되는 구조 또한 Access Token)토큰을 생성할 때 사용한 비밀키로 인증을 처리Stateless(무상태) 즉, Node.js 서버가 재시작되더라도 동일하게 작동함이는 jwt를 이용해 사용자의 인증 여부는 확인할 수 있지만, 처음 토큰을 발급한 사용자인지 확인할 수는 없음그 자체로 사용자 인증에 필요한 모든 정보를 가지고 있음토큰을 가지고 있는 시간이 늘어날 수록, 탈취되었을 때 피해 규모가 더욱 커짐 Refresh Token사용자의 모든 인증 정보를 담고있는 Access Token과 달리 특정 사용자가 Access Token을 발급받기 위한 목적으로만..
인증(Authentication)인증은 서비스를 이용하려는 사용자가 인증된 신분을 가진 사람이 맞는지 검증하는 작업을 뜻하며 일반적으로 신분증 검사 작업에 해당함 인가(Authorization)인가는 이미 인증된 사용자가 특정 리소스에 접근하거나 특정 작업을 수행할 수 있는 권한이 있는지를 검증하는 작업을 뜻하며 놀이공원에서 자유 이용권을 소지하고 있는지 확인하는 단계로 볼 수 있음사용자 인증 미들웨어를 통해서 구현함 bcrypt 모듈입력받은 데이터를 특정 암호화 알고리즘을 이용하여 암호화 및 검증을 도와주는 모듈비밀번호를 bctypt를 이용해 암호화하게 된다면 특정한 문자열로 변환됨이 변환된 문자열은 단방향 암호화되어 원래의 비밀번호로 복수할 수 없게됨 bcrypt 암호화import bcrypt fro..
JWT(Json Web Token)서버와 클라이언트 사이에서 정보를 안전하게 전송하기 위해 도움을 주는 웹 토큰Json 형태의 데이터를 안전하게 전송하고 검증할 수 있음인터넷 표준으로서 자리잡은 규격다양한 암호화 알고리즘을 사용할 수 있어 신뢰성을 보장header, payload, signature의 형식으로 3가지의 데이터를 포함때문에 JWT 형식으로 변환된 데이터는 항상 2개의 점(.)이 포함된 데이터여야 함JWT의 구조크게 세 부분, 헤더(Header), 페이로드(Payload), 서명(Signature)로 구성되어 있으며 각각은 점(.)으로 분리됨Header: 헤더는 토큰의 타입과 어떤 암호화를 사용하여 생성된 데이터인지 정의되어 있음{ "alg": "HS256", // HS256으로 암호화 ..