-
동기(synchronous)화와 비동기(Asynchronous)화카테고리 없음 2020. 3. 21. 20:36
동기(synchronous)화와 비동기(Asynchronous)화
1. 동기화
- 동기화는 말 그대로 동시에 일어난다는 뜻
- 클라이언트와 서버개념에서 클라이언트가 서버에 request을 보내면 서버에서 respone하는 것이 동시에 일어난다.
즉, 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 함
=> 요청과 결과가 한자리에서 동시에 일어남
=> A노드와 B노드 사이의 작업 처리 단위(transaction)을 동시에 맞춰주겠다.
2. 비동기화
- 동시에 일어나지 않는다는 뜻
- 요청과 결과가 동시에 일어나지 않는다.
=> 요청한 그자리에서 결과가 주어지지 않음
=> 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.
동기화와 비동기화의 장단점
장점
- 동기 방식 : 설계가 매우 간단하고 직관적
- 비동기 방식 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있다.
* 자원을 효율적으로 사용 가능
단점
- 동기 방식 : 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점
- 비동기 방식 : 동기보다 복잡
동기방식과 비동기방식의 예
동기방식 예
비동기 방식의 예
서로의 행위(목적)이 다르기 때문에 둘의 작업 처리 시간은 일치하지 않고, 일치하지 않아도 된다.
* 블록과 논블록
학생이 시험지를 선생에게 건넨 후 가만히 앉아 채점이 끝나서 시험지를 돌려받기만을 기다린다면
학생은 블록 상태
하지만 학생이 시험지를 건넨 후 선생에게 채점이 완료되었다는 전송을 받기 전까지 다른 과목을 공부하거나
다른 행위를 하면 학생의 상태는 논블록 상태라고 한다.
=> 동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 시각의 차이
동기는 추구하는 같은 행위(목적)가 동시에 이루어지며,
비동기는 추구하는 행위(목적)가 다를 수도 있고, 동시에 이루어지지도 않는다.