본문 바로가기
[Fastify] Fastify - Node.js 웹 프레임워크 Fastify 개요 Node.js 기반 웹 프레임워크로 스스로도 낮은 오버헤드를 통한 빠른 웹 프레임워크라고 소개하고 있습니다. 특징 초당 최대 30,000개의 요청을 처리할 수 있는 프레임워크 TypeScript 지원 및 유지를 지속적으로 노력중 2024년 2월 7일 기준으로 주간 다운로드 횟수가 140만회로, 2400만 회를 기록중인 express에 비해 현저히 적다. 커뮤니티가 적다고 생각 할 수 있음. Fastify vs Express 두 프레임 워크 모두 오픈소스이며, Nest가 기본적으로 Express 기반으로 작동하지만 fastify로 작동시킬 수 있다. Fastify 장점 : - 빠르다, 가볍다 - 오고 나가는 데이터의 유효성 검사 및 직렬화를 기본적으로 지원. 데이터 검증을 위해 JSON.. 2024. 2. 7.
[Nodejs] 쿠키와 세션 인증 그리고 JWT 1. http의 특징 비연결성 : 클라이언트에 대한 서버의 응답 이후 연결을 끊는것 성질 무상태성 : 클라이언트의 상태를 저장하지 않는 성질 http 특징에 따라 서버는 매 요청마다 클라이언트를 식별할 수 가 없는것. 요청1) 클라이언트 --로그인 요청--> 서버 / OK 로그인해 요청2) 클라이언트 --마이페이지 보여줘--> 서버 / 너가 누군데 그래서, 클라이언트의 상태를 기억해야할 필요성이 생긴 것임. (예를 들어 로그인 유지) 클라이언트와 서버에서 어떤 방식으로 데이터를 유지하고 상태관리를 할 수 있는지에 대해서 쿠키/세션/JWT 에 대해 학습하고 정리하기. 2. 쿠키 특징 - 클라이언트에 저장되는 데이터 조각(텍스트 파일) - 키-밸류 쌍으로 웹 서버에서 생성, 클라이언트 브라우저에 저장 - .. 2023. 10. 21.
[Nodejs] Express JWT 토큰 발급/검증 - jsonwebtoken 패키지 설치 - 발급 sign() 메서드 와 검증 verify() 메서드 를 이용해서 서버클라 간 토큰 발급 및 검증 1. 패키지 설치 npm i cookie-parser jsonwebtoken 2. 서버) 로그인 요청에 대해서 토큰 생성 (유저확인->토큰생성->응답) // 로그인 처리 (토큰 생성) const signIn = async (req, res) => { // 로그인 시도하는 유저 정보 const { userId, userPw } = req.body; // .. ID/PW 확인 로직 // 생략 // 회원일때 if (isMember) { // JWT 발급 // sign({토큰의 내용}, 토큰의 비밀 키, {토큰의 설정}) , issuer 는 발급자임. const tok.. 2023. 10. 19.
[nodejs] Express-session 1. Express-session ✔︎ 세션 관리용 미들웨어 패키지 ✔︎ 설치 npm install express-session ✔︎ Documents https://www.npmjs.com/package/express-session express-session Simple session middleware for Express. Latest version: 1.17.3, last published: a year ago. Start using express-session in your project by running `npm i express-session`. There are 4754 other projects in the npm registry using express-session. www.npm.. 2023. 10. 16.
[Nodejs] Express에서 redis를 session storage로 사용 Express에서 redis를 session storage로 사용 해서 로그인 / 로그아웃 구현해보기 - 기존에 세션을 메모리에 저장해서 로그인/로그아웃 하던 시스템을 세션을 레디스에 저장하도록 변경! 1. 로컬에 Redis 설치 및 실행 1-1. Redis Stack 설치 >> stack은 레디스 서버 및 여러가지를 한번에 스택으로 제공한다는 것 >> 레디스 서버는 7버전 임 >> 저는 macOS에서 설치 후 진행 https://redis.io/docs/getting-started/install-stack/mac-os/ Install Redis Stack on macOS How to install Redis Stack on macOS redis.io 1-2. Redis 서버 실행 실행 명령어 : red.. 2023. 10. 15.
[Nodejs] 싱글 스레드 노드.js는 주로 싱글 프로세스(single process) 아키텍처를 사용. 하나의 메인 프로세스가 이벤트 루프를 통해 모든 작업을 처리하는 모델. 프로세스와 스레드 프로세스. - 컴퓨터에서 실행 중인 프로그램 - 각각의 프로세스는 독립된 메모리 공간을 할당 받고, 명령어들과 데이터를 가짐 스레드. - 프로세스는 독립점인 메모리 공간을 차지하는 특징이 있다. 이러한 특징으로 인해 프로세스간의 데이터 공유가 까다롭다. - 그래서 차라리 한 프로세스 안에서 여러개의 작업을 동시에 실행하고자 해서 나온게 스레드 입니다. 이때 여러개의 작업 중 하나 하나를 맡아주는게 스레드 입니다. 싱글 스레드? 노드.js는 주로 하나의 메인 스레드를 사용하며, 백그라운드에서는 스레드 풀을 통해 다수의 스레드를 사용하여 I/.. 2023. 10. 4.