오늘은 파일 입출력에 대해 포스팅하겠습니다.
Node.js의 파일 입출력은 크게 동기,비동기 방식으로 나뉩니다.메소드 이름 |
설명 |
readFile(filename,[encoding],[callback]) |
비동기식 IO로 파일을 읽음 |
writeFile(filename,data,encoding='utf8',[callback]) |
비동기식 IO로 파일을 씀 |
readFileSync(filename,[encoding]) |
동기식 IO로 파일을 읽음 |
writeFileSync(filename,data,encoding='utf8') |
동기식 IO로 파일을 씀 |
동기식 방식 예제)
1 2 3 | var fs = require('fs'); var data = fs.readFileSync('./package.json','utf8'); console.log(data); | cs |
출력결과)
동기식 방식은 파일 작업이 끝날때 까지 대기하다 끝나면 다른 작업을 수행합니다.
또한 return값을 제공하죠!!
즉 fs.readFileSync가 끝나야지 밑에 console.log(data);를 실행합니다.
그렇기 때문에 만약 데이터가 큰 작업을 수행해야할 경우 동기식 방식의 IO를 한다면
프로그램의 성능을 떨어뜨리기 때문에 선호하는 방식은 아닙니다.
비동기식 방식 예제)
1 2 3 4 | var fs = require('fs'); fs.readFile('./package.json','utf8',function(err,data){ console.log(data); }); | cs |
출력결과)
결과값은 비동기식이나 동기식방식이나 같습니다.
하지만 비동기식의 경우 return 값이 아닌 콜백함수에서 데이터를 처리하게 됩니다.
또한 비동기식이기 때문에 파일을 읽으라는 명령을 내려놓고 다른작업을 수행하다가 파일을 다 읽으면 callback함수에서 실행되기 때문에 프로그램의 성능을 올릴수 있기 때문에 많이 선호하는 방식입니다.