Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

Node.js 스트림 writable.writableObjectMode 속성 완벽 가이드

개요

Node.js 스트림(stream) 모듈의 writable.writableObjectMode 속성은 해당 쓰기 가능(Writable) 스트림에 objectMode 옵션이 설정되어 있는지 확인할 때 사용됩니다. 객체 모드가 활성화되어 있으면 true를, 그렇지 않으면 false를 반환합니다.

일반적으로 스트림은 Buffer나 문자열 단위로 데이터를 처리하지만, objectMode: true로 설정하면 숫자, 객체 등 임의의 자바스크립트 값도 스트림을 통해 주고받을 수 있습니다.

문법(Syntax)

writable.writableObjectMode

예제 1: objectMode를 true로 설정한 경우

writableObjectMode.js라는 이름의 파일을 생성하고 아래 코드를 붙여넣은 뒤, 다음 명령어로 실행해 보세요.

node writableObjectMode.js

writableObjectMode.js

// writable.writableObjectMode 속성 시연 예제
// stream 모듈 불러오기
const stream = require('stream');

// objectMode를 true로 설정하여 Writable 스트림 생성
const writable = new stream.Writable({
    // 객체 모드 활성화
    objectMode: true,
    // 스트림에 데이터 쓰기
    write: function(chunk, encoding, next) {
        // 출력을 위해 데이터 청크 변환
        console.log(chunk.toString());
        next();
    }
});

// 데이터 쓰기 - 버퍼 큐에 저장되지 않음
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');

// 객체 모드 여부 출력
console.log(writable.writableObjectMode);

실행 결과

C:\home\node>> node writableObjectMode.js
Welcome to TutorialsPoint !
SIMPLY LEARNING
true

objectMode: true 옵션 덕분에 writable.writableObjectModetrue를 반환한 것을 확인할 수 있습니다.

예제 2: objectMode를 설정하지 않은 경우

이번에는 objectMode 옵션 없이 스트림을 생성해 보겠습니다.

// writable.writableObjectMode 속성 시연 예제
// stream 모듈 불러오기
const stream = require('stream');

// Writable 스트림 생성
const writable = new stream.Writable({
    // 스트림에 데이터 쓰기
    write: function(chunk, encoding, next) {
        // 출력을 위해 데이터 청크 변환
        console.log(chunk.toString());
        next();
    }
});

// 데이터 쓰기 - 버퍼 큐에 저장되지 않음
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');

// 객체 모드 여부 출력
console.log(writable.writableObjectMode);

실행 결과

C:\home\node>> node writableObjectMode.js
Welcome to TutorialsPoint !
SIMPLY LEARNING
false

objectMode 옵션을 별도로 지정하지 않으면 기본값인 false가 반환됩니다. 이는 스트림이 기본 모드(문자열·Buffer)로 동작하고 있음을 의미합니다.

정리

  • writable.writableObjectMode는 Writable 스트림의 객체 모드 여부를 나타내는 읽기 전용 속성입니다.
  • 객체 모드가 켜져 있으면 true, 꺼져 있으면 false를 반환합니다.
  • 객체 모드에서는 Buffer나 문자열 외에도 다양한 자바스크립트 값을 스트림으로 처리할 수 있습니다.