더북(TheBook)

Buffer 객체는 여러 가지 메서드를 제공합니다.

from(문자열): 문자열을 버퍼로 바꿀 수 있습니다. length 속성은 버퍼의 크기를 알립니다. 바이트 단위입니다.

toString(인코딩): 버퍼를 다시 문자열로 바꿀 수 있습니다. 이때 base64hex를 인수로 넣으면 해당 인코딩으로도 변환 가능합니다.

concat(배열): 배열 안에 든 버퍼들을 하나로 합칩니다.

alloc(바이트): 빈 버퍼를 생성합니다. 바이트를 인수로 넣으면 해당 크기의 버퍼가 생성됩니다.

readFile 방식의 버퍼가 편리하기는 하지만 문제점도 있습니다. 만약 용량이 100MB인 파일이 있으면 읽을 때 메모리에 100MB의 버퍼를 만들어야 합니다. 이 작업을 동시에 열 개만 해도 1GB에 달하는 메모리가 사용됩니다. 특히 서버처럼 몇 명이 이용할지 모르는 환경에서는 메모리 문제가 발생할 수 있습니다.

또한 모든 내용을 버퍼에 다 쓴 후에야 다음 동작으로 넘어가므로 파일 읽기, 압축, 파일 쓰기 등의 조작을 연달아 할 때 매번 전체 용량을 버퍼로 처리해야 다음 단계로 넘어갈 수 있습니다.