동기 vs 비동기

Beom·2023년 1월 3일
0

자바스크립트 101

목록 보기
7/9

자바스크립트의 싱글 스레드 작업 수행 방식

  • 자바스크립트는 코드가 작성된 순서대로 작업을 처리한다
  • 이전 작업을 진행 중일 때는 다음 작업을 수행하지 않고 기다린다
  • 먼저 작성된 코드를 다 실행하고 나서 뒤에 작성된 코드를 실행한다
  • 연산과정을 하는 일꾼 = 스레드 (코드 한줄한줄 실행하는)
    -> 동기 방식의 처리

단점

  • 동기적 처리는 하나의 작업이 너무 오래 걸리게 되면 하나의 작업이 종료될 때까지 뒤에 작업이 멈춰있기 때문에 전반적인 흐름이 느려진다

멀티스레드

  • 코드를 실행하는 일꾼(스레드)을 여러 개 사용하는 방식으로 작업의 분할이 가능하다
  • 다만 자바스크립트는 싱글스레드 방식이다!!

비동기 작업 (동기 방식 단점의 극복)

  • 여러개의 작업을 동시에 실행시킨다
  • 먼저 작성된 코드의 결과를 기다리지 않고 다음 코드를 바로 실행한다
  • 하나의 작업이 스레들르 점유하지 않는, 블로킹하지 않는 방식 (=논블로킹 방식)
  • 작업의 결과 확인 -> 콜백 함수를 넣어준다

Heap & Call Stack

  • 자바스크립트 엔진은 힙과 콜스텍으로 구성되어 있다
  • 힙 (변수/상수를 저장하는 메모리)
  • 콜스택 (작성한 코드를 실행하는)

콜백지옥

  • 비동기 처리의 결과를 또다른 비동기 결과로 이용하는 로직
  • 해결방법 -> Promise 객체

0개의 댓글