공부
동기화 비동기화
으뜸정신
2024. 3. 18. 17:12
데이터를 받는 방식인 동기화와 비동기화란 무엇일까
동기(synchronous : 동시에 일어나는)
- 결과가 동시에 일어난다는 약속으로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다.
- 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있다.(한 개의 데이터 요청에 대한 서버의 응답이 이루어질 때까지 계속 대기)
-> 요청과 결과가 한 자리에서 동시에 일어난다.
-> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다.
설계가 매우 간단하지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점
비동기(Asynchronous : 동시에 일어나지 않는)
- 동시에 일어나지 않는다는 것으로 요청과 결과가 동시에 일어나지 않을 거라는 약속
- 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행할 수 있다.
요청한 그 자리에서 결과가 주어지지 않음
노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 됨
동기방식보다는 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용 가능
비동기적으로 처리하는 경우
- Ajax Web Api 요청 : 서버 쪽에서 데이터를 받아와야 하는 경우
- 파일 읽기 : 서버에서 파일을 읽어야 하는 경우
- 암호화/복호화 : 바로 처리되지 않고 시간이 어느 정도 걸리는 경우
- 작업 예약 : setTimeout을 사용하여 비동기 처리하는 경우