본문 바로가기

Javascript

[javascript] 비동기 처리

 

동기와 비동기의 차이는? 

출처 : data_eun

동기 (synchronous) 란 "시간이 얼마나 걸리든 요청과 결과가 한 자리에서 동시에 일어나는 것"

즉, 동기적 처리는 커피 주문을 하면 시간이 얼마나 걸리든 그 자리에서 커피를 받을 때까지 다음 작업을 할 수 없다.(스타벅스)

 

비동기(Asynchronous)란 "요청과 결과가 동시에 일어나지 않는 것"

비동기적 처리는 커피 주문을 하면 진동벨을 가져가 다른 업무를 하다가 커피를 받을 수 있다. 즉 하나의 요청이 결과가 나오지 않더라도 다른 업무를 실행할 수 있으며, 또 다른 요청을 할 수 있다(진동벨 방식)

 

javascript의 처리방식은? 

javascript는 싱글 스레드 언어로, 기본적으로 동기처리 방식이다. 즉, 코드가 작성된 순서대로 작업을 처리한다.

하지만 비동기처리 방식도 사용할 수 있다. 비동기 처리 방식은 효율성을 상승시켜 처리 속도를 높여준다. 

 

자바스크립트에서 비동기 처리가 필요한 이유

보통 서버로 데이터를 요청할 때 가장 많은 시간이 소요되므로 네트워크 관련 작업들은 비동기적으로 구현되어있다. 

화면에서 서버로 데이터를 요청했을 때, 서버의 응답이 느리다고 마냥 다른 코드를 실행을 안하고 기다릴 수 없다.

동기처리를 생각하면, 하나 코드 실행할 때마다 기다린다면 웹 애플리케이션을 실행하는 데 굉장히 오래걸릴 것이다. 

따라서 서버와 연결될 때 비동기 처리를 많이 한다. 

 

 

Javascript의 비동기 처리 방법 3가지

1. Callback Function

2. Promise

3. Async / await 

 

 

 

참고 사이트 : 

https://velog.io/@songyi7091/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0

https://velog.io/@slobber/%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%9D%98-%EC%B0%A8%EC%9D%B4

https://velog.io/@kim_unknown_/JavaScript-Asynchronous

https://joshua1988.github.io/web-development/javascript/javascript-asynchronous-operation/