FS 모듈
- 파일의 내용을 읽거나 기록하는 등 파일을 관리할 때 사용
- 파일과 디렉터리 살펴보기, 새로운 파일과 디렉터리 만들기, 파일 스트리밍 등 파일이나 디렉터리를 사용하면서 필요한 여러 기능 제공 (디렉터리 = 윈도우 폴더)
프라미스에서 사용하는 함수, 콜백에서 사용하는 함수, 동기 처리할 때 사용하는 함수 세가지로 나뉩
1. 비동기 처리 방법에 따라 사용하는 함수가 다르다
- 비동기로 처리할 때 사용하는 방법 ::
콜백 , 프라미스
- 크기가 큰 파일을 동기처리를 하면 파일을 읽거나 쓰는 동작 하나가 다 끝나야 다음 동작을 처리하므로 이런 작업은 비동기로
처리하는 게 좋음
1-1. FS모듈 가져오기

- fs 모듈을 가져 온 후 fs 모듈의 함수를 사용하는 법

2. 현재 디렉터리 읽기 - readdirSync 함수, readdir 함수
2-1. 동기 처리로 디렉터리 읽기 - readdirSync 함수
fs.readdirSync(경로 [ , 옵션 ] )
-> 경로 : 파일 목록을 표시할 경로 지정
-> 옵션 : readdirSync 함수에서 사용하는 옵션은 encoding
(encoding이란 : 반환값을 어떤 형태로 가져올 것인지를 지정, 기본값이 utf8로 되어 있어서 사람이 읽을 수 있는 텍스트 형태로 가져옴)
- readdirSync 함수는 지정한 경로를 읽어서 그 경로에 있는 파일을 모두 표시함


2-2. 비동기 처리로 디렉터리 읽기 - readdir 함수
fs.readdir ( 경로 [, 옵션], 콜백)
-> 경로 : 파일 목록을 표시할 경로 지정
-> 옵션 : readdir함수에서 사용하는 옵션은 encoding rhk withFileTypes
->encoding : 기본값 urf-8
->withFileTypes : 기본값은 false, 이 옵션을 true로 지정하면 반환값이 문자열로 된 배열이 아니라 디렉터리 항목으로 된 배열로 반환
->readdir 함수에서 콜백을 처리할 때는 err와 files 매개변수 사용
- 디렉터리 읽기를 비동기로 처리한 다는 것은 디렉터리를 읽는 동안 시간이 걸리니까 빨리 처리할 수 있는 다른 일부터 처리하라는 것, 또 디렉터리 읽기가 끝나면 그때 콜백함수에서 지정한 일을 하라는 의미
- readdir 함수는 지정한 경로의 디렉터리를 읽고, 거기에 있는 파일 이름을 모두 표시


- fs모듈 가져옴 : const fs = require('fs');
- readdir 함수에서는 경로와 콜백을 인자로 사용
- 콜백 함수는 넘겨받은 err와 files를 인자로 받아서 처리