동기 비동기

몽슈뜨·2023년 2월 20일
0

TIL

목록 보기
44/70


동기적 처리 (Synchronous)

console.log('111');
console.log('222');
console.log('333');

// 결과
111
222
333

이처럼 코드가 위에서부터 아래로 내려오면서 하나가 끝나면 다음 코드가 실행되는 방식을 동기적 처리 (Synchronous)라고 한다.


비동기적 처리(Asynchronous)

console.log('111');
setTimeout(()=> {
  console.log('222');
},0)
console.log('333');

// 결과
111
333
222

1st, 3rd, 2nd가 찍혔다.
이는 setTimeout()메소드가 비동기적 API이기 때문이다.

  • 첫번째 줄에서 console.log("1st");를 만나고 콘솔에 1st를 찍는다.
  • 두번째 줄에서 setTimeout() 메소드를 만나서 해당 매소드가 비동기적 매소드이기 때문에 이를 처리하는 다른 프로그램에 맡긴다.
    그러고 나서 곧바로 console.log("3rd")를 콘솔에 찍는다.
  • setTimeOut() 메소드를 처리하는 프로그램은 비동기적 API를 제외한 모든 코드가 실행 된 이후 결과를 콘솔에 찍는다.

비동기적 코드의 실행 결과는 동기적 코드가 전부 실행 되고나서 값을 반환한다.

동기 : 디자인이 비동기보다 간단하고 직관적일수 있지만 결과가 주어질 때 까지 아무것도 못하고 대기해야하는 문제가 있다.

비동기 : 동기보다 복잡하지만 결과가 주어지는데 시간이 걸려도 그 시간동안 다른 작업을 할 수 있어서 보다 효율적일 수 있다.

옛날에 정리한 내용@@@@

profile
개발자되면 맥북사줄께

0개의 댓글