🟢 서버사이드 데이터 스트리밍 시스템 구현

Node.js 예제

중급 난이도
예제 타입
11/06 등록일

서버사이드 데이터 스트리밍 시스템 구현

중급
태그
예제 실습 프로젝트 스트리밍 서버 HTTP Node.js 데이터전송
## 프로젝트 개요
Node.js를 활용한 실시간 데이터 스트리밍 서버 구현 예제입니다. 클라이언트가 실시간으로 데이터를 요청하고, 서버는 지속적으로 데이터를 전송하는 시나리오에 사용됩니다.

## 주요 기능
- HTTP 서버 생성 및 요청 처리
- 실시간 데이터 스트리밍을 위한 스트림 객체 활용
- 에러 발생 시 로깅 및 예외 처리
- 클라이언트 연결 종료 시 자원 정리

## 사용 방법
1. 프로젝트 디렉토리에 이 파일을 저장하고 `npm init -y` 실행
2. `node server.js` 명령어로 서버 실행
3. `curl http://localhost:3000/data-stream` 또는 웹 브라우저에서 접근

## 확장 가능성
- 클라이언트 연결 관리 및 웹소켓 통신 추가
- 데이터베이스 연동 및 실시간 업데이트 기능 구현
코드 예제
// server.js
const http = require('http');
const fs = require('fs');
const { Readable } = require('stream');
const logger = require('./logger'); // 로거 모듈

// 데이터 스트리밍을 위한 가상 데이터 생성
const dataStream = new Readable({
  read(size) {
    const chunk = 'Data chunk 
';
    this.push(chunk);
    this.push(null);
  }
});

http.createServer((req, res) => {
  if (req.method === 'GET' && req.url === '/data-stream') {
    // HTTP 헤더 설정
    res.writeHead(200, {
      'Content-Type': 'text/plain',
      'Transfer-Encoding': 'chunked'
    });

    // 데이터 스트리밍 전송
    dataStream.pipe(res);

    // 클라이언트 종료 시 자원 정리
    req.on('close', () => {
      logger.info('Client disconnected');
      dataStream.destroy();
    });
  } else {
    res.writeHead(404, { 'Content-Type': 'text/plain' });
    res.end('Not Found');
  }
}).listen(3000, () => {
  logger.info('Server running on port 3000');
});

// logger.js (예시)
module.exports = {
  info(message) {
    console.log(`[INFO] ${message}`);
  },
  error(message) {
    console.error(`[ERROR] ${message}`);
  }
};
등록일: 2025년 11월 06일 02:34
언어 정보
언어
Node.js
카테고리
Web
인기도
#10
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요