1. 개요
동기 Synchronous
비동기 Asynchronous
예를들어 이메일을 발송하는 시스템이 있고, 만 명에게 이메일을 보내야 한다고 했을 때, 동기적으로 일을 처리하면 서버에서 한 명 한 명에게 메일을 보낸다.
비동기적으로 일을 처리하면, 이메일을 보내는 별도의 시스템에게 만명에게 이메일을 보내라고 위임을 해버리는 것. 시스템이 그 일을 처리하는 동안에 우리는 그 작업이 끝나면 사용자에게 전송이 완료되었습니다. 라는 메시지를 보내주는 것. 백그라운드에서 메일을 보내고 있을 것.
2. 활용
fs.readFileSync() - 동기
IO가 필요한 작업은 노드제이에스에서 비동기적으로 처리하는 게 기본이다.
//Sync
console.log(1); //먼저 실행
var data = fs.readFileSync('data.txt', {encoding:'utf8'} );
console.log(data);
코드 순서대로 실행이된다. 만약 readFile에 10분이 걸린다면 console.log(data)는 10분 후에 출력이된다.
fs.readFile() - 비동기 , 콜백함수를 인자로 갖는다.
//Async
console.log(2); // 1
fs.readFile('data.txt', {encoding:'utf8'}, function(err, data){
console.log(3) // 3
console.log(data); //readFile 작업이 끝나면 콜백함수 호출
})
console.log(4); // 2
2
4
3
data
순서로 출력이 된다. readFile의 콜백함수는 readFile 작업이 끝나면 호출된다. readFile 함수를 호출한다는 것은 해당 작업을 백그라운드로 위임한다는 뜻으로 이해하면 된다.
다만 Node.js는 singlethread를 사용하기 때문에 장단점을 잘 따져봐야 한다.
참고자료: https://m.blog.naver.com/hhw1990/221394005779
'스터디📖 > Node.js' 카테고리의 다른 글
[nodejs 강좌] Node.js 를 이용해 웹애플리케이션 만들기 - 섹션 6. Express 템플릿 엔진 (0) | 2022.02.02 |
---|---|
[nodejs 강좌] Node.js 를 이용해 웹애플리케이션 만들기 - 섹션 5. Express (0) | 2022.02.02 |
[nodejs 강좌] Node.js 를 이용해 웹애플리케이션 만들기 - 섹션 3. 콜백 (Callback) (0) | 2022.02.01 |
[nodejs 강좌] Node.js 를 이용해 웹애플리케이션 만들기 - 섹션 2. 모듈 (0) | 2022.02.01 |
[nodejs 강좌] Node.js 를 이용해 웹애플리케이션 만들기 - 섹션 1. 간단한 웹앱 만들기 (0) | 2022.01.29 |