[javascript] 자바스크립트에서의 파이프라인과 스트림 처리

자바스크립트는 비동기적인 특성을 활용하여 스트림 처리와 같은 데이터 처리를 위한 다양한 방법을 제공합니다. 파이프라인스트림은 데이터를 효율적으로 처리하는 방법으로, 이러한 기술을 사용하면 데이터를 일괄적으로 처리하거나 변환할 수 있습니다.

파이프라인

파이프라인은 데이터처리에서 한 단계의 출력이 다음 단계의 입력으로 연결되는 구조를 말합니다. 이전 단계의 결과가 연이어 다음 단계로 전달되어 처리되기 때문에 파이프라인은 효율적인 데이터 처리를 가능케 합니다. 자바스크립트에서는 Array.prototype의 메서드인 map, filter, reduce 등을 활용하여 데이터 파이프라인을 구축할 수 있습니다.

다음은 배열에서 필터링과 변환을 거친 후 합산하는 파이프라인의 예제입니다.

const data = [1, 2, 3, 4, 5];

const result = data
  .filter(num => num % 2 === 0)  // 짝수 필터링
  .map(num => num * 2)           // 각 항목을 2배로 변환
  .reduce((acc, cur) => acc + cur, 0);  // 값들을 합산
// result: 12

스트림

스트림은 데이터 처리에서 연속적으로 생성되는 데이터를 처리하기 위한 개념으로, 일부 데이터 처리 작업은 모든 입력 데이터가 사용 가능한 상태로부터 시작할 필요가 없습니다. Node.js는 스트림을 효과적으로 처리하기 위한 Readable, Writable, Transform과 같은 클래스를 제공합니다.

아래는 Node.js의 스트림을 통해 파일을 읽고 콘솔에 출력하는 예제입니다.

const fs = require('fs');

const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');

readStream.pipe(writeStream);

이 예제에서는 파일을 읽어와서 다른 파일로 출력하는 스트림 처리를 보여줍니다. pipe 메서드를 통해 데이터를 효율적으로 스트림으로 전달할 수 있습니다.

결론

파이프라인과 스트림은 자바스크립트에서 데이터를 처리하고 변환하는 데 필수적인 기술입니다. 이러한 기술을 활용하여 데이터 처리를 효율적으로 수행할 수 있으며, Node.js의 스트림을 활용하면 파일 및 네트워크와 같은 입출력 작업을 효율적으로 처리할 수 있습니다.

참고 문헌: