[Node.JS] http와 socket을 사용할 때 하나의 포트에서 사용하는 이유?

박두팔이·2024년 3월 4일
0

Node.JS

목록 보기
7/20

problem

기존에는 http와 socket을 두 개의 port로 나누어 사용하고 있었다.
하나의 인스턴스에서 두 개의 포트를 사용하는 것이 왜 문제인지 찾아보기로 했다.

  • 관리의 복잡성: 포트마다 각각에 대한 보안 규칙을 설정해야 한다. aws ec2인스턴스의 보안 그룹 설정에서 두 포트 모두에 대한 인바운드 규칙을 구성해야 한다.
  • 리소스 사용량 증가: 별도의 포트에서 리스닝되고 있다면, 각각의 서비스가 별도의 프로세스나 스레드로 실행될 가능성이 있다.
  • 세션 관리와 상태 유지: 별도의 포트에서 운영될 때 사용자 인증 정보나 트랜잭션 상태 등 두 서비스 간에 일관되게 유지하는 것이 어려워질 수 있다.

solution

  • 하나의 인스턴스에서 소켓과 HTTP 포트를 하나로 관리하는 주된 이유는 리소스 관리의 효율성, 배포 및 운영의 단순성, 그리고 애플리케이션의 구조적 일관성을 위해서이다.
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketIo(server);
profile
기억을 위한 기록 :>

0개의 댓글