티스토리 뷰

동기/비동기 방식 텍스트 파일 로드 예제


동기 방식


    
var fs = require('fs');
    
    
var contents = fs.readFileSync('file1.txt''utf8');
    console.log(contents);
    console.log(
'Hello, file1\n');

    
var contents = fs.readFileSync('file2.txt', 'utf8');
    console.log(contents);
    console.log(
'Hello, file2\n');
  



동기로 처리하기 때문에 readFileSync() 메서드가 수행하는 작업이 끝나기 전까지 다음 작업을 실행하지 않는다. 다시 말해, 코드가 순서대로 실행된 것을 확인할 수 있다.

비동기 방식


    
var fs = require('fs');
    
    
var contents = fs.readFileAsync('file1.txt''utf8'function(err, contents) {

console.log(contents);

    });
    console.log('Hello, file1\n');

    var contents = fs.readFileAsync('file2.txt''utf8'function(err, contents) {

console.log(contents);
    });
    console.log('Hello, file2\n');  


결과 화면은 동기방식과 차이가 있을 수도 없을 수도 있다. 즉, file2.txt 결과가 먼저 나올 수도 있고, file1.txt 결과가 먼저 출력 될 수도 있다. 이 것은 비동기기 때문에 블로킹이 발생하지 않는다. 파일 로딩이 완료되면 콜백 함수가 실행된다.
콜백 함수는 노드의 비동기 이벤트 기반 프로그래밍의 기본 블록이라고 할 수 있다. 이 콜백 함수는 비동기 I/O작업의 인수로 넘겨진다. 그리고 해당 작업이 완료되면 한 번 호출된다. 콜백 함수는 노드의 이벤트에 대한 구현이라고 할 수 있다.


'공부 > Node.js' 카테고리의 다른 글

Node.js의 모듈  (0) 2016.12.16
콘솔과 웹 서버를 이용한 문자열 출력  (0) 2016.12.16
Node.js란?  (0) 2016.12.16
Node.js 관련 사이트 일람  (0) 2016.12.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함