전체 글(257)
-
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 -
MongoDB (Mongoose) Transaction 사용 방법
MongoDB가 4.0, Mongoose는 5.0 버전 부터 트랙젝션이 지원이 되었다. 1. Mongoose 연결 시 필수 설정 import mongoose from 'mongoose'; mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useCreateIndex: false, useFindAndModify: false, useUnifiedTopology: true }); const session = mongoose.startSession(); 2. withTransaction 메소드 사용 whithTransaction 함수 안에서 작동 해야하는 쿼리를 넣어 준다. const session = mongoose.start..
2023.02.26 -
3. Nest.js 광부왕 게임 서버 로그 저장 [로그 데이터]
- Log DB DB : MongoDB 사용 이유 : 대용량의 데이터를 저장 하기 유리한 NoSql 방식의 MongoDB 사용 1. 라이브러리 설치 @nestjs/mongoose mongoose 설치 npm install --save @nestjs/mongoose mongoose 2. model 파일 생성 model 폴더 안에 model 파일 생성 logs.model.ts * 로그 저장 설정 : 로그 저장 기간은 3개월이 되면 자동으로 제거되도록 설정 한다. import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Document } from 'mongoose'; const options = { timestamps: true, co..
2023.02.19