개발/Node(16)
-
# [node] 웹소켓을 사용한 실시간 채팅 구현
chapter 13 웹소켓을 사용한 실시간 채팅 구현웹소켓은 서버도 클라이언트의 요청없이 응답을 줄 수 있음.grk 플랫폼 내부 채팅기능은 어디에서 사용되어야 하는가?project? task? project 내부에서만 채팅이 이루어지도록 해볼까? 13.1 웹소켓 소개폴링 방식 : 주기적으로 요청을 보내서 응답을 받음롱폴링 방식 : 클라이언트와 서버간의 커넥션을 유지한 상태로 응답을 주고 받는 방식요청한 데이터에 변화가 있을떄 응답을 보냄.롱폴링은 요청을 보낸후 응답 대기 후 응답이 옴ㄴ 바로 다시 요청을 보냄. 웹소켓하나의 tcp 커넥션으로 서버와 클라이언트간에 양방향 통신을 할 수 있게 만든 프로토콜 대부분의 웹브라우저에서 안정적으로 사용. (IE9 오래된 웹브라우저는 지원불가)실시간 네트워킹 구현에 ..
2025.02.02 -
# [node] 11. OAuth 를 사용한 구글 로그인 인증
11. OAuth 를 사용한 구글 로그인 인증OAuth(open Authorization ) 개방형 인가 표준 OAuth 는 인증이 아니라 인가의 관점에서 보아야함. 소셜 로그인 후 팝업이 뜨면서 권한을 요청하는 화면 OAuth 1.0, 2.0, 2.1 중 2.0 을 가장 많이 사용 인증: 리소스에 접근 자격이 있는지 검증하는 과정 ,OAuth 에서 리소스는 보호된 정보를 의미함.인가 : 자원에 접근할 권한을 부여하는 과정. 인가가 완료되면 리소스의 접근 권한 정보가 있는 엑세스 토큰을 클라이언트에게 보내줌.엑세스 토큰 : 리소스 서버에서 리소스 소유자의 보호된 정보를 획득 할떄 사용하는 만료기간이 있는 토큰리프레시 토큰 : 엑세스 토큰이 만료되었을떄 갱신하는 용도로 사용하는 토큰. 액세스 토큰보다 만료..
2025.01.28 -
#[node] 패스포트와 세션을 사용한 인증 구현
10.6 패스포트와 세션을 사용한 인증 구현2025.1.27서버에서 인증을 하고 해당 정보를 서버의 특정공간에 저장.(세션 이용)쿠키는 세션을 찾는 정보만 저장(세션의 아이디값) 중요 정보는 세션에 모두 넣음. 세션은 서버의 자원을 사용하여 서버에 부하를 주지만 위조,변조,탈취가 불가능하여 보안적임. 가드하나로 로그인과 인증 모두 사용했지만 가드 두개와 인증 처리를 하기위한 파일을 여러개 만들것. 로그인에 사용할 가드. 인증 로직 구현 부분은 패스포트 라는 인증 로직을 쉽게 분리해서 개발하는 라이브러리 사용 패스포트 사용시 인증 로직은 스트래티지 파일을 생성해서 사용. 패스포트는 인증 로직 수행을 담당하는 클래스를 의미함. 다양한 인증을 위한 스트래티지 패키지를 같이 설치해 인증을 쉽게 구현가능. 가드 ..
2025.01.27 -
# [NestJS] 사용자 인증 모듈 생성 및 회원 가입하기 [2단계]
[NestJS] 사용자 인증 모듈 생성 및 회원 가입하기 [2단계]🌞 2025.1.23 인증 : 사용자의 자격을 확인사용자의 자격증명을 기존 정보를 기반으로 확인 후 인증 토큰을 발급함. 사용자에게 부여된 인증 토큰은 특정 기간 동안만 유효 쿠키기반, 토큰기반(쿠키리스) 인증법이 있음. 서버에서 보내준 쿠키를 클라이언트(주로브라우저) 에 저장해 관리함. 토큰은 서버에 상태를 저장할 필요가 없음. 쿠키와 토큰은 서로 장단점이 있음. 토큰은 OAuth 를 사용한 소셜 로긴에서 사용할 예정, 먼저 쿠키 인증을 구현 10.4.1 인증 모듈 만들기 및 설정(1) 인증 모듈 생성📌 auth module > service > controller 순 생성 nest g module auth --no-specnest..
2025.01.27 -
#[node] 환경변수 2탄
2025.01.22 9.8 YAML 파일을 사용해 환경 변수 설정9.8.1 js-yaml 설치npm i js-yamlnpm i -D @types/js-yaml# yamlhttp: port: 3000redis: host: 'localhost' port: 63799.8.3 config.ts 수정(1) yaml 파일 커스텀 설정 파일로 취급. conifg.ts 에 설정 추가import { readFileSync } from "fs";import * as yaml from 'js-yaml'// YAML file loadingconst yamlConfig: Record = yaml.load( readFileSync(`${process.cwd()}/src/envs/config.yaml`, 'utf-8..
2025.01.23 -
#[node] 회원 가입 로그인
chapter 10 부터 grk platform 으로 개발을 하도록 하자.향후 ch 9, 8 을 review 하면서 다시 grk 만들것. AuthModule, AuthController, AuthService 클래스로 구성 UserService 에는 회원정보 추가,수정,삭제 등의 method 있음. 10.1.2 User module 생성nest new grkcd grk nest g module usernest g controller user --no-spec nest g service user --no-specnpm install sqlite3 typeorm @nestjs/typeorm# nest g module projectnest g controller project --no-spec nest g ..
2025.01.23