[Node.js] 콜백/동기와 비동기

imssonice·2022년 10월 3일
0
  • 콜백

    한 함수의 인자로 다른 함수가 전달 됐는데, 그때 인자로 전달 된 함수를 '콜백함수'라고 부른다. 누군가를 호출하는 게 아닌 호출'당할' 함수다.
    함수를 한 번만 호출할 거면 굳이 함수를 정의할 필요가 없다. 그러므로 sort함수의 괄호 안에 직접 함수를 정의하면된다. 그리고 함수 이름을 정의하지 않는 경우엔 그 함수는 '익명함수'이다.
  • 동기와 비동기
    동기: Synchronous
    비동기: Asynchronous
    일상생활에 비유하자면, 동기는 빨래->설거지->청소를 순서대로 처리하는 것. 비동기는 빨래는 빨래업체에 설거지는 설거지업체에 청소는 청소업체에 전화해서 다 하면 전화를 달라고 부탁하는 것과 같음.

    ♡ 동기 방식
console.log(1);
var data = fs.readFileSync('data.txt', {encoding: 'utf8'});
console.log(data);

먼저 1을 출력한 뒤에 데이터를 읽고나서 데이터를 콘솔로 출력하는 코드다. 비동기 방식에서는 읽는 데 몇분이 걸리더라도 다 읽고 출력을 한다.

♡ 비동기 방식

console.log(2);
fs.readFile('data.txt', {encoding: 'utf8'}, function(err, data){{
	console.log(3);
    console.log(data);
})
console.log(4)

위 코드를 보면 2, 3, data가 순서대로 출력되어야 할 것 같은데, 막상 출력해보면 2, 4, 3, data가 출력이 된다. 비동기방식은 해당 코듣가 처리되기 전에 다음 코드를 수행하고, 해당 코드는 백그라운드가 수행하도록 한다.

출처: 생활코딩(https://www.youtube.com/c/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A91)

profile
공부한 거 정리하는 용도로 씁니다.

0개의 댓글