상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
육아휴직 후 사회 복귀에 필요한 팁은 무엇인가요?
배임죄가 발생한 경우 피해자는 어떤 증거를 수집해야 하나요?
배임죄에 대한 형사소송 절차는 어떻게 이루어지나요?
대손처리의 회계적 처리 방법은 무엇인가요?
대손처리 시 발생할 수 있는 윤리적 문제는 어떤 게 있나요?
손익계산서에서 내부 거래는 어떻게 처리하나요?
중국어 간체와 번체의 역사적 배경은 어떤가요?
중국어 간체와 번체를 명확하게 구분하는 법은 무엇인가요?
구기자 한 알의 평균 무게는 얼마나 되나요?
열매체리 한 알의 평균 무게는 몇 그램일까요?
고기 보관의 중요성에 대한 통계 자료는?
야채 보관 시 시간을 조금이라도 단축하는 법은?
Previous
Next
수정하기 - Node.js에서 스트리밍 데이터를 처리하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Node.js는 비동기 I/O 모델을 기반으로 하여 스트리밍 데이터를 처리하는 데 매우 적합한 환경입니다. 스트리밍 데이터는 대량의 데이터를 실시간으로 처리해야 할 때 유용하며, Node.js의 이벤트 기반 아키텍처는 이러한 작업을 효율적으로 수행할 수 있도록 돕습니다. 아래에서는 Node.js에서 스트리밍 데이터를 처리하는 방법에 대해 자세히 설명하겠습니다. 1. 스트림(Stream) 개념 이해하기 Node.js에서 스트림은 데이터의 연속적인 흐름을 나타내며, 크게 네 가지 유형으로 나눌 수 있습니다: - Readable Stream : 데이터를 읽을 수 있는 스트림입니다. 예를 들어, 파일 시스템에서 파일을 읽거나 HTTP 요청에서 데이터를 수신할 때 사용됩니다. - Writable Stream : 데이터를 쓸 수 있는 스트림입니다. 파일에 데이터를 쓰거나 HTTP 응답을 클라이언트에 전송할 때 사용됩니다. - Duplex Stream : 읽기와 쓰기가 모두 가능한 스트림입니다. 예를 들어, TCP 소켓이 이에 해당합니다. - Transform Stream : 입력 데이터를 변환하여 출력하는 스트림입니다. 예를 들어, 압축이나 암호화 작업을 수행할 때 사용됩니다. 2. 스트림 사용하기 Node.js에서 스트림을 사용하기 위해서는 `stream` 모듈을 활용합니다. 기본적인 사용 예시는 다음과 같습니다. 2.1 Readable Stream 예제 파일에서 데이터를 읽는 Readable Stream의 예제입니다. ```javascript c<a href='https://sangseek.com/sangseeks/onst/ko'>onst</a> fs = require('fs'); const readableStream = fs.createReadStream('example.txt', { encoding: 'utf8', highWaterMark: 16 // 버퍼 크기 설정 }); readableStream.on('data', (chunk) => { console.log('Received chunk:', chunk); }); readableStream.on('end', () => { console.log('No more data to read.'); }); ``` 2.2 Writable Stream 예제 데이터를 파일에 쓰는 Writable Stream의 예제입니다. ```javascript const fs = require('fs'); const writableStream = fs.createWriteStream('output.txt'); writableStream.write('Hello, World!\n'); writableStream.write('This is a test.\n'); writableStream.end(); // 스트림 종료 ``` 2.3 Duplex Stream 예제 TCP 소켓을 사용하는 Duplex Stream의 예제입니다. ```javascript const net = require('net'); const server = net.createServer((socket) => { socket.on('data', (data) => { console.log('Received:', data.toString()); socket.write('Echo: ' + data); }); }); server.listen(8080, () => { console.log('Server is listening on port 8080'); }); ``` 3. 스트림 파이프라인 Node.js에서는 스트림을 연결하여 데이터를 효율적으로 처리할 수 있는 `pipe()` 메서드를 제공합니다. 이를 통해 Readable Stream의 데이터를 Writable Stream으로 쉽게 전달할 수 있습니다. ```javascript const fs = require('fs'); const readableStream = fs.createReadStream('example.txt'); const writableStream = fs.createWriteStream('output.txt'); readableStream.pipe(writableStream); ``` 4. 스트림의 장점 - 메모리 효율성 : 스트리밍 방식으로 데이터를 처리하면 전체 데이터를 메모리에 로드하지 않고도 작업을 수행할 수 있어 메모리 <a href='https://sangseek.com/sangseeks/사용량/ko'>사용량</a>을 줄일 수 있습니다. - <a href='https://sangseek.com/sangseeks/실시간 처리/ko'>실시간 처리</a> : 데이터를 수신하는 즉시 처리할 수 있어 지연 시간을 최소화할 수 있습니다. - 유연성 : 다양한 데이터 소스와 싱크를 연결하여 복잡한 데이터 흐름을 쉽게 구성할 수 있습니다. 5. 에러 처리 스트림을 사용할 때는 에러 처리가 중요합니다. 각 스트림은 `error` 이벤트를 발생시킬 수 있으므로 이를 적절히 처리해야 합니다. ```javascript readableStream.on('error', (err) => { console.error('Error reading stream:', err); }); writableStream.on('error', (err) => { console.error('Error writing stream:', err); }); ``` 6. 결론 Node.js에서 스트리밍 데이터를 처리하는 것은 비동기 I/O 모델 덕분에 매우 효율적입니다. 다양한 스트림 유형을 활용하여 데이터를 읽고 쓰며, `pipe()` 메서드를 통해 스트림을 연결하여 복잡한 데이터 흐름을 쉽게 관리할 수 있습니다. 이러한 기능들은 대량의 데이터를 실시간으로 처리해야 하는 애플리케이션에서 특히 유용합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기