Node.js에서 WebSocket 사용하는 방법

Node.js는 강력한 JavaScript 런타임으로, WebSockets의 기능을 보다 쉽게 사용할 수 있게 해줍니다. 이 가이드에서는 Node.js에서 WebSockets를 통합하고 사용하는 과정을 안내합니다.

Young-jae

Young-jae

20 December 2024

Node.js에서 WebSocket 사용하는 방법

WebSockets는 웹에서 실시간 통신을 혁신하여 단일 TCP 연결을 통해 양방향, 전이중 통신 채널을 가능하게 합니다. 강력한 자바스크립트 런타임인 Node.js를 사용하면 WebSockets의 기능을 더욱 쉽게 사용할 수 있습니다.

이 가이드에서는 Node.js에서 WebSockets를 통합하고 사용하는 과정을 안내합니다.

💡
WebSocket 서비스 디버깅을 위해, 요청의 시뮬레이션, 메시지 교환 관찰, 콘텐츠 수정이 용이한 사용자 친화적인 인터페이스를 제공하는 훌륭한 API 디버깅 도구인 Apidog를 사용하세요. 이를 통해 WebSocket 기반 애플리케이션의 원활한 기능을 보장할 수 있습니다.
button

WebSocket이란?

구현에 들어가기 전에, WebSocket이 무엇인지와 전통적인 HTTP 요청과의 차이를 이해하는 것이 중요합니다. HTTP는 요청-응답 모델을 따르지만, WebSockets는 클라이언트와 서버 간의 지속적인 연결을 제공하여 실시간 저지연 데이터 교환을 가능하게 합니다.

이러한 특성 덕분에 채팅 애플리케이션, 멀티플레이어 게임 및 협업 도구와 같은 즉각적인 업데이트가 필요한 애플리케이션에 이상적입니다.

Websocket API

WebSocket 사용 사례

WebSocket은 다음과 같은 시나리오에서 특히 유용합니다:

Node.js 프로젝트 설정

시작하려면, 시스템에 Node.js가 설치되어 있는지 확인하십시오. 터미널에서 node -v를 실행하여 설치 상태를 확인할 수 있습니다.

확인 후, 프로젝트를 위한 새 디렉토리를 만들고 그 안으로 이동합니다.

mkdir websocket-example
cd websocket-example

npm을 사용하여 새로운 Node.js 프로젝트를 초기화합니다:

npm init -y

이 명령은 기본 설정으로 package.json 파일을 생성합니다. 다음으로, Node.js를 위한 인기 있는 WebSocket 라이브러리인 ws 패키지를 설치합니다:

npm install ws

WebSocket 서버 구현

프로젝트가 설정되었으니, ws 라이브러리를 사용하여 WebSocket 서버를 생성하겠습니다. 프로젝트 디렉토리에 server.js라는 새 파일을 만들고 다음 코드를 추가합니다:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {console.log('새 클라이언트가 연결되었습니다.');
  ws.on('message', function incoming(message) {console.log('받은 메시지: %s', message);
  });
  ws.send('WebSocket 서버에 오신 것을 환영합니다!');
});

이 코드는 8080 포트에서 WebSocket 서버를 초기화하고 들어오는 연결을 수신합니다. 연결되면 메시지를 기록하고 들어오는 메시지에 대한 이벤트 리스너를 설정합니다. 또한 클라이언트에게 환영 메시지를 전송합니다.

WebSocket 클라이언트 생성

이제 서버에 연결할 간단한 WebSocket 클라이언트를 생성하겠습니다. 프로젝트 디렉토리에 client.js라는 새 파일을 만들고 다음 코드를 추가합니다:

const WebSocket = require('ws');

const ws = new WebSocket('ws://localhost:8080');
ws.on('open', function open() {console.log('서버에 연결되었습니다.');
});
ws.on('message', function incoming(data) {console.log('서버로부터 받은 메시지: %s', data);
});

이 코드는 ws://localhost:8080에 WebSocket 연결을 설정하고 성공적으로 연결되면 메시지를 기록합니다. 또한 서버로부터 메시지를 수신하기 위한 이벤트 리스너를 설정합니다.

애플리케이션 실행

애플리케이션을 실행하기 전에 WebSocket 서버(server.js)가 실행되고 있는지 확인하십시오. 다음 명령으로 서버를 시작할 수 있습니다:

node server.js

서버가 실행 중이면 다른 터미널 창에서 클라이언트 스크립트(client.js)를 실행합니다:

node client.js

서버와 클라이언트 모두 성공적으로 연결되었다는 메시지가 표시됩니다.

Apidog: WebSocket API 테스트 간소화

Websocket in Apidog

Node.js 대신, 다목적 API 테스트를 위한 Postman과 유사한 훌륭한 도구인 Apidog를 사용하는 것을 고려해 보세요. Apidog는 사용자 친화적인 인터페이스로 WebSocket API를 생성, 관리 및 테스트할 수 있는 WebSocket API 테스트를 지원합니다.

button

Explore more

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

이 글에서는 EXAONE 3.0 7.8B 모델을 자신의 컴퓨터에서 설치하고 실행하는 방법을 단계별로 상세히 알아보겠습니다

25 March 2025

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Anthropic의 최신 출시인 Claude 3.7 Sonnet에 대해 기대하고 있으며, Apidog로 테스트하면서 API를 통한 기능을 탐색하고 싶다면, 올바른 장소에 오신 것입니다. 💡시작하기 전에 간단한 팁을 드리겠습니다: 오늘 Apidog를 무료로 다운로드하여 API 테스트 프로세스를 간소화하세요. 특히 Claude 3.7 Sonnet의 강력한 기능을 탐색하는 데 적합한 도구로, 최첨단 AI 모델을 테스트하려는 개발자에게 이상적입니다!버튼 Claude 3.7 Sonnet이 중요한 이유로 시작해봅시다. Anthropic은 최근 2025년 2월 24일에 이 모델을 공개했으며, 즉시 및 단계별 응답을 위한 하이브리드 추론 기능을 갖춘 가장 지능적인 창작물로 자리 잡았습니다. 이는 코딩, 추론 등 여러 부분에서 혁신적인 변화를 가져오며, 현재 e Anthropic API, Amazon Bedrock, Google Cloud의 Vertex AI를 통해 사용할 수 있습니다. 이 튜

25 February 2025

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료 사용법을 알아보세요. 이 AI 기반 코딩 도우미에 대한 이 가이드는 VS Code와 JetBrains와 같은 인기 IDE의 설정 단계를 다루며, 무료로 스마트한 코드 제안 및 완성을 통해 생산성을 높일 수 있도록 도와줍니다!

19 December 2024

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요