2020. 6. 11. 22:53ㆍNode.js
최근 node.js fs 모듈을 이용해 파일에서 데이터를 읽어오는 부분이 포함된 과제를 진행했다.
처음 작성한 코드에서는 fs.readFile을 사용했었고 문제 없이 잘 작동이 되었는데, 나중에 조금 더 알아보니 readFile 대신 createReadStream을 사용하는 경우도 있다고 해서 두 메소드에 대해서 알아보았다.
## readFile
- 가져오고자 하는 텍스트 파일을 전부 읽어온다.
- 짧은 파일을 가져올 때에는 사용하기 편하고 좋은 방법이지만, 파일의 크기가 커진다면..?
## createReadStream
- stream 형태로 파일을 읽어온다.
- stream은 일정한 크기의 chunk로 파일을 받게 되는 형태이다.
- stream을 사용하면 chunk로 파일을 읽어오기 때문에, 메모리에 저장되는 데이터를 최소한으로 유지할 수 있다.
- 찾고자 하는 파일을 찾은 뒤에는 stream.destroy() 메소드를 사용해 나머지 데이터까지 읽어오는 것을 차단할 수 있다.
- 그래서 파일의 크기가 커진다면 readFile에 비해서 처리 속도가 훨씬 빨라진다.
nodeJS createReadStream 사용법:
https://nodejs.org/en/knowledge/advanced/streams/how-to-use-fs-create-read-stream/
nodeJS API 문서:
https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_fs_createreadstream_path_options
https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_fs_readfile_path_options_callback
https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_destroy_error
blogs:
https://velog.io/@yhe228/readFile-vs-createReadStream
https://medium.com/@dalaidunc/fs-readfile-vs-streams-to-read-text-files-in-node-js-5dd0710c80ea
https://www.codewithc.com/difference-readfile-createreadstream-node-js/
'Node.js' 카테고리의 다른 글
Node.js, NVM, NPM (0) | 2020.04.28 |
---|