NestJS 24

인증된 WebSocket 연결 (심화)

HTTP 기반의 REST API와 달리, WebSocket은 초기 핸드셰이크(Handshake) 시에만 인증 정보를 확인하며, 이후에는 이 연결 상태를 지속적으로 유지해야 합니다. NestJS에서는 Guard와 Pipe를 사용하여 HTTP와 유사하게 인증을 처리할 수 있습니다.1. 클라이언트 측에서 토큰 전달클라이언트는 연결을 시도할 때 JWT 토큰을 Socket.io의 auth 옵션을 통해 서버로 전달합니다.// 클라이언트 (예: Vue, React, Plain JS)const token = 'YOUR_VALID_JWT_TOKEN';const socket = io('http://localhost:8080/chat', { auth: { token: token, // 서버의 Gateway로 전달됨 ..

실시간 채팅 예제와 인증된 WebSocket 연결

💬 1. 실시간 채팅 예제 구현 (Full Code)앞서 설정한 ChatGateway 클래스를 확장하여 기본적인 실시간 채팅 기능을 완성해 보겠습니다. 이 예제에서는 클라이언트가 메시지를 전송하면, 서버가 이를 수신하여 발신자를 제외한 모든 연결된 클라이언트에게 메시지를 브로드캐스팅합니다.// src/chat/chat.gateway.tsimport { WebSocketGateway, SubscribeMessage, MessageBody, ConnectedSocket, WsResponse, OnGatewayConnection, OnGatewayDisconnect,} from '@nestjs/websockets';import { Server, Socket } from 'socket.io';im..

NestJS WebSocket Gateway 기본 설정

NestJS에서 실시간 시스템을 구축하는 핵심은 @WebSocketGateway() 데코레이터가 적용된 Gateway 클래스입니다. 이 클래스는 WebSocket 서버의 동작을 정의하고, 클라이언트의 연결 및 메시지 이벤트를 처리합니다.1. Gateway 클래스 기본 설정NestJS CLI를 사용해 게이트웨이를 생성하거나 직접 파일을 만듭니다.# NestJS CLI로 생성nest g gateway chat기본적인 Gateway 클래스 설정은 다음과 같습니다.// src/chat/chat.gateway.tsimport { WebSocketGateway, SubscribeMessage, MessageBody, ConnectedSocket, WsResponse, OnGatewayInit, OnGa..

NestJS 개요: Node.js 서버 개발의 새로운 표준

🚀 NestJS란 무엇인가요?NestJS는 Node.js 환경에서 효율적이고 확장 가능한 서버 사이드 애플리케이션을 구축하기 위한 진보적인 프레임워크입니다.이는 주로 TypeScript를 사용하며, 개발자들이 잘 알고 있는 객체 지향 프로그래밍(OOP), 함수형 프로그래밍(FP), 반응형 프로그래밍(RP)의 개념을 적극적으로 활용합니다.NestJS의 핵심은 애플리케이션의 복잡성을 관리하기 위해 설계된 견고한 아키텍처를 제공하는 것입니다. 이는 마치 Angular 프레임워크에서 영감을 받은 것처럼 보이며, 엔터프라이즈급 애플리케이션을 구축하는 데 적합합니다.💡 왜 NestJS를 사용해야 할까요?TypeScript 기반: 타입스크립트의 정적 타이핑을 통해 개발 단계에서 버그를 줄이고 코드의 가독성과 유지..