본문 바로가기
카테고리 없음

동기 방식과 비동기 방식

by hhenyy 2023. 12. 16.

데이터 처리 모델

데이터 처리 모델을 쉽게 표현하자면 데이터를 받는 방식이라고 할수 있습니다.
이 방식에는 동기식 처리와 비동기식 처리 모델이 존재합니다.
이 둘의 개념에 대해 알아보고 둘의 차이점을 알아보겠습니다.

 


 

동기 (synchronous : 동시에 일어나는)

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

 

요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 합니다.

  • 사용자가 데이터를 서버에게 요청한다면 그 서버가 데이터 요청에 따른 응답을 사용자에게 다시 리턴해주기 전까지 사용자는 다른 활동을 할 수 없으며 기다려야만합니다.
  • 동기 작업은 순차적으로 진행된다. - 한 작업이 끝나야 다음 작업이 실행
  • 서버로 요청(request)을 보내고 응답(response)이 오기 까지 다른 작업을 할 수 없습니다. (페이지 이동시 순간 화면이 하얗게 되는 상태)

 

비동기 (Asynchronous : 동시에 일어나지 않는)

 

비동기는 동시에 일어나지 않는다는 의미입니다.

 

요청한 결과는 동시에 일어나지 않을거라는 약속입니다.

  • 서버에게 데이터를 요청한 후 요청에 따른 응답을 계속 기다리지 않아도되며 다른 외부 활동을 수행하여도되고 서버에게 다른 요청사항을 보내도 상관없습니다
  • 비동기 작업은 순차적인 실행이 아니라 동시에 여러 작업이 진행된다.
    : 작업이 시작되면 끝날 때 까지 기다리지 않고 바로 다음 작업을 실행할 수 있다.
  • 웹 브라우저부터 일부 정보를 요청하기 때문에 그 외의 부분은 변하지 않습니다. 서버로 부터 응답이 오기 전에도 다른 작업이 가능합니다.
  • 비동기 작업은 완료되면 콜백(callback) 또는 알림을 통해 완료된 것을 알려준다. 이를 통해 계속해서 다른 작업을 수행하거나 결과를 처리할 수 있다.

 

 💡동기와 비동기의 장단점

동기방식 비동기방식
장점 : 설계가 매우 간단하고 직관적이다.

단점 : 결과가 주어질 때까지 아무것도 못하고 대기해야 합니다.

장점 : 요청에 따른 결과가 반환되는 시간 동안 다른 작업을 수행할 수 있습니다.

단점 : 동기식보다 설계가 복잡합니다.