[typescript] 타입스크립트로 Nest.js 웹 소켓 사용하기
Nest.js는 Node.js 프레임워크로, 타입스크립트와 함께 사용될 때 특히 강력한 기능을 발휘합니다. 이번에는 Nest.js 프레임워크와 타입스크립트를 사용하여 웹 소켓을 구현하는 방법에 대해 알아보겠습니다.
1. Nest.js 프로젝트 생성
먼저, Nest.js 프로젝트를 생성합니다. 이를 위해 명령줄에서 다음과 같이 입력합니다.
$ npm install -g @nestjs/cli
$ nest new websocket-app
위 명령을 통해 websocket-app
이라는 새로운 Nest.js 프로젝트가 생성됩니다.
2. 웹 소켓 모듈 설치
Nest.js에서 웹 소켓을 사용하기 위해서는 @nestjs/websockets
패키지를 설치해야 합니다.
$ npm install @nestjs/websockets ws
3. 웹 소켓 모듈 설정
웹 소켓 모듈을 설정하기 위해 WebSocketGateway
데코레이터를 사용합니다.
import { WebSocketGateway, WebSocketServer } from '@nestjs/websockets';
import { Server } from 'ws';
@WebSocketGateway()
export class AppGateway {
@WebSocketServer() server: Server;
}
위 코드는 AppGateway
라는 웹 소켓 게이트웨이를 생성하고, WebSocket 서버의 인스턴스를 가져오는 예시입니다.
4. 이벤트 핸들링
이제 웹 소켓 서버에서 발생하는 이벤트를 처리할 수 있습니다. 예를 들어, 새로운 클라이언트가 연결될 때 이를 감지하고 처리하는 방법은 아래와 같습니다.
import { OnGatewayConnection, WebSocketGateway, WebSocketServer } from '@nestjs/websockets';
import { Server } from 'ws';
@WebSocketGateway()
export class AppGateway implements OnGatewayConnection {
@WebSocketServer() server: Server;
handleConnection(client: WebSocket, ...args: any[]) {
console.log('New client connected');
}
}
위 코드에서 OnGatewayConnection
을 구현하는 방식으로 새로운 클라이언트 연결 이벤트를 핸들링할 수 있습니다.
이제 Nest.js와 타입스크립트로 간단한 웹 소켓 서버를 만드는 방법에 대해 알아봤습니다. Nest.js의 강력한 모듈 구조와 타입스크립트의 강력한 타입 시스템을 통해 안정적이고 확장 가능한 웹 소켓 서버를 구현할 수 있습니다.
더 많은 내용을 학습하고 싶다면, Nest.js 공식 문서를 참고하세요.