비동기(Asynchronous)
- 작업이 병렬적으로 실행됨: 하나의 작업이 완료될 때까지 다른 작업이 실행됨.
- 결과를 나중에 처리함: 작업이 완료되면 콜백 함수나 프로미스를 통해 결과를 처리함.
- 복잡하지만 효율적임: 비동기 흐름 제어를 위해 추가적인 구조가 필요함.
const readline = require('readline');
const r1 = readline.createInterface({
input: process.stdin,
output: process.stdout
});
r1.question('', (a) => {
r1.question('', (b) => {
let c = parseInt(a) + parseInt(b);
console.log(c);
r1.close();
});
});
동기(Synchronous)
- 작업이 순차적으로 실행됨: 하나의 작업이 완료될 때까지 다음 작업이 대기함.
- 결과를 즉시 반환받음: 함수 호출 후 결과를 받을 때까지 대기함.
- 간단하고 직관적임: 코드가 작성된 순서대로 실행되므로 흐름이 명확함.
var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().split('\n');
var a = parseInt(input.shift());
var b = parseInt(input[0]);
console.log(a + b);