[Nest] WebSocket 서버 구성하기(feat. Socket.io)
2022. 12. 12. 19:58
라이브러리 & 프레임워크/NestJS
WebSocket이란? WebSocket(ws) 이란 http 프로토콜과 같이 프로토콜의 일종이며, 클라이언트와 서버(브라우저와 서버)를 연결하고 언제든 양방향(주고 받는) 통신 또는 데이터 전송이 가능하도록 하는 기술입니다. 이번 게시글에서는 WebSocket 프로토콜을 기반으로 구축된 Socket.io 라이브러리를 이용하여 WebSocket 서버를 구성 후 연결 테스트를 해보겠습니다. 역시나 NestJS 의 공식문서에 설명이 잘 되어 있어 이를 참고했습니다. https://docs.nestjs.com/websockets/gateways#gateways Documentation | NestJS - A progressive Node.js framework Nest is a framework for bui..
Exception filter
2022. 11. 28. 17:44
라이브러리 & 프레임워크/NestJS
예외 필터(Exception filter) Nest 에서 제공하는 전역 예외 필터 이외에 직접 예외 필터 레이어를 두어 원하는 대로 예외를 핸들링할 수 있습니다. 예외 필터(Exception filter)는 예외가 일어났을 때 에러 로그를 남기거나 응답 객체를 원하는 대로 변경하고자 하는 등의 요구사항을 해결하고자 할 때 사용합니다. 예외가 발생했을 때 모든 예외(Error)를 잡아서 원하는 대로 핸들링할 수 있는 예외 필터를 만들어보고자 합니다. import { ArgumentsHost, Catch, ExceptionFilter, HttpException, InternalServerErrorException } from '@nestjs/common'; import { Request, Response }..
Validation
2022. 11. 28. 16:43
라이브러리 & 프레임워크/NestJS
Validation 들어오는 요청에 대해 자동으로 유효성을 검증하기 위해, Nest 는 아래와 같은 몇 가지 파이프를 제공하고 있습니다. - ValidationPipe - ParseIntPipe - ParseBoolPipe - ParseArrayPipe - ParseUUIDPipe ValidationPipe 는 class-validator 패키지와 이 패키지가 제공하는 선언적 유효성 검증 데코레이터를 사용합니다. ValidationPipe 는 모든 클라이언트 페이로드에 대한 유효성 검증 규칙 적용을 강제할 수 있는 편리한 접근 방식을 제공합니다. 내장 ValidationPipe 사용 요구되는 의존성 설치 $ npm i --save class-validator class-transformer 자동 유효성 ..
Mapped Types
2022. 11. 28. 15:49
라이브러리 & 프레임워크/NestJS
Mapped Type CRUD(Create, Read, Update, Delete)와 같은 기능을 구축할 때 기본 항목 유형을 변형하여 사용하면 편리합니다. Nest 는 이 작업을 보다 편리하게 만들기 위해 유형 변환을 수행하는 몇 가지 유틸리티 함수들을 제공합니다. PartialType POST, UPDATE 요청 처리 시 데이터 삽입에 대한 DTO, 데이터 수정에 대한 DTO를 만듭니다. 일반적으로 데이터 수정 DTO는 삽입 시의 DTO에 종속됩니다. 수정 시의 DTO에 들어가는 개체가 삽입 시의 DTO에 들어 있는 개체에 포함된다는 것입니다. 이런 상황에서 사용할 수 있는 것이 PartialType입니다. PartialType() 함수는 입력 유형의 모든 속성이 선택 사항으로 설정된 유형(클래스)을..
[NestJS] 커스텀 데코레이터 만들기
2022. 11. 21. 22:50
라이브러리 & 프레임워크/NestJS
데코레이터란? 데코레이터는 대다수의 프로그래밍 언어에 사용되는 잘 알려진 개념이지만 JavaScript 세계에서는 도입된지 얼마되지 않은 개념이라고 합니다. 데코레이터에 대해 공식 문서에서는 이렇게 정의하고 있습니다. An ES2016 decorator is an expression which returns a function and can take a target, name and property descriptor as arguments. You apply it by prefixing the decorator with an @ character and placing this at the very top of what you are trying to decorate. Decorators can be d..