동기 / 비동기

오민영·2021년 7월 13일
0

Web API

목록 보기
3/9
post-thumbnail

동기 / 비동기

동기

  • 동시에 일어난다는 의미
  • 요청이 들어온 순서대로 하나씩 처리한다.
  • 순서에 맞게 진행되는 장점이 있으나, 여러가지 요청을 동시에 처리할 수 없다.

비동기

  • 요청과 결과가 동시에 일어나지 않는다.
  • 하나의 요청에 따른 응답을 바로 하지 않아도, 그 대기시간 동안 또 다른 요청에 대한 처리를 할 수 있다.
  • 여러 개의 요청을 동시에 할 수 있다는 장점이 있으나, 동기 방식보다 속도가 떨어질 수 있다.

비동기처리

특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 말한다.

자바스크립트에서 비동기 처리가 필요한 이유는, 화면에서 서버로 데이터를 요청했을 때 서버가 언제 그 요청에 대한 응답을 줄지도 모르는데 마냥 다른 코드를 실행시키지 않고 기다릴 순 없기 때문이다. 비동기가 아니고 동기 처리라면 코드 실행하고, 기다리고, 실행하고 기다리고를 반복하면 애플리케이션이 열리는데 오랜 시간이 걸릴 것이다.

자바스크립트의 비동기적 프로그래밍에는 뚜렷하게 구분위는 세 가지 패러다임이 있다

Callback(콜백)

Promise(프라미스)

  • 콜백에 의존한다.

Generator(제네레이터)

  • 제네레이터 자체는 비동기적 프로그래밍을 지원하지 않는다.
  • 제네레이터를 비동기적으로 사용하려면, 프라미스타 특수한 콜백을 사용한다.

사용자 입력 외에, 비동기적 테크닉을 사용해야 하는 경우는 크게 세 가지가 있다.

  • Ajax 호출을 비롯한 네트워크 요청시
  • 파일을 읽고 쓰는 등의 파일 시스템 작업시
  • 의도적으로 시간 지연을 사용하는 기능시 (알람)

비동기 처리의 예시

  • Fetch API
  • setTimeout()
  • setInterval()
profile
이것저것 정리하는 공간

0개의 댓글