본문으로 바로가기

[Node.js] 파일 입출력 알아보자!!

category 프로그래밍/Node.js 2018. 11. 22. 00:59

오늘은 파일 입출력에 대해 포스팅하겠습니다.

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함수에서 실행되기 때문에 프로그램의 성능을 올릴수 있기 때문에 많이 선호하는 방식입니다.