분류 전체보기(259)
-
9. Nest.js 광부왕 게임 서버 Decorator 생성
1. src/common/decorators/user.decorators.ts 파일 생성 Guard를 통해 jwt.payload.ts에서 만든 interface jwtPayload 타입에 맞춰 받은 유저 정보를 출력한다. import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const CurrentUser = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.user; }, );
2023.03.03 -
8. Nest.js 광부왕 게임 서버 JWT 설정
1. @types/passport-jwt, passport, passport-jwt, @nestjs/jwt, @nestjs/passport 설치 npm i -D @types/passport-jwt npm i passport, passport-jwt, @nestjs/jwt, @nestjs/passport 2. auth module 생성 nest g mo auth 생성 된 auth.module.ts 파일 작성 JWT인증을 Guard로 공통된 인증 처리를 해야하기 때문에 @Global()를 적용. JWT 만료 기간은 1일이다. import { Global, Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { JwtS..
2023.03.03 -
7. Nest.js 광부왕 게임 서버 Interceptor 적용
1. src/common/interceptors/success.interceptor.ts 파일 생성 success.interceptor.ts 파일을 만들어 준다. * 클라이언트에서는 API가 정상적으로 요청이 되었는지 result :true를 통해 확인 한다. import { Injectable, NestInterceptor, ExecutionContext, CallHandler, } from '@nestjs/common'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @Injectable() export class SuccessInterceptor implements NestInterceptor { intercept(..
2023.03.03 -
6. Nest.js 광부왕 게임 서버 Filter 적용
1. src/common/filters/error.exception.ts 파일 생성 error.exceptions.ts 파일을 만들어서 해당 코드를 넣어준다. 서버 처리 중 에러 발생 시 필터를 이용사용 하여 처리 한다. 1. 개발 중 에러 발생처리를 분기 처리 하여 개발 서버에서만 확인 하기 위해 console.log() 로 에러 값을 나타낸다. 2. 에러 메시지가 String, Object 두 타입으로 발생 하기 때문에 형태를 확인하고 분기 처리한다. import { ExceptionFilter, Catch, ArgumentsHost, HttpException, } from '@nestjs/common'; import { Response, Request } from 'express'; @Catch()..
2023.03.03 -
5. Nest.js 광부왕 게임 서버 Swagger 적용
1. swagger, express-basic-auth 설치 npm install --save @nestjs/swagger npm install --save express-basic-auth 2. main.ts swagger 적용 * product 서버에서는 관리자만 swagger 접근이 가능하도록 express-basic-auth를 사용하여 비밀번호 설정 import { ValidationPipe } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; import { SocketIoAdapter } from './adapters/adapters'; import { AppModule } from './app.module'; //추가 im..
2023.03.03 -
4. Nest.js 광부왕 게임 서버 Redis 설정 [캐시 데이터]
- 캐시 데이터 DB : Redis 사용 이유 : 입출력 속도가 빠르고 서버 스케일 아웃이 발생하면 동일한 캐시 데이터를 사용 할 수 없어 한 곳에서 관리하기 용이 1. 모듈, 서비스 생성 nest g mo redis nest g s redis redis.module.ts redis.service.ts 파일이 생성된다. 2. 사용 Redis 명령어 아래 명령어를 사용 할 예정이다. ZRANGE : 순위를 저장 한 key 들을 가져오는 명령어 * WITHSCORES 옵션을 넣으면 순위와 함께 점수가 같이 출력 된다. start : 순위 시작 값 ( 0부터 시작 )end : 마지막 순위 값 ( -1일 경우 전체 ) 사용범위 : 회사 주간 순위를 확인 ZSCORE : zrange에 저장된 순위 중 검색하는 k..
2023.03.02