개요
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.writableObjectMode가 true를 반환한 것을 확인할 수 있습니다.
예제 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나 문자열 외에도 다양한 자바스크립트 값을 스트림으로 처리할 수 있습니다.