설명
동기
여러작업을 진행 할때 하나의 작업이 끝날때 까지 기다렸다가 다음 작업을 진행하는 것.
비동기
여러작업을 진행 할때 하나의 작업을 실행하고 다음 작업으로 넘어간다.
이전에 실행한 작업은 작업이 끝나고 callback
을 넘긴다.
비유
간단하게 설명하면 동기
는 카페에서 손님에게 주문을 받고 커피를 만들어서 전달하고 다음 손님으로 넘어가는 것 이고 비동기
는 카페에서 손님에게 주문을 받고 진동벨을 준 다음 다음 손님의 주문으로 넘어가고, 손님의 커피가 제조가 완료되면 진동벨(callback)을 울려 해당 손님에게 전달한다.
코드
동기 코드
|
|
비동기 코드
|
|
동기 코드는 우리가 생각하는 순서대로 결과가 나온다.
비동기 코드는 우리의 생각과 다르게 fs.readFile
를 처리하는 동안 다음으로 넘어가서 3
이 출력되고 함수가 다 처리되면 callback함수의 처리가 이루어진다.