readFile (vs) createReadStream
fs.readFile
- 전체 파일을 먼저 읽어서 클라이언트로 전송한다
- 파일 크기가 작으면 무시할 수 있지만 디스크 속도가 느리고 파일 내용이 큰 경우에는 큰 차이가 있다
fs.createReadStream
- 전체 파일을 메모리에 로드하는 동안
fs.createReadStream
은 전체 파일을 지정한 크기의 chunk
로 읽는다.
fs.createReadStream
을 이용하면 클라이언트가 데이터를 더 빠르게 받을 수 있다.
- 클라이언트가 데이터를 읽는 동안 chunk
로 보내지기 때문에
스트림
- 배열이나 문자열같은 데이터 컬렌션이다
- 외부 소스로부터 데이터를 한번에 한 청크(chunk)씩 가져온다
참고자료