TIL

동기(Synchronous)와 비동기(Asynchronous)

백단비 2023. 8. 3. 16:40

😵‍💫 동기??? 비동기??

👆 먼저 동기와 비동기의 차이에 대해 알아보자.

 

 

👉 동기(Synchronous)

동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것을 말한다.

동기적인 작업은 순서대로 진행하면서 이전 작업이 완료된 후에야 다음 작업이 실행되기 때문에 ,

이전 작업이 완료될때까지 무한대기 해야한다는 단점이 있지만,

작업이 한 번에 하나씩 순차적으로 처리되기 때문에 코드의 흐름과 순서를 예측하기 쉽다는 장점이 있다.

 

 

👉 비동기(Asynchronous)

비동기는 동시에 일어나지 않는다는 것을 의미한다.

비동기적인 작업은 순서대로 진행되지 않고, 작업이 완료되지 않아도 다음 작업이 실행된다.

작업이 완료되면 결과를 반환하거나 콜백 함수를 호출하여 결과를 처리한다.

작업이 완료되기 전에 다른 작업을 동시에 수행할 수 있다는 장점이 있지만 

코드의 흐름과 작업의 순서를 예측하기 어렵다는 단점이 있다.

 

 

 

👆비동기 함수의 사용 이유?

 

👉 동기 함수의 블로킹 문제를 해결할 수 있고 여러 작업을 동시에 수행할 수 있게 해서 프로그램의 효율성을 높일 수 있다.

👉 외부 리소스 접근이 필요한 작업을 비동기 함수로 처리하여 응답 대기 시간을 최소화하고 시스템의 성능을 유지할 수 있다.

👉 비동기 함수를 활용하여 여러 작업을 병렬로 실행하여 시간을 절약하고 효율성을 높일 수 있다.

 

블로킹(Blocking)❔ :  프로그램이 특정 작업을 처리하는 동안 다른 작업이 실행되지 못하고 대기하는 상태를 말한다.

즉, 작업이 완료될 때까지 해당 작업을 실행하는 쓰레드나 프로세스가 다른 작업을 수행하지 못하는 상태

 

 

👆 비동기 함수의 처리 방법

 

👉 콜백(Callback)함수 사용

👉 Promise 사용

👉 async / await 사용

 

 

 

비동기 함수의 처리 방법은 따로 작성할 예정입니다.

 

 

 

(참조) https://koras02.tistory.com/87

 

 

320x100

'TIL' 카테고리의 다른 글

Promise  (1) 2023.08.07
Callback 함수  (1) 2023.08.06
AJAX란 무엇인가?  (1) 2023.07.31
SSR(Server Side Rendering)과 CSR(Client Side Rendering)  (0) 2023.07.07
HTML5 시맨틱 태그와 웹 표준을 지키는 이유  (0) 2023.04.21