본문 바로가기

NodeJS16

웹소켓 목차1. 웹소켓은?2. 헤더의 내용3. 사용하는 법1. 웹소켓은?클라이언트와 서버 간의 연결을 유지하여 실시간 통신을 가능하게 하는 프로토콜웹 개발에서 핫한 기능으로 기존 HTTP 특징을 잘 이용한 REST FUL과는 조금 다르게 소켓을 통해 지속적으로 연결을 통해 다수의 클라이언트와 실시간 통신 방식을 사용한다. 따라서 실시간으로 처리가 필요한 데이터 처리나 채팅같은 서비스에 이용된다.2. 헤더의 내용웹 소켓의 통신은 일반요청에 웹 소켓의 정보를 포함되어 서버에 전송된다. 서버는 헤더를 확인하여 웹소켓을 사용한 통신이 이루어질 수 있도록 한다.3. 사용하는 법1) 웹 소켓 서버 만들기 // 1. ws라이브러리 사용 const WebSocket = require('ws');const server = ne.. 2024. 6. 30.
Sequelize 목차1. 시퀄라이즈?2. 사용법 1. 시퀄라이저?자바스크립트를 사용하는 ORM시퀄라이즈는 데이터베이스의 테이블과 객체 지향 프로그램의 객체를 매핑시켜주는 ORM 중 하나다. 객체 지향 프로그램이 대새인 현재 NodeJS를 사용하여 서버를 만드는데 express와 더불어 백앤드 한 축을 차지하고 있다.  3. 사용법1 ) 시퀄라이즈 다운로드시퀄라이즈는 외부 라이브러리로 패키지 매니저를 통해 다운 받아야 사용할 수 있다.npm install sequelize 2 ) 시퀄라이즈 객체 생성하기 데이터베이스에 연결하기 위해서는 당연하게도 접속정보가 필요하고 그 정보를 시퀄라이즈 객체를 생성할 때 지정을 해주어야 한다.const sequelize = new Sequelize( .. 2024. 6. 29.
JWT로 권한 인증하기 목차1. JWT란?2. 토큰의 유형3. 어떻게 생겼을까?4. 토큰 생성5. 쿠키를 사용한다고?1. JWT란?Json Web Token권한 인증을 위해 유저의 정보를 SHA-256 해시알고리즘으로 암호화한 값으로 권한인증을 하는 토큰 기반 인증 방식기존의 권한인증은 세션 정보를 서버에 저장하여 사용자가 요청할 때 헤더에 포함된 세션을 비교하여 인증을 하는 방식이였다. 하지만 이는 세션 정보가 많아짐에 따라 서버에 부담을 줄 수 있다. 하지만 토큰은 서버가 아닌 클라이언트가 토큰을 가지고 있도록 하여 서버에 부담을 줄여줄 수 있다. 2. 토큰의 유형토큰은 사용 목적에 따라 2가지가 있다.Access Token▶ 서버에 통신할 때 권한 인증을 위해 사용되는 토큰으로 짧은 유효시간을 갖는다. 유효시간이 짧다고 .. 2024. 6. 23.
내 비밀번호 나도 모르게 만드는 법 bcrypt 목차1. bcrypto2. 해시로 암호 만들기3. 내 암호가 맞는지 확인하는 방법1. bcrypto복호화가 불가능한 단방향 해시 알고리즘예전에는 어떤 사이트에서 비밀번호를 잊어버려 찾을 때 인증을 거치고 저장된 비밀번호를 알려주었다. 하지만 언젠가부터 비밀번호를 찾는 것 대시 새로운 비밀번호로 변경하는 방식들이 사용되었다. 그 이유는 패스워드를 암호화하여 저장하기 때문에 서버도 알지 못하게 때문에 패스워드를 변경해야만 인증이 가능하기 때문이다.이러한 방식은 인증정보를 탈취하여 권한을 사칭하는 공격방법을 방지하기 위해 사용되었다.단방향 해시알고리즘을 통해 비밀번호를 암호화하게 되면 복호화가 불가능하기 때문에 탈취가 되더라도 공격자는 함부로 사용할 수 없다. 2. 해시로 암호 만들기그렇다면 암호화 알고리즘을.. 2024. 6. 22.